glTexImage2D дает GL_INVALID_VALUE, потому что ширина или высота не могут быть представлены как 2k + 2
У меня есть скриншот, взятый с первого холста opengl, который мне нужно нарисовать на втором холсте opengl. Я сделал снимок экрана, используя glReadPixels
:
glReadPixels(posx, posy, pageWidth , pageHeight, GL_RGB, GL_UNSIGNED_BYTE, data);
Первый холст opengl имеет два или более изображений с несколькими строками и текстовыми данными вокруг него. Я использую второй холст opengl, чтобы показать мозаику изображений с окружающими данными в целом. Я не хочу перерисовывать то же самое на втором холсте opengl и, следовательно, хочу сделать скриншот и нарисовать часть скриншота во втором холсте.
Я также сохранил снимок, сделанный в файл jpg, который идет отлично.
Но проблема возникает, когда мне нужно нарисовать пиксельные данные, используя glTexImage2d, так как используемые pageWidth или pageHeight не могут быть представлены как 2K+ 2. Следовательно, ошибка появляется как GL_INVALID_VALUE
,
glTexImage2D (GL_TEXTURE_2D, 0, imgSamplesPerPixel),
pageWidth, pageHeight, 0,SamplesPerPixel, GL_UNSIGNED_BYTE, data);
PageWidth и pageHeight могут иметь любое значение (меньшее, чем GL_MAX_TEXTURE_SIZE
), например 240 X 600. Так как мне решить эту проблему?