QSurface Class
The QSurface class is an abstraction of renderable surfaces in Qt. More...
Header: | #include <QSurface> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Inherited By: |
Public Types
enum | SurfaceClass { Window, Offscreen } |
enum | SurfaceType { RasterSurface, OpenGLSurface, RasterGLSurface, OpenVGSurface, VulkanSurface, …, Direct3DSurface } |
Public Functions
virtual | ~QSurface() |
virtual QSurfaceFormat | format() const = 0 |
virtual QSize | size() const = 0 |
bool | supportsOpenGL() const |
QSurface::SurfaceClass | surfaceClass() const |
virtual QPlatformSurface * | surfaceHandle() const = 0 |
virtual QSurface::SurfaceType | surfaceType() const = 0 |
Protected Functions
QSurface(QSurface::SurfaceClass type) |
Detailed Description
The size of the surface is accessible with the size() function. The rendering specific attributes of the surface are accessible through the format() function.
Member Type Documentation
enum QSurface::SurfaceClass
The SurfaceClass enum describes the actual subclass of the surface.
Constant | Value | Description |
---|---|---|
QSurface::Window | 0 | The surface is an instance of QWindow. |
QSurface::Offscreen | 1 | The surface is an instance of QOffscreenSurface. |
enum QSurface::SurfaceType
The SurfaceType enum describes what type of surface this is.
Constant | Value | Description |
---|---|---|
QSurface::RasterSurface | 0 | The surface is composed of pixels and can be rendered to using a software rasterizer like Qt's raster paint engine. |
QSurface::OpenGLSurface | 1 | The surface is an OpenGL compatible surface and can be used in conjunction with QOpenGLContext. |
QSurface::RasterGLSurface | 2 | The surface can be rendered to using a software rasterizer, and also supports OpenGL. This surface type is intended for internal Qt use, and requires the use of private API. |
QSurface::OpenVGSurface | 3 | The surface is an OpenVG compatible surface and can be used in conjunction with OpenVG contexts. |
QSurface::VulkanSurface | 4 | The surface is a Vulkan compatible surface and can be used in conjunction with the Vulkan graphics API. |
QSurface::MetalSurface | 5 | The surface is a Metal compatible surface and can be used in conjunction with Apple's Metal graphics API. This surface type is only supported on macOS and iOS. |
QSurface::Direct3DSurface | 6 | The surface is a Direct 3D 11 and 12 compatible surface and can be used in conjunction with the DXGI and Direct3D APIs. This surface type is only supported on Windows. |
Member Function Documentation
[explicit protected]
QSurface::QSurface(QSurface::SurfaceClass type)
Creates a surface with the given type.
[virtual noexcept]
QSurface::~QSurface()
Destroys the surface.
[pure virtual]
QSurfaceFormat QSurface::format() const
Returns the format of the surface.
[pure virtual]
QSize QSurface::size() const
Returns the size of the surface in pixels.
bool QSurface::supportsOpenGL() const
Returns true if the surface is OpenGL compatible and can be used in conjunction with QOpenGLContext; otherwise returns false.
QSurface::SurfaceClass QSurface::surfaceClass() const
Returns the surface class of this surface.
[pure virtual]
QPlatformSurface *QSurface::surfaceHandle() const
Returns a handle to the platform-specific implementation of the surface.
[pure virtual]
QSurface::SurfaceType QSurface::surfaceType() const
Returns the type of the surface.