![]() |
Qt 6.x
The Qt SDK
|
\inmodule QtGui More...
#include <qrhi.h>
Classes | |
struct | NativeRenderBuffer |
\inmodule QtGui More... | |
Public Types | |
enum | Type { DepthStencil , Color } |
Specifies the type of the renderbuffer. More... | |
enum | Flag { UsedWithSwapChainOnly = 1 << 0 } |
\variable QRhiRenderBuffer::NativeRenderBuffer::object More... | |
![]() | |
enum | Type { Buffer , Texture , Sampler , RenderBuffer , RenderPassDescriptor , SwapChainRenderTarget , TextureRenderTarget , ShaderResourceBindings , GraphicsPipeline , SwapChain , ComputePipeline , CommandBuffer } |
Specifies type of the resource. More... | |
Public Member Functions | |
QRhiResource::Type | resourceType () const override |
Type | type () const |
void | setType (Type t) |
Sets the type to t. | |
QSize | pixelSize () const |
void | setPixelSize (const QSize &sz) |
Sets the size (in pixels) to sz. | |
int | sampleCount () const |
void | setSampleCount (int s) |
Sets the sample count to s. | |
Flags | flags () const |
void | setFlags (Flags f) |
Sets the flags to f. | |
virtual bool | create ()=0 |
Creates the corresponding native graphics resources. | |
virtual bool | createFrom (NativeRenderBuffer src) |
Similar to create() except that no new native renderbuffer objects are created. | |
virtual QRhiTexture::Format | backingFormat () const =0 |
![]() | |
virtual | ~QRhiResource () |
Destructor. | |
virtual Type | resourceType () const =0 |
virtual void | destroy ()=0 |
Releases (or requests deferred releasing of) the underlying native graphics resources. | |
void | deleteLater () |
When called without a frame being recorded, this function is equivalent to deleting the object. | |
QByteArray | name () const |
void | setName (const QByteArray &name) |
Sets a name for the object. | |
quint64 | globalResourceId () const |
QRhi * | rhi () const |
Protected Member Functions | |
QRhiRenderBuffer (QRhiImplementation *rhi, Type type_, const QSize &pixelSize_, int sampleCount_, Flags flags_, QRhiTexture::Format backingFormatHint_) | |
![]() | |
QRhiResource (QRhiImplementation *rhi) | |
Protected Attributes | |
Type | m_type |
QSize | m_pixelSize |
int | m_sampleCount |
Flags | m_flags |
QRhiTexture::Format | m_backingFormatHint |
![]() | |
QRhiImplementation * | m_rhi = nullptr |
quint64 | m_id |
QByteArray | m_objectName |
\inmodule QtGui
Renderbuffer resource.
Renderbuffers cannot be sampled or read but have some benefits over textures in some cases:
A \l DepthStencil renderbuffer may be lazily allocated and be backed by transient memory with some APIs. On some platforms this may mean the depth/stencil buffer uses no physical backing at all.
\l Color renderbuffers are useful since QRhi::MultisampleRenderBuffer may be supported even when QRhi::MultisampleTexture is not.
How the renderbuffer is implemented by a backend is not exposed to the applications. In some cases it may be backed by ordinary textures, while in others there may be a different kind of native resource used.
Renderbuffers that are used as (and are only used as) depth-stencil buffers in combination with a QRhiSwapChain's color buffers should have the UsedWithSwapChainOnly flag set. This serves a double purpose: such buffers, depending on the backend and the underlying APIs, be more efficient, and QRhi provides automatic sizing behavior to match the color buffers, which means calling setPixelSize() and create() are not necessary for such renderbuffers.
\variable QRhiRenderBuffer::NativeRenderBuffer::object
64-bit integer containing the native object handle.
Used with QRhiRenderBuffer::createFrom().
With OpenGL the native handle is a GLuint value. object
is expected to be a valid OpenGL renderbuffer object ID.
Flag values for flags() and setFlags()
\value UsedWithSwapChainOnly For DepthStencil renderbuffers this indicates that the renderbuffer is only used in combination with a QRhiSwapChain, and never in any other way. This provides automatic sizing and resource rebuilding, so calling setPixelSize() or create() is not needed whenever this flag is set. This flag value may also trigger backend-specific behavior, for example with OpenGL, where a separate windowing system interface API is in use (EGL, GLX, etc.), the flag is especially important as it avoids creating any actual renderbuffer resource as there is already a windowing system provided depth/stencil buffer as requested by QSurfaceFormat.
Enumerator | |
---|---|
UsedWithSwapChainOnly |
|
protected |
|
pure virtual |
Implemented in QD3D11RenderBuffer, QGles2RenderBuffer, QMetalRenderBuffer, QNullRenderBuffer, and QVkRenderBuffer.
|
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 QD3D11RenderBuffer, QGles2RenderBuffer, QMetalRenderBuffer, QNullRenderBuffer, and QVkRenderBuffer.
Referenced by QD3D11SwapChain::createOrResize(), QGles2SwapChain::createOrResize(), QMetalSwapChain::createOrResize(), QVkSwapChain::createOrResize(), renderToKTXFileInternal(), RenderHelpers::rhiPrepareScreenTexture(), and QQuick3DSceneRenderer::synchronize().
|
virtual |
Similar to create() except that no new native renderbuffer objects are created.
Instead, the native renderbuffer object specified by src is used.
This allows importing an existing renderbuffer object (which must belong to the same device or sharing context, depending on the graphics API) from an external graphics engine.
false
.true
when successful, false
when not supported. Reimplemented in QGles2RenderBuffer.
Definition at line 3993 of file qrhi.cpp.
References Q_UNUSED.
|
inline |
Definition at line 1098 of file qrhi.h.
Referenced by QD3D11SwapChain::createOrResize(), QGles2SwapChain::createOrResize(), QMetalSwapChain::createOrResize(), and QVkSwapChain::createOrResize().
|
inline |
Definition at line 1092 of file qrhi.h.
Referenced by QD3D11TextureRenderTarget::create(), QGles2TextureRenderTarget::create(), QMetalTextureRenderTarget::create(), QNullTextureRenderTarget::create(), QVkTextureRenderTarget::create(), QD3D11SwapChain::createOrResize(), QGles2SwapChain::createOrResize(), QMetalSwapChain::createOrResize(), QVkSwapChain::createOrResize(), QRhiGles2::endPass(), and RenderHelpers::rhiPrepareScreenTexture().
|
overridevirtual |
Implements QRhiResource.
Definition at line 3945 of file qrhi.cpp.
References QRhiResource::RenderBuffer.
|
inline |
Definition at line 1095 of file qrhi.h.
Referenced by QD3D11SwapChain::createOrResize(), QMetalSwapChain::createOrResize(), QVkSwapChain::createOrResize(), and QQuick3DSceneRenderer::renderToRhiTexture().
Sets the size (in pixels) to sz.
Definition at line 1093 of file qrhi.h.
Referenced by QD3D11SwapChain::createOrResize(), QGles2SwapChain::createOrResize(), QMetalSwapChain::createOrResize(), QVkSwapChain::createOrResize(), RenderHelpers::rhiPrepareScreenTexture(), and QQuick3DSceneRenderer::synchronize().
|
inline |
|
inline |
|
protected |
Definition at line 1113 of file qrhi.h.
Referenced by QD3D11RenderBuffer::backingFormat(), QGles2RenderBuffer::backingFormat(), QMetalRenderBuffer::backingFormat(), QVkRenderBuffer::backingFormat(), QD3D11RenderBuffer::create(), QGles2RenderBuffer::create(), and QMetalRenderBuffer::create().
|
protected |
Definition at line 1112 of file qrhi.h.
Referenced by QGles2RenderBuffer::create(), and QGles2RenderBuffer::createFrom().
|
protected |
Definition at line 1110 of file qrhi.h.
Referenced by QD3D11RenderBuffer::create(), QGles2RenderBuffer::create(), QMetalRenderBuffer::create(), QVkRenderBuffer::create(), and QRhiD3D11::endPass().
|
protected |
Definition at line 1111 of file qrhi.h.
Referenced by QD3D11RenderBuffer::create(), QGles2RenderBuffer::create(), QMetalRenderBuffer::create(), QVkRenderBuffer::create(), and QGles2RenderBuffer::createFrom().
|
protected |
Definition at line 1109 of file qrhi.h.
Referenced by QRhiVulkan::activateTextureRenderTarget(), QD3D11RenderBuffer::backingFormat(), QGles2RenderBuffer::backingFormat(), QMetalRenderBuffer::backingFormat(), QNullRenderBuffer::backingFormat(), QVkRenderBuffer::backingFormat(), QD3D11RenderBuffer::create(), QGles2RenderBuffer::create(), QMetalRenderBuffer::create(), and QVkRenderBuffer::create().