- class QOpenGLPaintDevice#
类
QOpenGLPaintDevice通过 QPainter 实现了对 OpenGL 上下文的绘制。更多...概述#
方法#
def
__init__()def
context()def
dotsPerMeterX()def
dotsPerMeterY()def
paintFlipped()定义
setSize()定义
size()
虚方法#
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建ticket来告知我们
详细描述#
QOpenGLPaintDevice使用当前 QOpenGL 上下文来渲染 QPainter 绘图命令。上下文在构造时捕获。它需要支持OpenGL (ES) 2.0或更高版本。性能#
QOpenGLPaintDevice几乎总是硬件加速的,理论上可能比软件光栅化快得多。然而,它对状态变化更敏感,因此需要仔细排序绘图命令以实现最佳性能。抗锯齿和质量#
OpenGL绘图引擎中的抗锯齿采用多采样实现。大多数硬件在执行多采样时需要更多的内存,且结果质量可能与软件绘图引擎质量不相上下。OpenGL绘图引擎的优势在于其性能,而不是其视觉渲染质量。
状态变化#
使用 QPainter 在
QOpenGLPaintDevice上进行绘图时,绘图引擎将通过更改当前OpenGL上下文的当前状态来满足其需求。应用程序不应依赖于将OpenGL状态重置到其原始条件,尤其是当前着色程序、OpenGL视口、纹理单位和绘图模式。组合 QPainter 和 OpenGL#
在混用 QPainter 和 OpenGL 时,需要通知 QPainterOpenGL状态可能已混乱,以便它可以恢复其内部状态。这是通过在开始OpenGL渲染之前调用 QPainter::beginNativePainting()和在完成OpenGL渲染之后调用 QPainter::endNativePainting()来实现的。
另请参阅
- __init__()#
构造一个
QOpenGLPaintDevice。《QOpenGLPaintDevice》类(PySide6.QtOpenGL.QOpenGLPaintDevice)仅在当前上下文中有效。
另请参阅
- __init__(size)
- 参数:
size –
QSize
使用给定的
size构造一个QOpenGLPaintDevice。《QOpenGLPaintDevice》类(PySide6.QtOpenGL.QOpenGLPaintDevice)仅在当前上下文中有效。
另请参阅
- __init__(width, height)
- 参数:
width – int
height – int
使用给定的
width和height构造一个QOpenGLPaintDevice。《QOpenGLPaintDevice》类(PySide6.QtOpenGL.QOpenGLPaintDevice)仅在当前上下文中有效。
另请参阅
- context()#
- 返回类型:
返回与画布关联的OpenGL上下文。
- dotsPerMeterX()#
- 返回类型:
float
返回横向每米像素数。
另请参阅
- dotsPerMeterY()#
- 返回类型:
float
返回纵向每米像素数。
另请参阅
- ensureActiveTarget()#
这个虚方法提供一个回调,允许在不同
QOpenGLPaintDevice实例交替发出绘制调用时重新绑定目标帧缓冲对象或上下文。调用 beginNativePainting() 也会触发此方法。
默认实现不执行任何操作。
- paintFlipped()#
- 返回类型:
bool
如果绘制是围绕Y轴翻转的,则返回
true。另请参阅
- setDevicePixelRatio(devicePixelRatio)#
- 参数:
devicePixelRatio – float
将画布的设备像素比设置为
devicePixelRatio。- setDotsPerMeterX(arg__1)#
- 参数:
arg__1 – float
将每米水平像素数设置为
dpmx。另请参阅
- setDotsPerMeterY(arg__1)#
- 参数:
arg__1 – float
将每米垂直像素数设置为
dpmy。另请参阅
- setPaintFlipped(flipped)#
- 参数:
flipped – bool
设置是否在Y轴周围翻转绘画到
flipped。另请参阅
设置绘画设备的像素大小为
size。另请参阅
返回绘画设备的像素大小。
另请参阅