QSurface 类

QSurface 类是 Qt 中可 rendering 表面的抽象。 更多信息...

头文件 #include <QSurface>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
继承自

QOffscreenSurfaceQWindow

公共类型

枚举SurfaceClass { Window, Offscreen }
枚举SurfaceType { RasterSurface, OpenGLSurface, RasterGLSurface, OpenVGSurface, VulkanSurface, …, Direct3DSurface }

公共函数

virtual~QSurface()
virtual QSurfaceFormatformat() const = 0
virtual QSizesize() const = 0
boolsupportsOpenGL() const
QSurface::SurfaceClasssurfaceClass() const
virtual QPlatformSurface *surfaceHandle() const = 0
virtual QSurface::SurfaceTypesurfaceType() const = 0

受保护函数

QSurface(QSurface::SurfaceClass type)

详细描述

通过 size() 函数可以访问表面的尺寸。通过 format() 函数可以访问表面的渲染特定属性。

成员类型文档

枚举 QSurface::SurfaceClass

SurfaceClass 枚举描述了表面的实际子类。

常量描述
QSurface::Window0表面是 QWindow 的实例。
QSurface::Offscreen1表面是 QOffscreenSurface 的实例。

枚举 QSurface::SurfaceType

SurfaceType 枚举描述了这是一种什么类型的表面。

常量描述
QSurface::RasterSurface0表面由像素组成,可以使用像 Qt 的 raster paint 引擎这样的软件光栅化器进行渲染。
QSurface::OpenGLSurface1表面是 OpenGL 兼容的,可以与 QOpenGLContext 一起使用。
QSurface::RasterGLSurface2表面可以使用软件光栅化器进行渲染,也支持 OpenGL。此表面类型旨在供 Qt 内部使用,并需要使用私有 API。
QSurface::OpenVGSurface3该表面是一个与OpenVG兼容的表面,可以与OpenVG上下文一起使用。
QSurface::VulkanSurface4该表面是一个与Vulkan兼容的表面,可以与Vulkan图形API一起使用。
QSurface::MetalSurface5该表面是一个与Metal兼容的表面,可以与Apple的Metal图形API一起使用。此表面类型仅在macOS和iOS上受支持。
QSurface::Direct3DSurface6该表面是一个与Direct 3D 11和12兼容的表面,可以与DXGI和Direct3D API一起使用。此表面类型仅在Windows上受支持。

成员函数文档

[明确受保护的] QSurface::QSurface(QSurface::SurfaceClass 类型)

创建一个具有给定类型的表面。

[虚拟无异常] QSurface::~QSurface()

销毁表面。

[纯虚函数] QSurfaceFormat QSurface::format() const

返回表面的格式。

[纯虚函数] QSize QSurface::size() const

返回表面像素大小。

bool QSurface::supportsOpenGL() const

如果表面与QOpenGLContext兼容并可一起使用,则返回true;否则返回false。

QSurface::SurfaceClass QSurface::surfaceClass() const

返回此表面的表面类。

[纯虚函数] QPlatformSurface *QSurface::surfaceHandle() const

返回对平台特定表面实现的句柄。

[纯虚函数] QSurface::SurfaceType QSurface::surfaceType() const

返回表面类型。

© 2024 The Qt Company Ltd. 包含在此处的文档贡献的版权属于其各自的所有者。此处提供的文档根据由自由软件基金会发布的GNU自由文档许可版本1.3的条款进行许可。Qt以及相应的标志是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。