glBitmap - малювання карти бітів.
C-специфікація
void glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap) ;
Параметри
width, height вказує пікселі ширини і висоти зображення карти бітів.
xorig, yorig вказує розміщення початкової тотки зображення карти бітів. Початкова точка виміряється з нижнього лівого кута карти бітів, з напрямком вгору і вліво у якості позитивних осей.
xmove, ymove вказує зміщення x і y які необхідно додати до поточної растрової позиції після того як бітова карта буде намальованою.
bitmap вказує адресу зображення карти бітів.
Опис
Карта бітів являється бінарним зображенням. Якщо намальована, карта бітів позиціонується відносно поточної растрової позиції і пікселів буферів кадру, які відповідають 1 у бітовій карті малюються використовуючи поточний растровий колір або індекс. Пікселі буферу кадру, які відповідають нулям у бітовій карті залишаються без змін.
Функція glBitmap приймає сім аргументів. Перша пара вказує ширину і висоту зображення бітової карти. Друга пара вказує розміщення початкової точки бітової карти, відносно нижнього лівого кута зображення. Третя пара аргументів вкзаує на зміщення по x і y, які необхідно додавати до поточної растрової позиції після того, як бітова карта намальована. Останній аргумент являється вказівником на бітове зображення.
Якщо не нульовий іменований об'єкт буферу прив'язаний до цілі GL_PIXEL_UNPACK_BUFFER (перегляньте функцію glBindBuffer) поки вказується зображення бітової карти, дані параметру bitmap трактуються у якості байтового зміщення у об'єкті буфера.
Зображення бітової карти інтерпретується на подобі даних зображення для команди glDrawPixels, з параметрами width і height, які відповідають параметрам ширини і висоти даної команди і типом встановленим у GL_BITMAP, а format встановлено у GL_COLOR_INDEX. Режими вказані, використовуючи glPixelStore здійснюють інтерпретацію даних бітового зображення; режими вказані з використанням функції glPixelTransfer не впливають.
Якщо поточна растрова позиція є некоректною, виклик функції glBitmap ігнорується. В іншому випадку, лівий кут зображення карти бітів встановлюється у віконних координатах
xw = xr - xo
yw =yr - yo
де xr, yr являються растровими позиціями і xo, yo являються початковою точкою карти бітів. Фрагменти генеруються для кожного пікселя у відповідності до одиниць зображення бітової карти. Ці фрагменти генеруються з використанням поточної растрової z-координати, кольору або колірного індексу, і поточної растрової текстурної координати. Вони трактуються так ніби вони були згенерованими точкою, лінією або багатокутником, включаючи накладання текстур, створення ефекту туману і усіх по-фрагментних операцій на подобі тестування на прозорість і глибину.
Після того, як карта бітів була намальована, координати x і y поточної растрової позиції зміщуються на xmove і ymove. Жодні зміни вносяться до координати z поточної растрової позиції, або поточного растрового кольору, текстурних координат або індексу.
Нотатки
Для встановлення коректної поточної растрової позиції ззовні області огляду, спочатку встановіть растрову позицію всередині області огляду, тоді викликайте glBitmap з значенням NULL у якості параметру bitmap і xmove і ymove встановленими у зміщення нової растрової позиції. Дана техніка корисна при обгортанні зображення навколо області огляду.
Помилки
GL_INVALID_VALUE геенрується якщо width і height містять негативні значення.
GL_INVALID_OPERATION генерується якщо ненульовий буферний об'єкт прив'язаний до цілі GL_PIXEL_UNPACK_BUFFER і область збереження даних об'єктного буфера поточно накладаються.
GL_INVALID_OPERATION генерується, якщо ненульове ім'я буферного об'єкту прив'язується до цілі GL_PIXEL_UNPACK_BUFFER і дані будуть розпаковані з буферного об'єкту так, що необхідні зчитування пам'яті будуть виходити за межі області збереження даних.
GL_INVALID_OPERATION генерується якщо функція glBitmap викликається між відповідними викликами функцій glBegin і glEnd.
Пов'язані виклики
glGet з аргументом GL_CURRENT_RASTER_POSITION
glGet з аргументом GL_CURRENT_RASTER_COLOR
glGet з аргументом GL_CURRENT_RASTER_SECONDARY_COLOR
glGet з аргументом GL_CURRENT_RASTER_DISTANCE
glGet з аргументом GL_CURRENT_RASTER_INDEX
glGet з аргументом GL_CURRENT_RASTER_TEXTURE_COORDS
glGet з аргументом GL_CURRENT_RASTER_POSITION_VALID
glGet з аргументом GL_PIXEL_UNPACK_BUFFER_BINDING
Перегляньте також
glBindBuffer, glDrawPixels, glPixelStore, glPixelTransfer, glRasterPos, glWindowPos
Оригінал
https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glBitmap.xml