- class QQuickFramebufferObject#
QQuickFramebufferObject
类是一个方便的类,它允许使用帧缓冲对象(FBO)将 OpenGL 渲染与 Qt Quick 集成。了解更多信息...概述#
属性#
方法#
虚拟方法#
def
createRenderer()
信号#
注意
这份文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译存在问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建票据的方式来告诉我们。
详细描述#
警告
此类仅在 Qt Quick 通过 OpenGL 渲染时才能正常工作。它与其他图形 API(如 Vulkan 或 Metal)不兼容。它应被视为一个仅存在于为了使 Qt 5 应用程序能够在绑定到 OpenGL 的情况下,不中断源兼容性的最终遗留下来的类。
在大多数平台上,渲染将在专用线程上发生。因此,
QQuickFramebufferObject
类强制实施项目实现和FBO渲染之间的严格分离。所有项目逻辑,例如QML所需的属性和相关UI帮助函数,应位于QQuickFramebufferObject
类的子类中。所有与渲染相关的事项都必须位于Renderer
类中。为了避免由于两个线程之间的竞争条件导致的读写问题,非常重要的一点是渲染器和项目永远不会读取或写入共享变量。项目与渲染器之间的通信应主要通过
synchronize()
函数进行。此函数将在渲染线程上调用,同时GUI线程将被阻塞。使用队列连接或事件进行项目与渲染器之间的通信也是可能的。
渲染器和FBO内部都进行内存管理。
要将内容渲染到FBO中,用户应子类化Renderer类并重新实现其
render()
函数。Renderer子类由createRenderer()
返回。默认情况下,FBO的大小将适应项目的大小。如果首选固定大小,则将
textureFollowsItemSize
设置为false
,并在createFramebufferObject()
中返回用户选择的纹理。从Qt 5.4开始,
QQuickFramebufferObject
类是一个纹理提供者
,可以直接用于ShaderEffects和其他使用纹理提供者的类。另请参阅
注意
可以直接使用属性,当使用
from __feature__ import true_property
时,或者通过访问函数使用。- property mirrorVerticallyᅟ: bool#
此属性控制FBO内容的尺寸在绘图时应是否垂直翻转。这允许轻松集成不遵循标准期望的第三方渲染代码。
默认值是
false
。- 属性 textureFollowsItemSizeᅟ: bool#
此属性控制FBO纹理的大小是否应跟随
QQuickFramebufferObject
项的尺寸。当此属性为false时,FBO将在第一次显示时创建。如果设置为true,则每次项的尺寸更改时,FBO将会被重新创建。默认值是
true
。- __init__([parent=None])#
- 参数:
parent –
QQuickItem
使用父级
parent
构建一个新的QQuickFramebufferObject
。- 抽象createRenderer()#
- 返回类型:
渲染器
重新实现此函数以创建用于在FBO中渲染的渲染器。
此函数将在渲染线程中被调用,而GUI线程被阻塞。
- mirrorVertically()#
- 返回类型:
bool
属性
mirrorVerticallyᅟ
的获取器。- mirrorVerticallyChanged(arg__1)#
- 参数:
arg__1 – bool
属性
mirrorVerticallyᅟ
的变更通知信号。- setMirrorVertically(enable)#
- 参数:
enable – bool
另请参阅
属性
mirrorVerticallyᅟ
的设置器。- setTextureFollowsItemSize(follows)#
- 参数:
follows – bool
属性“
textureFollowsItemSize
”的设置器。- textureFollowsItemSize()#
- 返回类型:
bool
属性“
textureFollowsItemSize
”的获取器。- textureFollowsItemSizeChanged(arg__1)#
- 参数:
arg__1 – bool
属性“
textureFollowsItemSize
”的属性变更通知信号。