Поделиться через


Передние, задние и другие буферы

OpenGL сохраняет и управляет данными пикселей в кадре. Framebuffer состоит из набора логических буферов: цвета, глубины, накопления и наборов элементов. Сам буфер цвета состоит из набора логических буферов; этот набор может включать передний, правый, левый, левый, правый и некоторые вспомогательные буферы. Определенный формат пикселей или реализация OpenGL может не предоставлять все эти буферы. Например, текущая версия реализации OpenGL в Windows не поддерживает стереоскопические изображения, поэтому формат пикселя не может иметь левый и правый буфер цвета. Кроме того, текущая версия не поддерживает вспомогательные буферы. Дополнительные сведения о буферах OpenGL и функциях OpenGL, которые работают с ними, см. в справочнике по OpenGL, и руководстве по программированию OpenGL.

Реализация OpenGL в Windows поддерживает двойное буферизация изображений. Это метод, в котором приложение извлекает пиксели в буфер вне экрана, а затем, когда это изображение готово к отображению, копирует содержимое буфера вне экрана в буфер на экране. Двойное буферизация позволяет плавно изменять изображения, которые особенно важны для анимированных изображений.

Два буфера цвета доступны для приложений, использующих двойное буферирование: передний буфер и задний буфер. По умолчанию команды рисования направляются в задний буфер (внеэкранный буфер), а передний буфер отображается на экране. Когда буфер вне экрана готов к отображению, вызов SwapBuffers, а Windows копирует содержимое буфера вне экрана в буфер на экране.

Универсальная реализация использует независимое от устройства растровое изображение (DIB) в качестве заднего буфера и экрана в качестве переднего буфера. Аппаратные устройства и их драйверы могут использовать различные подходы.

Двойное буферизация — это свойство формата пикселей. Чтобы запросить двойное буферизация для формата пикселей, задайте флаг PFD_DOUBLEBUFFER в структуре данных PIXELFORMATDESCRIPTOR в вызове ChoosePixelFormat.

Основная функция OpenGL glDrawBufferвыбирает буферы для записи и очистки.

функции буфера