QSurface Class

Die Klasse QSurface ist eine Abstraktion von renderbaren Oberflächen in Qt. Mehr...

Kopfzeile: #include <QSurface>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Vererbt von:

QOffscreenSurface und QWindow

Öffentliche Typen

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

Öffentliche Funktionen

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

Geschützte Funktionen

QSurface(QSurface::SurfaceClass type)

Detaillierte Beschreibung

Die Größe der Oberfläche ist über die Funktion size() zugänglich. Die rendering-spezifischen Attribute der Oberfläche sind über die Funktion format() zugänglich.

Dokumentation der Mitgliedstypen

enum QSurface::SurfaceClass

Die Aufzählung SurfaceClass beschreibt die aktuelle Unterklasse der Oberfläche.

KonstanteWertBeschreibung
QSurface::Window0Die Oberfläche ist eine Instanz von QWindow.
QSurface::Offscreen1Die Oberfläche ist eine Instanz von QOffscreenSurface.

enum QSurface::SurfaceType

Die Aufzählung SurfaceType beschreibt, um welche Art von Oberfläche es sich handelt.

KonstanteWertBeschreibung
QSurface::RasterSurface0Die Oberfläche besteht aus Pixeln und kann mit einem Software-Rasterizer wie der Raster Paint Engine von Qt gerendert werden.
QSurface::OpenGLSurface1Die Oberfläche ist eine OpenGL-kompatible Oberfläche und kann in Verbindung mit QOpenGLContext verwendet werden.
QSurface::RasterGLSurface2Die Oberfläche kann mit einem Software-Rasterizer gerendert werden und unterstützt ebenfalls OpenGL. Dieser Oberflächentyp ist für die interne Verwendung in Qt vorgesehen und erfordert die Verwendung einer privaten API.
QSurface::OpenVGSurface3Die Oberfläche ist eine OpenVG-kompatible Oberfläche und kann in Verbindung mit OpenVG-Kontexten verwendet werden.
QSurface::VulkanSurface4Die Oberfläche ist eine Vulkan-kompatible Oberfläche und kann in Verbindung mit der Vulkan-Grafik-API verwendet werden.
QSurface::MetalSurface5Die Oberfläche ist eine Metal-kompatible Oberfläche und kann in Verbindung mit der Metal-Grafik-API von Apple verwendet werden. Dieser Oberflächentyp wird nur unter macOS und iOS unterstützt.
QSurface::Direct3DSurface6Die Oberfläche ist eine Direct 3D 11- und 12-kompatible Oberfläche und kann in Verbindung mit den DXGI- und Direct3D-APIs verwendet werden. Dieser Oberflächentyp wird nur unter Windows unterstützt.

Dokumentation der Mitgliedsfunktionen

[explicit protected] QSurface::QSurface(QSurface::SurfaceClass type)

Erzeugt eine Oberfläche mit der angegebenen type.

[virtual noexcept] QSurface::~QSurface()

Zerstört die Oberfläche.

[pure virtual] QSurfaceFormat QSurface::format() const

Gibt das Format der Oberfläche zurück.

[pure virtual] QSize QSurface::size() const

Gibt die Größe der Oberfläche in Pixeln zurück.

bool QSurface::supportsOpenGL() const

Gibt true zurück, wenn die Oberfläche OpenGL-kompatibel ist und in Verbindung mit QOpenGLContext verwendet werden kann; andernfalls wird false zurückgegeben.

QSurface::SurfaceClass QSurface::surfaceClass() const

Gibt die Oberflächenklasse dieser Fläche zurück.

[pure virtual] QPlatformSurface *QSurface::surfaceHandle() const

Gibt ein Handle auf die plattformspezifische Implementierung der Oberfläche zurück.

[pure virtual] QSurface::SurfaceType QSurface::surfaceType() const

Gibt den Typ der Oberfläche zurück.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.