Spec-Zone.ru › Qt 5.15

Класс QOpenGLFramebufferObject

Класс QOpenGLFramebufferObject инкапсулирует объект OpenGL framebuffer. Подробнее...

Заголовок: #include <QOpenGLFramebufferObject>
qmake: QT += gui
С: Qt 5.0

Этот класс был введён в Qt 5.0.

  • Список всех членов, включая унаследованные

Публичные типы

перечисление Attachment { НетПрикрепления, ОбъединённаяГлубинаШаблон, Глубина }
перечисление FramebufferRestorePolicy { НеВосстанавливатьСвязываниеFramebuffer, ВосстановитьСвязываниеFramebufferПоУмолчанию, ВосстановитьСвязываниеFramebuffer }

Публичные функции

QOpenGLFramebufferObject(int width, int height, const QOpenGLFramebufferObjectFormat &format)
QOpenGLFramebufferObject(const QSize &size, const QOpenGLFramebufferObjectFormat &format)
QOpenGLFramebufferObject(int width, int height, QOpenGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = 0)
QOpenGLFramebufferObject(const QSize &size, QOpenGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = 0)
QOpenGLFramebufferObject(int width, int height, GLenum target = GL_TEXTURE_2D)
QOpenGLFramebufferObject(const QSize &size, GLenum target = GL_TEXTURE_2D)
virtual ~QOpenGLFramebufferObject()
void addColorAttachment(const QSize &size, GLenum internalFormat = 0)
void addColorAttachment(int width, int height, GLenum internalFormat = 0)
QOpenGLFramebufferObject::Attachment attachment() const
bool bind()
QOpenGLFramebufferObjectFormat format() const
GLuint handle() const
int height() const
bool isBound() const
bool isValid() const
bool release()
void setAttachment(QOpenGLFramebufferObject::Attachment attachment)
QSize size() const
QVector<QSize> sizes() const
GLuint takeTexture()
GLuint takeTexture(int colorAttachmentIndex)
GLuint texture() const
QVector<GLuint> textures() const
QImage toImage(bool flipped) const
QImage toImage() const
QImage toImage(bool flipped, int colorAttachmentIndex) const
int width() const

Статические публичные члены

bool bindDefault()
void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers, GLenum filter, int readColorAttachmentIndex, int drawColorAttachmentIndex, QOpenGLFramebufferObject::FramebufferRestorePolicy restorePolicy)
void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers, GLenum filter, int readColorAttachmentIndex, int drawColorAttachmentIndex)
void blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST)
void blitFramebuffer(QOpenGLFramebufferObject *target, QOpenGLFramebufferObject *source, GLbitfield buffers = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST)
bool hasOpenGLFramebufferBlit()
bool hasOpenGLFramebufferObjects()

Подробное описание

Класс QOpenGLFramebufferObject encapsulates an OpenGL framebuffer object, определённый расширением GL_EXT_framebuffer_object. Он предоставляет поверхность для отрисовки, на которую можно наносить изображение с помощью QPainter с помощью QOpenGLPaintDevice или использовать её для рендера с помощью собственных OpenGL вызовов. Эта поверхность может быть привязана и использована как обычная текстура в вашем собственном OpenGL коде отрисовки. По умолчанию, QOpenGLFramebufferObject генерирует 2D OpenGL текстуру (используя target GL_TEXTURE_2D), которая используется как внутренняя цель рендеринга.

Важно иметь текущий OpenGL контекст при создании QOpenGLFramebufferObject, иначе инициализация завершится неудачно.

Создайте экземпляр QOpenGLFrameBufferObject с параметром CombinedDepthStencil, если вы хотите, чтобы QPainter правильно отображал данные. Обратите внимание, что для антиалиасинга примитивов при отрисовке с помощью QPainter, вам необходимо создать QOpenGLFramebufferObject с более чем одним образцом на пиксель. Для создания multisample framebuffer object вы должны использовать один из конструкторов, принимающих параметр QOpenGLFramebufferObjectFormat, и установить свойство QOpenGLFramebufferObjectFormat::samples() на ненулевое значение.

