Auf dieser Seite

QShaderVersion Class

Gibt die Version der Shading-Sprache an. Mehr...

Header: #include <qshader.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Seit: Qt 6.6

Öffentliche Typen

enum Flag { GlslEs }
flags Flags

Öffentliche Funktionen

QShaderVersion()
QShaderVersion(int v, QShaderVersion::Flags f = Flags())
QShaderVersion::Flags flags() const
void setFlags(QShaderVersion::Flags f)
void setVersion(int v)
int version() const
(since 6.12) size_t qHash(QShaderVersion key, size_t seed)
bool operator!=(const QShaderVersion &lhs, const QShaderVersion &rhs)
bool operator<(const QShaderVersion &lhs, const QShaderVersion &rhs)
bool operator==(const QShaderVersion &lhs, const QShaderVersion &rhs)

Ausführliche Beschreibung

Während Sprachen wie SPIR-V oder die Metal Shading Language traditionelle Versionsnummern verwenden, können Shader für andere APIs leicht abweichende Versionsschemata nutzen. All diese werden hier jedoch einer einzigen Versionsnummer zugeordnet. Bei HLSL bezieht sich die Version auf die Shader-Model-Version, wie beispielsweise 5.0, 5.1 oder 6.0. Bei GLSL ist ein zusätzliches Flag erforderlich, um zwischen GLSL und GLSL/ES zu unterscheiden.

Nachfolgend finden Sie eine Liste mit den gängigsten Beispielen für Shader-Versionen verschiedener Grafik-APIs:

  • Vulkan (SPIR-V): 100
  • OpenGL: 120, 330, 440 usw.
  • OpenGL ES: 100 mit „ GlslEs “, 300 mit „ GlslEs “ usw.
  • Direct3D: 50, 51, 60
  • Metal: 12, 20

Ein standardmäßig konstruiertes `QShaderVersion`-Objekt enthält die Version 100 und keine gesetzten Flags.

Hinweis: Dies ist eine RHI-API mit eingeschränkten Kompatibilitätsgarantien; weitere Informationen finden Sie unter QShader.

Dokumentation zu den Mitgliedstypen

enum QShaderVersion::Flag
flags QShaderVersion::Flags

Beschreibt die Flags, die gesetzt werden können.

KonstanteWertBeschreibung
QShaderVersion::GlslEs0x01Gibt an, dass GLSL/ES in Kombination mit GlslShader verwendet werden soll

Der Typ „Flags“ ist ein typedef für QFlags<Flag>. Er speichert eine OR-Kombination von Flag-Werten.

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept default] QShaderVersion::QShaderVersion()

QShaderVersion::QShaderVersion(int v, QShaderVersion::Flags f = Flags())

Erstellt eine neue `QShaderVersion` mit der Versionsnummer ` v ` und den Flags ` f`.

QShaderVersion::Flags QShaderVersion::flags() const

Gibt die Flags zurück.

Siehe auch ` setFlags()`.

void QShaderVersion::setFlags(QShaderVersion::Flags f)

Setzt die Flags „ f “.

Siehe auch flags().

void QShaderVersion::setVersion(int v)

Setzt die Version der Shading-Sprache auf „ v “.

Siehe auch version().

int QShaderVersion::version() const

Gibt die Version zurück.

Siehe auch ` setVersion()`.

Verwandte Nicht-Mitglieder

[noexcept, since 6.12] size_t qHash(QShaderVersion key, size_t seed)

Gibt den Hash-Wert für key zurück, wobei seed als Startwert für die Berechnung verwendet wird.

Hinweis: Bei INTEGRITY ist diese Funktion seit Version 6.2 verfügbar.

Diese Funktion wurde in Qt 6.12 eingeführt.

[noexcept] bool operator!=(const QShaderVersion &lhs, const QShaderVersion &rhs)

Gibt „ false “ zurück, wenn die Werte in den beiden „ QShaderVersion “-Objekten „ lhs “ und „ rhs “ identisch sind; andernfalls wird „ true “ zurückgegeben.

[noexcept] bool operator<(const QShaderVersion &lhs, const QShaderVersion &rhs)

Gibt „true“ zurück, wenn lhs kleiner ist als rhs.

Legt eine Sortierreihenfolge zwischen den beiden Werten „ QShaderVersion “, „ lhs “ und „ rhs “ fest.

[noexcept] bool operator==(const QShaderVersion &lhs, const QShaderVersion &rhs)

Gibt „ true “ zurück, wenn die beiden Objekte „ QShaderVersion “ lhs und rhs gleich sind.

© 2026 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.