glRasterPos - встановлює растрову позицію для піксельних операцій.

C-специфікація

void glRasterPos2s (GLshort x,
                    GLshort y) ;
 
void glRasterPos2i (GLint x,
                    GLint y) ;
 
void glRasterPos2f (GLfloat x,
                    GLfloat y) ;
 
void glRasterPos2d (GLdouble x,
                    GLdouble y) ;
 
void glRasterPos3s (GLshort x,
                    GLshort y,
                    GLshort z) ;
 
void glRasterPos3i (GLint x,
                    GLint y,
                    GLint z) ;
 
void glRasterPos3f (GLfloat x,
                    GLfloat y,
                    GLfloat z) ;
 
void glRasterPos3d (GLdouble x,
                    GLdouble y,
                    GLdouble z) ;
 
void glRasterPos4s (GLshort x,
                    GLshort y,
                    GLshort z,
                    GLshort w) ;
 
void glRasterPos4i (GLint x,
                    GLint y,
                    GLint z,
                    GLint w) ;
 
void glRasterPos4f (GLfloat x,
                    GLfloat y,
                    GLfloat z,
                    GLfloat w) ;
 
void glRasterPos4d (GLdouble x,
                    GLdouble y,
                    GLdouble z,
                    GLdouble w) ;

void glRasterPos2sv (const GLshort * v) ;

void glRasterPos2iv (const GLint * v) ;
 
void glRasterPos2fv (const GLfloat * v) ;
 
void glRasterPos2dv (const GLdouble * v) ;
 
void glRasterPos3sv (const GLshort *v) ;
 
void glRasterPos3iv (const GLint * v) ;
 
void glRasterPos3fv (const GLfloat *v) ;
 
void glRasterPos3dv (const GLdouble *v) ;
 
void glRasterPos4sv (const GLshort * v);
 
void glRasterPos4iv (const GLint * v) ;
 
void glRasterPos4fv (const GLfloat *v) ;
 
void glRasterPos4dv (const GLdouble *v) ;

 

Параметри

x, y, z, w передають координати x, y, z і w для растрової позиції, або, якщо присутній, коодинати об'єкта.

v передає вказівник на масив з двох, трьох або чотирьох елементів, вказуючи відповідно x, y, z і w координати.

Опис

Система OpenGL підтримує 3D позиції для віконних координат. Дана позиція називається растровою позицією, і використовується для розміщення операцій запису пікселів і бітових карт. Вони підтримуються з субпіксельною точністю. Перегляньте glBitmap, glDrawPixels і glCopyPixels.

Поточна растрова позиція складається з трьох віконних координат (x, y, z), координати w, координати відстані від огляду, біт валідності, і асоційовані колірні дані і текстурні координати. Координата w являється координатою яка не враховується, оскільки w не проекціюється на віконні координати. Функція glRasterPos4 вказує координати об'єкта x, y, z і w безпосередньо. Функція glRasterPos3 безпосередньо вказує координати об'єкта x, y і z, а координата w неявно встановлюється в 1. Функція glRasterPos2 використовує значення аргументів для x і y, а кооринати z і w неявно встановлюються у 0 і 1 відповідно.

Координати об'єкта передані за допомогою glRasterPos трактуються на подобі команди glVertex: вони перетворюють поточні матриці огляду моделі і проекції і передаються до стадії обрізання. Якщо вертекс не відкидається, тоді він проекціюється і масштабується до віконних координат, що стають новою поточною растровою позицією, і встановлюються прапорці GL_CURRENT_RASTER_POSITION_VALID. Якщо вертекс відкидається, тоді біт валідності очищується і поточна растрова позиція і асоційовані колір і текстурні координати являються невизначеними.

Поточна растрова позиція також включає деякі асоційовані колірні дані і текстурні координати. Якщо увімкнено освітлення, тоді GL_CURRENT_RASTER_COLOR (у режимі RGBA) або GL_CURRENT_RASTER_INDEX (у колір-індексному режимі) встановлюються у колір, який генерований обчисленнями освітлення (перегляньте glLight, glLightModel і glShadeModel). Якщо освітлення вимкнено, поточний колір (у режимі RGBA, змінна стану GL_CURRENT_COLOR) або колірний індекс (у колір-індексному режимі, змінна стану GL_CURRENT_INDEX) використовуються для оновлення поточного растрового кольору.
Так само оновлюється змінна стану GL_CURRENT_RASTER_SECONDARY_COLOR (у режимі RGBA).

Аналогічно, зміна стану GL_CURRENT_RASTER_TEXTURE_COORDS оновлюється у якості функції від GL_CURRENT_TEXTURE_COORDS, спираючись на текстурну матрицю і функції текстурної генерації (перегляньте функцію glTexGen). На кінець, трансформована матрицею огляду моделі відстань між початковою точкою координатної системи огляду до вертексів, замінюється GL_CURRENT_RASTER_DISTANCE.

За умовчанням, поточна растрова позиція міститься у (0, 0, 0, 1), поточна растрова дистанція є 0, встановлений біт валідності, асоційовані кольори RGBA є (1, 1, 1, 1), асоційований колірній індекс містить 1, і асоційовані текстурні координати містяться у (0, 0, 0, 1). У режимі RGBA, змінна стану GL_CURRENT_RASTER_INDEX завжди має значення 1; у колір-індексному режимі, поточний растровий колір RGBA завжди містить його значення за умовчанням.

Нотатки

Растрова позиція змінюється викиками функцій glRasterPos, glBitmap і glWindowPos.

Коли координати растрової позиції є коректними, команди малювання, які спираються на растрову позицію ігноруються (тобто, вони не змінюють стан системи OpenGL).

Виклик функцій glDrawElements або glDrawRangeElements можуть залишити поточний колірний індекс невизначеним. Якщо, glRasterPos викликається при невизначеному колірному індексі, поточний растровий колір або поточний растровий індекс залишаються невизначеними.

Для встановлення коректної растрової позиції ззовні вікна огляду, спочатку встановіть коректну растрову позицію, після чого викличте glBitmap з параметром bitmap встановленим у значення NULL.

Якщо підтримується розширення ARB_imaging, існують різні растрові координати для кожної текстурної одиниці. Поточна растрова координата кожної текстурної одиниці оновлюється за допомогою функції glRasterPos.

Помилки

GL_INVALID_OPERATION генерується якщо glRasterPos викликається між відповідними викликами glBegin і glEnd.

Пов'язані параметри

glGet з аргументом GL_CURRENT_RASTER_POSITION

glGet з аргументом GL_CURRENT_RASTER_POSITION_VALID

glGet з аргументом GL_CURRENT_RASTER_DISTANCE

glGet з аргументом GL_CURRENT_RASTER_COLOR

glGet з аргументом GL_CURRENT_RASTER_SECONDARY_COLOR

glGet з аргументом GL_CURRENT_RASTER_INDEX

glGet з аргументом GL_CURRENT_RASTER_TEXTURE_COORDS

Перегляньте також

glBitmap, glCopyPixels, glDrawArrays, glDrawElements, glDrawRangeElements, glDrawPixels, glMultiTexCoord, glTexCoord, glTexGen, glVertex, glWindowPos

Оригінал

https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glRasterPos.xml