Describes the a single color attachment of a render target. 更多...
头: | #include <QRhiColorAttachment> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Since: | Qt 6.6 |
QRhiColorAttachment () | |
QRhiColorAttachment (QRhiTexture * texture ) | |
QRhiColorAttachment (QRhiRenderBuffer * renderBuffer ) | |
int | layer () const |
int | level () const |
QRhiRenderBuffer * | renderBuffer () const |
int | resolveLayer () const |
int | resolveLevel () const |
QRhiTexture * | resolveTexture () const |
void | setLayer (int layer ) |
void | setLevel (int level ) |
void | setRenderBuffer (QRhiRenderBuffer * rb ) |
void | setResolveLayer (int layer ) |
void | setResolveLevel (int level ) |
void | setResolveTexture (QRhiTexture * tex ) |
void | setTexture (QRhiTexture * tex ) |
QRhiTexture * | texture () const |
A color attachment is either a QRhiTexture 或 QRhiRenderBuffer . The former, i.e. when texture () is set, is used in most cases. QRhiColorAttachment is commonly used in combination with QRhiTextureRenderTargetDescription .
注意: texture () 和 renderBuffer () cannot be both set (be non-null at the same time).
设置 renderBuffer instead is recommended only when multisampling is needed. Relying on QRhi::MultisampleRenderBuffer is a better choice than QRhi::MultisampleTexture in practice since the former is available in more run time configurations (e.g. when running on OpenGL ES 3.0 which has no support for multisample textures, but does support multisample renderbuffers).
When targeting a non-multisample texture, the
layer
() 和
level
() indicate the targeted layer (face index
0-5
for cubemaps) and mip level. For 3D textures
layer
() specifies the slice (one 2D image within the 3D texture) to render to. For texture arrays
layer
() is the array index.
当 texture () 或 renderBuffer () is multisample, resolveTexture () can be set optionally. When set, samples are resolved automatically into that (non-multisample) texture at the end of the render pass. When rendering into a multisample renderbuffers, this is the only way to get resolved, non-multisample content out of them. Multisample textures allow sampling in shaders so for them this is just one option.
注意: when resolving is enabled, the multisample data may not be written out at all. This means that the multisample texture () must not be used afterwards with shaders for sampling when resolveTexture () is set.
注意: This is a RHI API with limited compatibility guarantees, see QRhi 了解细节。
另请参阅 QRhiTextureRenderTargetDescription .
[constexpr noexcept]
QRhiColorAttachment::
QRhiColorAttachment
()
Constructs an empty color attachment description.
Constructs a color attachment description that specifies texture as the associated color buffer.
Constructs a color attachment description that specifies renderBuffer as the associated color buffer.
Returns the layer index (cubemap face or array layer). 0 by default.
另请参阅 setLayer ().
Returns the mip level. 0 by default.
另请参阅 setLevel ().
Returns the renderbuffer this attachment description references, or
nullptr
若没有。
In practice associating a QRhiRenderBuffer 采用 QRhiColorAttachment makes the most sense when setting up multisample rendering via a multisample color renderbuffer that is then resolved into a non-multisample texture at the end of the render pass.
另请参阅 setRenderBuffer ().
Returns the currently set resolve texture layer. Defaults to 0.
另请参阅 setResolveLayer ().
Returns the currently set resolve texture mip level. Defaults to 0.
另请参阅 setResolveLevel ().
Returns the resolve texture this attachment description references, or
nullptr
若没有。
Setting a non-null resolve texture is applicable when the attachment references a multisample, color renderbuffer. (i.e., renderBuffer () is set) The QRhiTexture in the resolveTexture() is then a regular, 2D, non-multisample texture with the same size (but a sample count of 1). The multisample content is automatically resolved into this texture at the end of each render pass.
另请参阅 setResolveTexture ().
设置 layer 索引。
另请参阅 layer ().
Sets the mip level .
另请参阅 level ().
Sets the renderbuffer rb .
注意: texture () 和 renderBuffer () cannot be both set (be non-null at the same time).
另请参阅 renderBuffer ().
Sets the resolve texture layer to use.
另请参阅 resolveLayer ().
Sets the resolve texture mip level to use.
另请参阅 resolveLevel ().
Sets the resolve texture tex .
另请参阅 resolveTexture ().
Sets the texture tex .
注意: texture () 和 renderBuffer () cannot be both set (be non-null at the same time).
另请参阅 texture ().
Returns the texture this attachment description references, or
nullptr
若没有。
另请参阅 setTexture ().