Для задания текущей растровой позиции служит процедура
void glRasterPos {234}{sifd}{v}< TYPE x, TYPE y, TYPE z );
Ввод-вывод цветных изображений
OpenGL поддерживает также вывод полноцветных изображений (для каждого пиксела задаются либо все величины RGBA, либо только некоторые ni них).
Для копирования изображения из буфера кадра (фрейм-буфера) в обычную память служит процедура
void glReadPixels ( GLint x, GLint y, GLsizei width,
GLsizei height, GLenum format, GLenum type,GLvoid * pixels ) ,-
Здесь параметры (x, y) задают координаты левого нижнего угла, а параметры width и height - размеры копируемого изображения.
Параметр format отражает, какие данные о пикселе заносятся в буфер; возможными значениями являются GL_RGB, GL_RGBA, GL_RED, GL_GREEN, GLJBLUE, GL_ALPHA, GLJJJMLNANCE, GL_LUMINANCE_ALPHA GL_STENCIL_INDEX, ŒJDEPTHjrOMTONENT.
Параметр type задает тип каждого из записываемых значений. Возможными значениями являются GL_UNSIGNED_BYTE, GL_BYTE, GL_BrTMAP. GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT и GL_FLOAT.
Для вывода изображения в фрейм-буфер из оперативной памяти служи! следующая процедура:
void glDrawPixels ( GLsizei width, GLsizei height,
Glenum format,GLenum type, const GLvoid * pixels );
При этом изображение выводится начиная с текущей растровой позиции.
Основы библиотеки OpenGL
Наложение текстуры
Текстурирование позволяет наложить изображение на многоугольник и вывести этот многоугольник с наложенной на него текстурой, соответствующим образом преобразованной. OpenGL поддерживает одно- н двухмерные текстуры и различные способы наложения (применения) текстуры.
Для использования текстур надо сначала разрешить одно- или двухмерное текстурирование при помощи следующих команд:
glEnable ( GL_TEXTURE_1D ); или
glEnable ( GL_TEXTURE_2D );
Для задания двухмерной текстуры служит процедура
void glTexImage2D ( GLenum target, GLint level,
GLint component,GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels );
Параметр target зарезервирован для будущего использования и в нынешней версии он должен быть равен GL_TEXTURE_2D.