Мне нужно обрезать видео.openGL es 2.0 TextureCoordinates параметр ios
Так что я изменяю TextureCoordinates.
Код выглядит следующим образом.
const GLfloat squareTextureCoordinates[] = {
0.22f , 1.0f,
0.22f, 0.0f,
0.78f, 1.0f,
0.78f, 0.0f,
};
glVertexAttribPointer(positionAttribute, 2, GL_FLOAT, 0, 0, squareVertices);
glVertexAttribPointer(inputTextureCoordinateAttribute, 2, GL_FLOAT, 0, 0, squareTextureCoordinates);
Этот код является работой.
Тем не менее, мне нужно поддерживать многие размеры iphone. (Например: iphone6 имеют разный размер для iphone5) Так что я использую переменную, а не const в TextureCoordinates. И новый код выглядит следующим образом:
const float cropX=(float)(SCREEN_HEIGHT-SCREEN_WIDTH)/(float)(SCREEN_HEIGHT*2);
const float cropXR=1- (float)(SCREEN_HEIGHT-SCREEN_WIDTH)/(float)(SCREEN_HEIGHT*2);
const GLfloat squareTextureCoordinates[] = {
cropX , 1.0f,
cropX, 0.0f,
cropXR, 1.0f,
cropXR, 0.0f,
};
glVertexAttribPointer(positionAttribute, 2, GL_FLOAT, 0, 0, squareVertices);
glVertexAttribPointer(inputTextureCoordinateAttribute, 2, GL_FLOAT, 0, 0, squareTextureCoordinates);
Однако, это не работает. Экран ничего не отображает.
Я не могу понять, почему я не могу использовать переменную const для TextureCoordinates.
Можете ли вы показать, как определяются «SCREEN_WIDTH» и «SCREEN_HEIGHT»? –
Несомненно, это #define SCREEN_WIDTH [[UIScreen mainScreen] bounds] .size.width –
Вы уверены, что первый фрагмент кода верен? Он содержит две пары равных координат. И это не соответствует второму фрагменту кода. –