OpenGL текстура распаковывает параметры с несовместимыми размерами - PullRequest
0 голосов
/ 19 июня 2019

Представьте исходное изображение размером 1024x1024 пикселей и текстуру размером 512x512.Теперь мне нужно взять часть исходного изображения и загрузить его в текстуру.

Сделайте так, чтобы я использовал glPixelStorei так:

glPixelStorei(GL_UNPACK_ROW_LENGTH, 1024);
glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, 1024 );
glPixelStorei(GL_UNPACK_SKIP_ROWS, 0 );
glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0 );

glTexSubImage2D           ( GL_TEXTURE_2D, mipmap,
                                    0, 
                                    0, 
                                    512,
                                    512,
                                    dataFormat,
                                    dataType
                                    dataPtr );

Хотя GL_UNPACK_SKIP_PIXELS + размер текстуры меньшеили равный, чем размер источника, все выглядит ясно.

Но что произойдет, если GL_UNPACK_SKIP_PIXELS будет, например, 768, чтобы исходные данные не покрывали запрашиваемую область данных (768 + 512> 1024)?Это будет неопределенное поведение или что-то еще?Это где-то задокументировано?Насколько я вижу, драйвер OpenGL не выдал никакой ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...