Параметр internalformat не имеет значения для определения данных, хранящихся в операциях передачи пикселей;только формат и тип имеют значение.
Ну, на самом деле не "только".Смотрите, формат и тип объединяются, чтобы определить размер данных в пикселях ( формат говорит вам, сколько каналов в данных, их порядокканалы, а также, являются ли данные плавающей точкой или целыми числами; type сообщает, как сохраняется значение канала или пикселя).Но чтобы определить, как перейти от пикселя к пикселю, строки к строке и 2D-изображения к 2D-изображению, вам нужно больше.
Все, что вам нужно, - это состояние GL_UNPACK_*
, чьезначения задаются с помощью glPixelStore
.GL_UNPACK_ALIGNMENT
сообщает вам выравнивание каждой строки данных пикселей.Это нужно для того, чтобы прыгать с ряда на ряд.Есть также другое состояние UNPACK
, которое позволяет пользователям выбирать под прямоугольник для загрузки.Если вы хотите интерпретировать то, что загружается во всех случаях, вы должны использовать glGetIntegerv
, чтобы получить все этих UNPACK
параметров и интерпретировать их, как указано в стандарте.