QOpenGLFramebufferObjectFormat 类
QOpenGLFramebufferObjectFormat 类指定 OpenGL 帧缓冲对象格式。 更多...
头文件 | #include <QOpenGLFramebufferObjectFormat> |
CMake | find_package(Qt6 REQUIRED COMPONENTS OpenGL) target_link_libraries(mytarget PRIVATE Qt6::OpenGL) |
qmake | QT += opengl |
- 所有成员列表,包括继承成员
- QOpenGLFramebufferObjectFormat 是 3D 渲染 的一部分。
公共函数
QOpenGLFramebufferObjectFormat() | |
QOpenGLFramebufferObjectFormat(const QOpenGLFramebufferObjectFormat &other) | |
~QOpenGLFramebufferObjectFormat() | |
QOpenGLFramebufferObject::Attachment | attachment() const |
GLenum | internalTextureFormat() const |
bool | mipmap() const |
int | samples() const |
void | setAttachment(QOpenGLFramebufferObject::Attachment attachment) |
void | setInternalTextureFormat(GLenum internalTextureFormat) |
void | setMipmap(bool enabled) |
void | setSamples(int samples) |
void | setTextureTarget(GLenum target) |
GLenum | textureTarget() const |
bool | operator!=(const QOpenGLFramebufferObjectFormat &other) const |
QOpenGLFramebufferObjectFormat & | operator=(const QOpenGLFramebufferObjectFormat &other) |
bool | operator==(const QOpenGLFramebufferObjectFormat &other) const |
详细描述
帧缓冲对象有几个特性
注意,硬件驱动程序可能不支持所需的附件或每像素的样本数。在创建 QOpenGLFramebufferObject 后调用 QOpenGLFramebufferObject::format() 来找到用于创建帧缓冲对象的确切格式。
成员函数文档
QOpenGLFramebufferObjectFormat::QOpenGLFramebufferObjectFormat()
创建一个 QOpenGLFramebufferObjectFormat 对象,用于指定 OpenGL 帧缓冲对象的格式。
默认情况下,该格式指定了一个不包含深度/模板附件的非多重采样帧缓冲对象,纹理目标为 GL_TEXTURE_2D
,内部格式为 GL_RGBA8
。在OpenGL/ES系统上,默认的内部格式为 GL_RGBA
。
另请参阅 samples(),attachment() 和 internalTextureFormat。
QOpenGLFramebufferObjectFormat::QOpenGLFramebufferObjectFormat(const QOpenGLFramebufferObjectFormat &other)
构造 other 的副本。
[noexcept]
QOpenGLFramebufferObjectFormat::~QOpenGLFramebufferObjectFormat()
销毁 QOpenGLFramebufferObjectFormat。
QOpenGLFramebufferObject::Attachment QOpenGLFramebufferObjectFormat::attachment() const
返回附加到帧缓冲对象的深度和模板缓冲区的配置。默认为 QOpenGLFramebufferObject::NoAttachment。
另请参阅 setAttachment。
GLenum QOpenGLFramebufferObjectFormat::internalTextureFormat() const
返回帧缓冲对象的纹理或多重采样帧缓冲对象的颜色缓冲区的内部格式。在桌面OpenGL系统上默认为 GL_RGBA8
,在OpenGL/ES系统上默认为 GL_RGBA
。
另请参阅 setInternalTextureFormat。
bool QOpenGLFramebufferObjectFormat::mipmap() const
如果启用多级贴图,则返回 true。
另请参阅 setMipmap。
int QOpenGLFramebufferObjectFormat::samples() const
如果帧缓冲对象是多重采样帧缓冲对象,则返回每个像素的采样数。否则返回 0。默认值为 0。
另请参阅 setSamples。
void QOpenGLFramebufferObjectFormat::setAttachment(QOpenGLFramebufferObject::Attachment attachment)
将帧缓冲对象的附加配置设置为 attachment。
另请参阅 attachment。
void QOpenGLFramebufferObjectFormat::setInternalTextureFormat(GLenum internalTextureFormat)
将帧缓冲对象的纹理或多重采样帧缓冲对象的颜色缓冲区的内部格式设置为 internalTextureFormat。
另请参阅 internalTextureFormat。
void QOpenGLFramebufferObjectFormat::setMipmap(bool enabled)
如果 enabled 为 true,则启用多级贴图;否则禁用它。
默认情况下禁用多级贴图。
如果启用多级贴图,将为多级贴图级别分配额外的内存。可以通过绑定纹理并调用 glGenerateMipmap() 来更新多级贴图级别。多重采样帧缓冲对象无法启用多级贴图。
另请参阅 mipmap 和 QOpenGLFramebufferObject::texture。
void QOpenGLFramebufferObjectFormat::setSamples(int samples)
设置多采样帧缓冲对象每像素的采样数。默认的采样计数为0,代表普通非多采样帧缓冲对象。
如果硬件不支持每像素所需的采样量,则将使用每像素的最大采样数。注意,多采样帧缓冲对象不能用作纹理。此外,创建带有每像素单个以上采样的帧缓冲对象需要GL_EXT_framebuffer_multisample
扩展。
请参见samples()。
void QOpenGLFramebufferObjectFormat::setTextureTarget(GLenum target)
将附加到帧缓冲对象上的纹理的目标设置为target。对于多采样帧缓冲对象不适用。
请参见 textureTarget()和samples()。
GLenum QOpenGLFramebufferObjectFormat::textureTarget() const
返回附加到帧缓冲对象上的纹理的目标。对于多采样帧缓冲对象不适用。默认为GL_TEXTURE_2D
。
请参见 setTextureTarget()和samples()。
bool QOpenGLFramebufferObjectFormat::operator!=(const QOpenGLFramebufferObjectFormat &other) const
如果此帧缓冲对象格式的所有选项都与other相同,则返回false
;否则返回true
。
QOpenGLFramebufferObjectFormat &QOpenGLFramebufferObjectFormat::operator=(const QOpenGLFramebufferObjectFormat &other)
将other赋予此对象。
bool QOpenGLFramebufferObjectFormat::operator==(const QOpenGLFramebufferObjectFormat &other) const
如果此帧缓冲对象格式的所有选项都与other相同,则返回true
;否则返回false
。
© 2024 The Qt Company Ltd. 本文档的贡献者是其各自的拥有者。本提供的文档是根据Free Software Foundation发布的GNU自由文档许可协议第1.3版下的条款授权的。Qt及其相关标志是The Qt Company Ltd.在芬兰以及全球其他国家的商标。所有其他商标都是其各自拥有者的财产。