QShaderVersion 类

指定着色语言版本。 更多...

头文件 #include <QShaderVersion>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
Qt 6.6

公共类型

枚举Flag { GlslEs }
标志标志

公共函数

QShaderVersion()
QShaderVersion(int v, QShaderVersion::Flags f = Flags())
QShaderVersion::Flagsflags() const
voidsetFlags(QShaderVersion::Flags f)
voidsetVersion(int v)
intversion() const
booloperator!=(const QShaderVersion &lhs, const QShaderVersion &rhs)
booloperator<(const QShaderVersion &lhs, const QShaderVersion &rhs)
booloperator==(const QShaderVersion &lhs, const QShaderVersion &rhs)

详细介绍

虽然像 SPIR-V 或 Metal 着色语言这样的语言使用传统的版本号,但其他 API 的着色器可以使用略有不同的版本方案。但这里都映射到单个版本号。对于 HLSL,版本指的是着色器模型版本,如 5.0,5.1 或 6.0。对于 GLSL,需要一个额外的标志来选择 GLSL 或 GLSL/ES。

以下是不同图形 API 着色版本最常见示例的列表

  • Vulkan (SPIR-V): 100
  • OpenGL: 120, 330, 440 等。
  • OpenGL ES: 带有 GlslEs 的 100,带有 GlslEs 的 300 等。
  • Direct3D: 50,51,60
  • Metal: 12,20

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

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

成员类型文档

enum QShaderVersion::Flag
flags QShaderVersion::Flags

描述可以设置的标志。

常量描述
QShaderVersion::GlslEs0x01表示 GLSL/ES 与 GlslShader 结合使用

Flags 类型是 QFlags 的 typedef,用于存储 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,则返回真。

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

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

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

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