Spec-Zone.ru › Qt 5.15

Класс QOpenGLPaintDevice

Класс QOpenGLPaintDevice позволяет производить отрисовку в контексте OpenGL с помощью QPainter. Подробнее...

Заголовок: #include <QOpenGLPaintDevice>
qmake: QT += gui
С момента: Qt 5.0
Наследует: QPaintDevice

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

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

Открытые функции

QOpenGLPaintDevice(int width, int height)
QOpenGLPaintDevice(const QSize &size)
QOpenGLPaintDevice()
virtual ~QOpenGLPaintDevice()
QOpenGLContext * context() const
qreal dotsPerMeterX() const
qreal dotsPerMeterY() const
virtual void ensureActiveTarget()
bool paintFlipped() const
void setDevicePixelRatio(qreal devicePixelRatio)
void setDotsPerMeterX(qreal dpmx)
void setDotsPerMeterY(qreal dpmy)
void setPaintFlipped(bool flipped)
void setSize(const QSize &size)
QSize size() const

Переопределенные открытые функции

virtual QPaintEngine * paintEngine() const override

Переопределенные защищенные функции

virtual int metric(QPaintDevice::PaintDeviceMetric metric) const override

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

QOpenGLPaintDevice использует текущий QOpenGL контекст для рендеринга команд рисования QPainter. Контекст захватывается при создании. Требуется поддержка OpenGL (ES) 2.0 или более поздних версий.

Производительность

QOpenGLPaintDevice практически всегда ускоряется аппаратно и может быть значительно быстрее, чем программная растризация. Однако он более чувствителен к изменениям состояния и, следовательно, требует тщательного упорядочения команд рисования для достижения оптимальной производительности.

Антиалиасинг и качество

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

Изменения состояния

При отрисовке в QOpenGLPaintDevice с помощью QPainter состояние текущего OpenGL контекста будет изменено движком отрисовки для отражения его потребностей. Приложения не должны полагаться на сброс состояния OpenGL до первоначальных условий, особенно текущей программы шейдеров, области просмотра OpenGL, блоков текстур и режимов рисования.

Использование QPainter и OpenGL совместно

При совместном использовании QPainter и OpenGL важно уведомить QPainter о том, что состояние OpenGL может быть нарушено, чтобы он мог восстановить свое внутреннее состояние. Это достигается путем вызова QPainter::beginNativePainting() перед началом рендеринга OpenGL и вызова QPainter::endNativePainting() после завершения.

См. также Пример окна OpenGL.

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

QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height)

Создает QOpenGLPaintDevice с заданной width и height.

QOpenGLPaintDevice действителен только для текущего контекста.

См. также QOpenGLContext::currentContext().

QOpenGLPaintDevice::QOpenGLPaintDevice(const QSize &size)

Создает QOpenGLPaintDevice с заданным размером size.

QOpenGLPaintDevice действителен только для текущего контекста.

См. также QOpenGLContext::currentContext().

QOpenGLPaintDevice::QOpenGLPaintDevice()

Создает QOpenGLPaintDevice.

QOpenGLPaintDevice действителен только для текущего контекста.

См. также QOpenGLContext::currentContext().

[virtual] QOpenGLPaintDevice::~QOpenGLPaintDevice()

Уничтожает QOpenGLPaintDevice.

QOpenGLContext *QOpenGLPaintDevice::context() const

Возвращает OpenGL контекст, связанный с устройством отрисовки.

qreal QOpenGLPaintDevice::dotsPerMeterX() const

Возвращает количество пикселей на метр по горизонтали.

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

qreal QOpenGLPaintDevice::dotsPerMeterY() const

Возвращает количество пикселей на метр по вертикали.

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

[virtual] void QOpenGLPaintDevice::ensureActiveTarget()

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

beginNativePainting() также вызовет эту функцию.

По умолчанию ничего не делает.

[override virtual protected] int QOpenGLPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const

Реализует: QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const.

[override virtual] QPaintEngine *QOpenGLPaintDevice::paintEngine() const

Реализует: QPaintDevice::paintEngine() const.

bool QOpenGLPaintDevice::paintFlipped() const

Возвращает true значение, если отрисовка переворачивается относительно оси Y.

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

void QOpenGLPaintDevice::setDevicePixelRatio(qreal devicePixelRatio)

Устанавливает коэффициент пикселей устройства для устройства отрисовки в devicePixelRatio.

void QOpenGLPaintDevice::setDotsPerMeterX(qreal dpmx)

Устанавливает количество пикселей на метр по горизонтали в dpmx.

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

void QOpenGLPaintDevice::setDotsPerMeterY(qreal dpmy)

Устанавливает количество пикселей на метр по вертикали в dpmy.

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

void QOpenGLPaintDevice::setPaintFlipped(bool flipped)

Устанавливает, нужно ли переворачивать отрисовку относительно оси Y или нет, в значение flipped.

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

void QOpenGLPaintDevice::setSize(const QSize &size)

Устанавливает размер пикселей устройства рисования на size.

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

QSize QOpenGLPaintDevice::size() const

Возвращает размер пикселей устройства рисования.

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

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

Spec-Zone.ru

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