QShaderVersion Class

指定着色语言版本。更多

头文件: #include <QShaderVersion>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Qt 6.6

公共类型

enum Flag { GlslEs }
flags Flags

公共函数

QShaderVersion()
QShaderVersion(int v, QShaderVersion::Flags f = Flags())
QShaderVersion::Flags flags() const
void setFlags(QShaderVersion::Flags f)
void setVersion(int v)
int version() const
bool operator!=(const QShaderVersion &lhs, const QShaderVersion &rhs)
bool operator<(const QShaderVersion &lhs, const QShaderVersion &rhs)
bool operator==(const QShaderVersion &lhs, const QShaderVersion &rhs)

详细说明

SPIR-V 或金属着色语言(Metal Shading Language)等语言使用传统的版本号,而其他 API 的着色器则使用略有不同的版本方案。不过,所有这些都在这里映射为一个版本号。对于 HLSL,版本指的是着色器模型版本,如 5.0、5.1 或 6.0。对于 GLSL,则需要额外的标记来选择 GLSL 和 GLSL/ES。

下面列出了不同图形 API 着色器版本的最常见示例:

  • Vulkan (SPIR-V):100
  • OpenGL: 120、330、440 等。
  • OpenGL ES:100(含GlslEs )、300(含GlslEs )等。
  • Direct3D:50、51、60
  • 金属:12、20

默认构造的 QShaderVersion 版本为 100,未设置任何标志。

注: 这是一个 RHI API,兼容性保证有限,详情请查看QShader

成员类型文档

枚举 QShaderVersion::Flag
flags QShaderVersion::Flags

描述可设置的标志。

常量说明
QShaderVersion::GlslEs0x01表示 GLSL/ES 与 GlslShader 结合使用。

Flags 类型是QFlags<Flag> 的类型定义。它存储 Flag 值的 OR 组合。

成员函数文档

[constexpr noexcept] QShaderVersion::QShaderVersion()

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

构造一个新的 QShaderVersion,版本v ,标志f

QShaderVersion::Flags QShaderVersion::flags() const

返回标志。

另请参见 setFlags()。

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

设置标志f

另请参阅 flags() 。

void QShaderVersion::setVersion(int v)

将着色语言版本设为v

另请参阅 version() 。

int QShaderVersion::version() const

返回版本。

另请参阅 setVersion()。

相关非会员

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

如果两个QShaderVersion 对象lhsrhs 中的值相等,则返回false ;否则返回true

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

如果lhs 小于rhs ,则返回 true。

在两个QShaderVersion lhsrhs 之间建立排序顺序。

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

如果两个QShaderVersion 对象lhsrhs 相等,则返回true

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