Для объектов буфера кадра с несколькими выборками создаётся буфер цвета, в противном случае создаётся текстура со указанным целевым значением текстуры. Буфер цвета или текстура будут иметь указанный внутренний формат и будут привязаны к прикреплению GL_COLOR_ATTACHMENT0 в объекте буфера кадра.

Также поддерживаются несколько целей отрисовки, если реализация OpenGL это поддерживает. В этом случае будут присутствовать несколько текстур (или, в случае многократной выборки, буферов рендеринга), и каждая из них будет прикреплена к GL_COLOR_ATTACHMENT0, 1, 2, ...

Если вы хотите использовать объект буфера кадра с включённой многократной выборкой в качестве текстуры, сначала нужно скопировать данные из него в обычный объект буфера кадра, используя QOpenGLContext::blitFramebuffer().

Можно рисовать в QOpenGLFramebufferObject, используя QPainter и QOpenGLPaintDevice, в отдельном потоке.

Документация по типам членов

перечисление QOpenGLFramebufferObject::Attachment

Этот тип перечисления используется для настройки буферов глубины и трафарета, прикреплённых к объекту буфера кадра при его создании.

Постоянная Значение Описание
QOpenGLFramebufferObject::NoAttachment 0 К объекту буфера кадра не добавляется прикрепление. Обратите внимание, что тесты глубины и трафарета OpenGL не будут работать при отрисовке в объект буфера кадра без буферов глубины или трафарета. Это значение по умолчанию.
QOpenGLFramebufferObject::CombinedDepthStencil 1 Если расширение GL_EXT_packed_depth_stencil присутствует, прикрепляется комбинированный буфер глубины и трафарета. Если расширение отсутствует, прикрепляется только буфер глубины.
QOpenGLFramebufferObject::Depth 2 К объекту буфера кадра прикрепляется буфер глубины.

См. также attachment().

перечисление QOpenGLFramebufferObject::FramebufferRestorePolicy

Этот тип перечисления используется для настройки поведения, связанного с восстановлением привязок буфера кадра при вызове blitFramebuffer().

Постоянная Значение Описание
QOpenGLFramebufferObject::DontRestoreFramebufferBinding 0 Предыдущая привязка буфера кадра не восстанавливается. Вызывающий код отвечает за отслеживание и установку привязки буфера кадра по мере необходимости.
QOpenGLFramebufferObject::RestoreFramebufferBindingToDefault 1 После операции blit привязывается буфер кадра по умолчанию.
QOpenGLFramebufferObject::RestoreFrameBufferBinding 2 Восстанавливается ранее привязанный буфер кадра. Это потенциально дорогостоящее действие из-за необходимости запроса текущего привязанного буфера кадра.

Это перечисление было добавлено или изменено в Qt 5.7.

См. также blitFramebuffer().

Документация по функциям-членам

QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, const QOpenGLFramebufferObjectFormat &format)

Конструирует объект буфера кадра OpenGL заданной ширины и высоты на основе предоставленного формата.

QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize &size, const QOpenGLFramebufferObjectFormat &format)

Конструирует объект буфера кадра OpenGL заданного размера на основе предоставленного формата.

QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, QOpenGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = 0)

Конструирует объект буфера кадра OpenGL и привязывает текстуру к буферу заданной ширины и высоты.

Параметр attachment описывает конфигурацию буфера глубины/трафарета, target — целевое значение текстуры, а internalFormat — внутренний формат текстуры. Целевое значение текстуры по умолчанию — GL_TEXTURE_2D, а внутренний формат по умолчанию — GL_RGBA8 для настольного OpenGL и GL_RGBA для OpenGL/ES.

См. также size(), texture() и attachment().

QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize &size, QOpenGLFramebufferObject::Attachment attachment, GLenum target = GL_TEXTURE_2D, GLenum internalFormat = 0)

Конструирует объект буфера кадра OpenGL и привязывает текстуру к буферу заданного размера.

Параметр attachment описывает конфигурацию буфера глубины/трафарета, target — целевое значение текстуры, а internalFormat — внутренний формат текстуры. Целевое значение текстуры по умолчанию — GL_TEXTURE_2D, а внутренний формат по умолчанию — GL_RGBA8 для настольного OpenGL и GL_RGBA для OpenGL/ES.

См. также size(), texture() и attachment().

QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, GLenum target = GL_TEXTURE_2D)

Конструирует объект буфера кадра OpenGL и привязывает 2D текстуру OpenGL к буферу заданной ширины и высоты.

См. также size() и texture().

QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize &size, GLenum target = GL_TEXTURE_2D)

Конструирует объект буфера кадра OpenGL и привязывает 2D текстуру OpenGL к буферу заданного размера size. Текстура привязана к целевому значению GL_COLOR_ATTACHMENT0 в объекте буфера кадра.

Параметр target используется для указания целевого значения текстуры OpenGL. Целевое значение по умолчанию — GL_TEXTURE_2D. Имейте в виду, что текстуры GL_TEXTURE_2D должны иметь ширину и высоту, являющиеся степенями двойки (например, 256x512), если вы не используете OpenGL 2.0 или выше.

По умолчанию буферы глубины и трафарета не прикреплены. Это поведение можно изменить, используя перегруженные конструкторы.

Внутренний формат текстуры по умолчанию — GL_RGBA8 для настольного OpenGL и GL_RGBA для OpenGL/ES.

Важно, чтобы при создании QOpenGLFramebufferObject был установлен текущий контекст OpenGL, иначе инициализация завершится ошибкой.

См. также size(), texture() и attachment().

[virtual] QOpenGLFramebufferObject::~QOpenGLFramebufferObject()

Удаляет объект буфера кадра и освобождает выделенные ресурсы.

void QOpenGLFramebufferObject::addColorAttachment(const QSize &size, GLenum internalFormat = 0)

Создаёт и прикрепляет дополнительную текстуру или буфер рендеринга размером size по ширине и высоте.

Прикрепление всегда присутствует на GL_COLOR_ATTACHMENT0. Используйте эту функцию для настройки дополнительных прикреплений на GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2 и т.д.

Если internalFormat не равно 0, оно задаёт внутренний формат текстуры или буфера рендеринга. В противном случае используется значение по умолчанию GL_RGBA или GL_RGBA8.

Примечание: Эта функция работает только в том случае, если реализация OpenGL поддерживает несколько целей отрисовки. В противном случае функция не добавит никаких дополнительных прикреплений цвета. Используйте QOpenGLFunctions::hasOpenGLFeature() с QOpenGLFunctions::MultipleRenderTargets во время выполнения, чтобы проверить, поддерживается ли MRT.

Примечание: Внутренний формат прикреплений цвета может отличаться, но могут быть ограничения на поддерживаемые комбинации в зависимости от драйверов.

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

Эта функция была добавлена в Qt 5.6.

void QOpenGLFramebufferObject::addColorAttachment(int width, int height, GLenum internalFormat = 0)

Это перегруженная функция.

Создаёт и прикрепляет дополнительную текстуру или буфер рендеринга размером width и height.

Если internalFormat не равно 0, оно задаёт внутренний формат текстуры или буфера рендеринга. В противном случае используется значение по умолчанию GL_RGBA или GL_RGBA8.

Эта функция была добавлена в Qt 5.6.

QOpenGLFramebufferObject::Attachment QOpenGLFramebufferObject::attachment() const

Возвращает состояние буферов глубины и трафарета, прикреплённых к этому объекту буфера кадра.

См. также setAttachment().

END_OF_DOCUMENT_MARKER

bool QOpenGLFramebufferObject::bind()

