QtBase
v6.3.1
|
#include <qrhi_p.h>
Public Types | |
enum | Flag { PreserveColorContents = 1 << 0 , PreserveDepthStencilContents = 1 << 1 } |
Public Types inherited from QRhiResource | |
enum | Type { Buffer , Texture , Sampler , RenderBuffer , RenderPassDescriptor , RenderTarget , TextureRenderTarget , ShaderResourceBindings , GraphicsPipeline , SwapChain , ComputePipeline , CommandBuffer } |
Public Member Functions | |
QRhiResource::Type | resourceType () const override |
QRhiTextureRenderTargetDescription | description () const |
void | setDescription (const QRhiTextureRenderTargetDescription &desc) |
Flags | flags () const |
void | setFlags (Flags f) |
virtual QRhiRenderPassDescriptor * | newCompatibleRenderPassDescriptor ()=0 |
virtual bool | create ()=0 |
Public Member Functions inherited from QRhiRenderTarget | |
virtual QSize | pixelSize () const =0 |
virtual float | devicePixelRatio () const =0 |
virtual int | sampleCount () const =0 |
QRhiRenderPassDescriptor * | renderPassDescriptor () const |
void | setRenderPassDescriptor (QRhiRenderPassDescriptor *desc) |
Public Member Functions inherited from QRhiResource | |
virtual | ~QRhiResource () |
virtual void | destroy ()=0 |
void | deleteLater () |
QByteArray | name () const |
void | setName (const QByteArray &name) |
quint64 | globalResourceId () const |
Protected Member Functions | |
QRhiTextureRenderTarget (QRhiImplementation *rhi, const QRhiTextureRenderTargetDescription &desc_, Flags flags_) | |
Protected Member Functions inherited from QRhiRenderTarget | |
QRhiRenderTarget (QRhiImplementation *rhi) | |
Protected Member Functions inherited from QRhiResource | |
QRhiResource (QRhiImplementation *rhi) | |
Protected Attributes | |
QRhiTextureRenderTargetDescription | m_desc |
Flags | m_flags |
Protected Attributes inherited from QRhiRenderTarget | |
QRhiRenderPassDescriptor * | m_renderPassDesc = nullptr |
Protected Attributes inherited from QRhiResource | |
QRhiImplementation * | m_rhi = nullptr |
quint64 | m_id |
QByteArray | m_objectName |
\class QRhiTextureRenderTarget \internal \inmodule QtGui \brief Texture render target resource. A texture render target allows rendering into one or more textures, optionally with a depth texture or depth/stencil renderbuffer. \note Textures used in combination with QRhiTextureRenderTarget must be created with the QRhiTexture::RenderTarget flag. The simplest example of creating a render target with a texture as its single color attachment: \badcode texture = rhi->newTexture(QRhiTexture::RGBA8, size, 1, QRhiTexture::RenderTarget); texture->create(); rt = rhi->newTextureRenderTarget({ texture }); rp = rt->newCompatibleRenderPassDescriptor(); rt->setRenderPassDescriptor(rt); rt->create();
rt can now be used with beginPass()
Flag values describing the load/store behavior for the render target. The load/store behavior may be baked into native resources under the hood, depending on the backend, and therefore it needs to be known upfront and cannot be changed without rebuilding (and so releasing and creating new native resources).
\value PreserveColorContents Indicates that the contents of the color attachments is to be loaded when starting a render pass, instead of clearing. This is potentially more expensive, especially on mobile (tiled) GPUs, but allows preserving the existing contents between passes.
\value PreserveDepthStencilContents Indicates that the contents of the depth texture is to be loaded when starting a render pass, instead clearing. Only applicable when a texture is used as the depth buffer (QRhiTextureRenderTargetDescription::depthTexture() is set) because depth/stencil renderbuffers may not have any physical backing and data may not be written out in the first place.
Enumerator | |
---|---|
PreserveColorContents | |
PreserveDepthStencilContents |
|
protected |
|
pure virtual |
Creates the corresponding native graphics resources. If there are already resources present due to an earlier create() with no corresponding destroy(), then destroy() is called implicitly first.
true
when successful, false
when a graphics operation failed. Regardless of the return value, calling destroy() is always safe. Implemented in QVkTextureRenderTarget, QNullTextureRenderTarget, QMetalTextureRenderTarget, QGles2TextureRenderTarget, and QD3D11TextureRenderTarget.
|
inline |
|
pure virtual |
The returned value is used in two ways: it can be passed to setRenderPassDescriptor() and QRhiGraphicsPipeline::setRenderPassDescriptor(). A render pass descriptor describes the attachments (color, depth/stencil) and the load/store behavior that can be affected by flags(). A QRhiGraphicsPipeline can only be used in combination with a render target that has the same QRhiRenderPassDescriptor set.
Two QRhiTextureRenderTarget instances can share the same render pass descriptor as long as they have the same number and type of attachments. The associated QRhiTexture or QRhiRenderBuffer instances are not part of the render pass descriptor so those can differ in the two QRhiTextureRenderTarget instances.
Implemented in QVkTextureRenderTarget, QNullTextureRenderTarget, QMetalTextureRenderTarget, QGles2TextureRenderTarget, and QD3D11TextureRenderTarget.
|
overridevirtual |
Reimplemented from QRhiRenderTarget.
Definition at line 2977 of file qrhi.cpp.
|
inline |
|
protected |