glDrawBuffer - вказує цільові колірні буфери, в які буде виконуватися малювання.
C-специфікація
void glDrawBuffer (GLenum mode) ;
Параметри
mode може вказувати чотири колірні буфери, в які буде виконуватися малювання. Приймаються символічні константи GL_NONE, GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT, GL_FRONT, GL_BACK, GL_LEFT, GL_RIGHT, GL_FRONT_AND_BACK і GL_AUXi, де i міститься між 0 і значенням GL_AUX_BUFFERS мінус 1 (значення GL_AUX_BUFFERS не являється найбільшим обмеженням; використовуйте glGet для опитування кількості доступних допоміжних буферів). Значення за умовчанням являється GL_FRONT для однобуферного вмісту, і GL_BACK для вмісту з подвійним буфером.
Опис
Під час запису кольорів у буфер кадру, вони записуються у колірні буфери вказані за допомогою функції glDrawBuffer. Опис наступний:
- GL_NONE. Записування не виконується.
- GL_FRONT_LEFT. Запис виконується тільки у передній лівий буфер.
- GL_FRONT_RIGHT. Запис виконується тільки у передній правий колірний буфер.
- GL_BACK_LEFT. Запис виконується тільки в задній лівий буфер.
- GL_BACK_RIGHT. Запис виконується тільки у задній правий колірний буфер.
- GL_FRONT. Запис виконується тільки у передній лівий і передній правий колірні буфери. Якщо немає переднього правого колірного буферу, запис виконується тільки у передній лівий колірні буфери.
- GL_BACK. Запис виконується тільки у задній лівий і задній правий колірні буфери. Якщо не існує заднього правого колірного буферу, запис виконується тільки у задній лівий колірні буфери.
- GL_LEFT. Запис виконується тільки у передній лівий і задній лівий буфери. Якщо немає заднього лівого буферу, запис виконується тільки у передній лівий колірні буфери.
- GL_RIGHT. Запис виконується тільки у передній правий і задній правий колірні буфери. Якщо немає заднього правого колірного буферу, запис виконується тільки у передній правий колірний буфер.
- GL_FRONT_AND_BACK. Запис виконується в усі пердні і задні колірні буфери (передній лівий, передній правий, задній лівий і задній правий). Якщо немає задніх колірних буферів, запис виконується тільки у передній лівий і передній правий колірний буфери. Якщо немає правих колірних буферів, запис виконується тільки на передній лівий і задній лівий колірні буфери. Якщо немає правого або задніх колірних буферів, запис виконується тільки у передній лівий колірний буфер.
- GL_AUXi. Запис виконується тільки у допоміжний колірний буфер за індексом i.
Якщо обрано більш як один колірний буфер для малювання, тоді змішування або логічні операції обчислюються і застосовуються незалежно для кожного колірного буферу і можна отримати різні результати для кожного буферу.
Моноскопічний вміст включає тільки ліві буфери, а стереоскопічний вміст включає обидва буфери - лівий і правий. Аналогічно, однобуферний вміст включає тільки передні буфери, а подвійний вміст включає обидва передній і задні буфери. Контекст обирається при ініціалізації системи OpenGL.
Нотатки
Завжди виконується рівність GL_AUXi = GL_AUX0 + i.
Помилки
GL_INVALID_ENUM генерується якщо параметр mode не містить допустимого значення.
GL_INVALID_OPERATION генерується якщо присутній жоден з буферів вказаний у параметр mode.
GL_INVALID_OPERATION генерується якщо glDrawBuffer виконується між відповідними викликами функцій glBegin і glEnd.
Пов'язані параметри
glGet з аргументом GL_DRAW_BUFFER
glGet з аргументом GL_AUX_BUFFERS
Перегляньте також
glBlendFunc, glColorMask, glIndexMask, glLogicOp, glReadBuffer
Оригінал
https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glDrawBuffer.xml