Переключает отрисовку с буфера кадра по умолчанию, предоставляемого системным окном, на этот объект буфера кадра. Возвращает true при успехе, false в противном случае.

Примечание: Если был вызван takeTexture(), создаётся новая текстура, и она ассоциируется с объектом буфера кадра. Это потенциально дорогостоящая операция и меняет состояние контекста (текущая привязанная текстура).

См. также release().

[static] bool QOpenGLFramebufferObject::bindDefault()

Переключает отрисовку обратно на буфер кадра по умолчанию, предоставляемый системным окном. Возвращает true при успехе, false в противном случае.

См. также bind() и release().

[static] void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers, GLenum filter, int readColorAttachmentIndex, int drawColorAttachmentIndex, QOpenGLFramebufferObject::FramebufferRestorePolicy restorePolicy)

Копирует прямоугольник sourceRect из объекта буфера кадра source в прямоугольник targetRect объекта буфера кадра target.

Если source или target равно 0, вместо объекта буфера кадра будет использован буфер кадра по умолчанию.

Эта функция не будет выполняться, если hasOpenGLFramebufferBlit() возвращает false.

Параметр buffers должен быть маской, состоящей из любой комбинации GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, и GL_STENCIL_BUFFER_BIT. Любой тип буфера, который отсутствует как в источнике, так и в целевых буферах, игнорируется.

Прямоугольники sourceRect и targetRect могут иметь разные размеры; в этом случае buffers не должны содержать GL_DEPTH_BUFFER_BIT или GL_STENCIL_BUFFER_BIT. Параметр filter должен быть установлен в GL_LINEAR или GL_NEAREST, и определяет, линейная или ближайшая интерполяция должны использоваться при масштабировании.

Если source равно target, копирование выполняется внутри одного и того же буфера. Результаты неопределены, если прямоугольники источника и назначения перекрываются и имеют разные размеры. Размеры также должны быть одинаковыми, если любой из объектов буфера кадра является многообразным.

Примечание: Режим сдвига ножниц (scissor test) будет ограничивать область копирования, если он включен.

При использовании нескольких буферов рендеринга, readColorAttachmentIndex и drawColorAttachmentIndex указывают индекс цветовых приложений в исходном и целевом буферах кадра.

restorePolicy определяет, следует ли восстановить буфер кадра, который был привязан до вызова этой функции, или следует ли привязать буфер кадра по умолчанию перед возвратом, или если вызывающая сторона отвечает за отслеживание и установку привязанного буфера кадра. Восстановление предыдущего буфера кадра может быть относительно дорогостоящим из-за вызова glGetIntegerv, который на некоторых драйверах OpenGL может подразумевать остановку конвейера.

Функция была добавлена в Qt 5.7.

См. также hasOpenGLFramebufferBlit().

[static] void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers, GLenum filter, int readColorAttachmentIndex, int drawColorAttachmentIndex)

Это перегруженная функция.

Удобный перегруз для копирования между двумя объектами буфера кадра и для восстановления предыдущей привязки буфера кадра. Эквивалентно вызову blitFramebuffer(target, targetRect, source, sourceRect, buffers, filter, readColorAttachmentIndex, drawColorAttachmentIndex, RestoreFrameBufferBinding).

[static] void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject *target, const QRect &targetRect, QOpenGLFramebufferObject *source, const QRect &sourceRect, GLbitfield buffers = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST)

Это перегруженная функция.

Удобный перегруз для копирования между двумя объектами буфера кадра.

[static] void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject *target, QOpenGLFramebufferObject *source, GLbitfield buffers = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST)

Это перегруженная функция.

Удобный перегруз для копирования между двумя объектами буфера кадра.

QOpenGLFramebufferObjectFormat QOpenGLFramebufferObject::format() const

Возвращает формат этого объекта буфера кадра.

GLuint QOpenGLFramebufferObject::handle() const

