Spec-Zone.ru › Qt 5.14

Класс 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.14/qopenglpaintdevice.html

Spec-Zone.ru

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