Возвращает дескриптор объекта буфера кадра OpenGL для этого объекта буфера кадра (возвращённый функцией glGenFrameBuffersEXT()). Этот дескриптор может быть использован для прикрепления новых изображений или буферов к буферу кадра. Пользователь отвечает за очистку и удаление этих объектов.

[static] bool QOpenGLFramebufferObject::hasOpenGLFramebufferBlit()

Возвращает true если расширение OpenGL GL_EXT_framebuffer_blit присутствует в этой системе; в противном случае возвращает false.

См. также blitFramebuffer().

[static] bool QOpenGLFramebufferObject::hasOpenGLFramebufferObjects()

Возвращает true если расширение OpenGL GL_EXT_framebuffer_object присутствует в этой системе; в противном случае возвращает false.

int QOpenGLFramebufferObject::height() const

Возвращает высоту прикреплений буфера кадра.

bool QOpenGLFramebufferObject::isBound() const

Возвращает true если объект буфера кадра в настоящее время привязан к текущему контексту, в противном случае возвращает false.

bool QOpenGLFramebufferObject::isValid() const

Возвращает true если объект буфера кадра корректен.

Буфер кадра может стать некорректным, если процесс инициализации завершается неудачно, пользователь прикрепляет некорректный буфер к объекту буфера кадра, или нестепенная ширина/высота задаётся как размер текстуры, если целевой тип текстуры GL_TEXTURE_2D. Ограничение на нестепенные размеры не применяется, если версия OpenGL 2.0 или выше, или если расширение GL_ARB_texture_non_power_of_two присутствует.

Буфер кадра также может стать некорректным, если QOpenGLContext, в котором был создан буфер кадра, уничтожен, и нет других общих контекстов, которые могут принять на себя владение буфером кадра.

bool QOpenGLFramebufferObject::release()

Переключает отрисовку обратно на буфер кадра по умолчанию, предоставляемый системным окном. Возвращает true при успехе, false в противном случае.

См. также bind().

void QOpenGLFramebufferObject::setAttachment(QOpenGLFramebufferObject::Attachment attachment)

Устанавливает прикрепления объекта буфера кадра в attachment.

Это можно использовать для освобождения или повторного прикрепления прикреплений буферов глубины и шаблона по мере необходимости.

Примечание: Эта функция изменяет текущую привязку буфера кадра.

См. также attachment().

QSize QOpenGLFramebufferObject::size() const

Возвращает размер цветовых и глубинных/шаблонных прикреплений, прикреплённых к этому объекту буфера кадра.

QVector<QSize> QOpenGLFramebufferObject::sizes() const

Возвращает размеры всех цветовых прикреплений, прикреплённых к этому объекту буфера кадра.

Функция была добавлена в Qt 5.6.

GLuint QOpenGLFramebufferObject::takeTexture()

Возвращает идентификатор текстуры для текстуры, прикреплённой к этому объекту буфера кадра. Владение текстурой передаётся вызывающей стороне.

Если объект буфера кадра в настоящее время привязан, будет неявное выполнение release(). Во время следующего вызова bind() будет создана новая текстура.

Если используется объект буфера кадра с несколькими выборками, то текстуры нет, и возвращаемое значение этой функции будет недействительным. Аналогично, неполные объекты буфера кадра также вернут 0.

Эта функция была добавлена в Qt 5.3.

См. также texture(), bind() и release().

GLuint QOpenGLFramebufferObject::takeTexture(int colorAttachmentIndex)

Это перегруженная функция.

Возвращает идентификатор текстуры для текстуры, прикрепленной к цветному приложению с индексом colorAttachmentIndex этого объекта буфера кадра. Владение текстурой передаётся вызывающей стороне.

Когда colorAttachmentIndex равно 0, поведение идентично варианту этой функции без параметров.

Если объект буфера кадра в данный момент привязан, будет неявное выполнение release(). Во время следующего вызова bind() будет создана новая текстура.

Если используется объект буфера кадра с несколькими выборками, то текстуры нет, и возвращаемое значение этой функции будет недействительным. Аналогично, неполные объекты буфера кадра также вернут 0.

Эта функция была добавлена в Qt 5.6.

GLuint QOpenGLFramebufferObject::texture() const

Возвращает идентификатор текстуры для текстуры, прикреплённой в качестве целевого объекта рендеринга по умолчанию в этом объекте буфера кадра. Этот идентификатор текстуры можно привязать как обычную текстуру в собственном коде OpenGL.

Если используется объект буфера кадра с несколькими выборками, то возвращаемое значение этой функции будет недействительным.

Когда прикреплено несколько текстур, возвращаемое значение — идентификатор первой из них.

См. также takeTexture() и textures().

QVector<GLuint> QOpenGLFramebufferObject::textures() const

Возвращает идентификатор всех прикреплённых текстур.

Если используется объект буфера кадра с несколькими выборками, возвращается пустой вектор.

Эта функция была добавлена в Qt 5.6.

См. также takeTexture() и texture().

QImage QOpenGLFramebufferObject::toImage(bool flipped) const

Возвращает содержимое этого объекта буфера кадра как QImage.

Если flipped равно true, изображение переворачивается с координат OpenGL на координаты растрового изображения. Если используется совместно с QOpenGLPaintDevice, flipped должно быть противоположно значению QOpenGLPaintDevice::paintFlipped().

Возвращаемое изображение имеет формат premultiplied ARGB32 или RGB32. Последний используется только тогда, когда internalTextureFormat() установлено в GL_RGB. С Qt 5.2 функция будет использовать по умолчанию premultiplied RGBA8888 или RGBx8888 при чтении в (A)RGB32, не поддерживаемом, и это включает OpenGL ES. С Qt 5.4 возвращается изображение A2BGR30, если внутренний формат RGB10_A2, а с Qt 5.12 — RGBA64, если внутренний формат RGBA16.

Если рендеринг в буфере кадра не учитывал умножение альфа-компоненты наперед, создайте обёртку QImage с форматом без умножения наперед. Это необходимо перед выполнением операций, таких как QImage::save(), поскольку в противном случае данные изображения будут деумножены, даже если они не были умножены наперед в самом начале. Чтобы создать такую обёртку без копирования пиксельных данных, сделайте следующее:

QImage fboImage(fbo.toImage());
QImage image(fboImage.constBits(), fboImage.width(), fboImage.height(), QImage::Format_ARGB32);

Для объектов буфера кадра с несколькими выборками выборки разрешаются с помощью расширения GL_EXT_framebuffer_blit. Если расширение недоступно, содержимое возвращаемого изображения не определено.

Для одиночных буферов кадра содержимое извлекается через glReadPixels. Это потенциально дорогостоящая и неэффективная операция. Поэтому рекомендуется использовать эту функцию как можно реже.

См. также QOpenGLPaintDevice::paintFlipped().

QImage QOpenGLFramebufferObject::toImage() const

Это перегруженная функция.

Возвращает содержимое этого объекта буфера кадра как QImage. Этот метод переворачивает изображение с координат OpenGL на координаты растрового изображения.

QImage QOpenGLFramebufferObject::toImage(bool flipped, int colorAttachmentIndex) const

Это перегруженная функция.

Возвращает содержимое цветного прикрепления с индексом colorAttachmentIndex этого объекта буфера кадра как QImage. Этот метод переворачивает изображение с координат OpenGL на координаты растрового изображения, когда flipped установлено в true.

Примечание: Эта перегрузка полностью функциональна только при поддержке нескольких целевых областей рендеринга реализацией OpenGL. Когда это не так, будет настроен только один цветной приёмник.

Эта функция была добавлена в Qt 5.6.

int QOpenGLFramebufferObject::width() const

Возвращает ширину прикреплений объекта буфера кадра.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qopenglframebufferobject.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API