Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QD3D11ShaderResourceBindings Struct Reference

#include <qrhid3d11_p.h>

Inheritance diagram for QD3D11ShaderResourceBindings:
Collaboration diagram for QD3D11ShaderResourceBindings:

Classes

struct  BoundResourceData
struct  BoundSampledTextureData
struct  BoundStorageBufferData
struct  BoundStorageImageData
struct  BoundUniformBufferData
struct  ResourceBatches
struct  StageSamplerBatches
struct  StageUavBatches
struct  StageUniformBufferBatches

Public Member Functions

 QD3D11ShaderResourceBindings (QRhiImplementation *rhi)
 ~QD3D11ShaderResourceBindings ()
void destroy () override
 Releases (or requests deferred releasing of) the underlying native graphics resources.
bool create () override
 Creates the corresponding resource binding set.
void updateResources (UpdateFlags flags) override
Public Member Functions inherited from QRhiShaderResourceBindings
QRhiResource::Type resourceType () const override
void setBindings (std::initializer_list< QRhiShaderResourceBinding > list)
 Sets the list of bindings.
template<typename InputIterator>
void setBindings (InputIterator first, InputIterator last)
 Sets the list of bindings from the iterators first and last.
const QRhiShaderResourceBindingcbeginBindings () const
const QRhiShaderResourceBindingcendBindings () const
const QRhiShaderResourceBindingbindingAt (qsizetype index) const
qsizetype bindingCount () const
bool isLayoutCompatible (const QRhiShaderResourceBindings *other) const
QVector< quint32serializedLayoutDescription () const
Public Member Functions inherited from QRhiResource
virtual ~QRhiResource ()
 Destructor.
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
QRhirhi () const

Public Attributes

bool hasDynamicOffset = false
QVarLengthArray< QRhiShaderResourceBinding, 8 > sortedBindings
uint generation = 0
QD3D11GraphicsPipelinelastUsedGraphicsPipeline = nullptr
QD3D11ComputePipelinelastUsedComputePipeline = nullptr
QVarLengthArray< BoundResourceData, 8 > boundResourceData
struct QD3D11ShaderResourceBindings::ResourceBatches resourceBatches

Friends

class QRhiD3D11

Additional Inherited Members

Public Types inherited from QRhiShaderResourceBindings
enum  UpdateFlag { BindingsAreSorted = 0x01 }
Public Types inherited from QRhiResource
enum  Type {
  Buffer , Texture , Sampler , RenderBuffer ,
  RenderPassDescriptor , SwapChainRenderTarget , TextureRenderTarget , ShaderResourceBindings ,
  GraphicsPipeline , SwapChain , ComputePipeline , CommandBuffer ,
  ShadingRateMap
}
 Specifies type of the resource. More...
Protected Member Functions inherited from QRhiShaderResourceBindings
 QRhiShaderResourceBindings (QRhiImplementation *rhi)
Protected Member Functions inherited from QRhiResource
 QRhiResource (QRhiImplementation *rhi)
Protected Attributes inherited from QRhiShaderResourceBindings
QVarLengthArray< QRhiShaderResourceBinding, BINDING_PREALLOCm_bindings
size_t m_layoutDescHash = 0
QVector< quint32m_layoutDesc
Protected Attributes inherited from QRhiResource
QRhiImplementationm_rhi = nullptr
quint64 m_id
QByteArray m_objectName
Static Protected Attributes inherited from QRhiShaderResourceBindings
static constexpr int BINDING_PREALLOC = 12

Detailed Description

Definition at line 194 of file qrhid3d11_p.h.

Constructor & Destructor Documentation

◆ QD3D11ShaderResourceBindings()

QD3D11ShaderResourceBindings::QD3D11ShaderResourceBindings ( QRhiImplementation * rhi)

Definition at line 4195 of file qrhid3d11.cpp.

References QD3D11ShaderResourceBindings().

Referenced by QD3D11ShaderResourceBindings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~QD3D11ShaderResourceBindings()

QD3D11ShaderResourceBindings::~QD3D11ShaderResourceBindings ( )

Definition at line 4200 of file qrhid3d11.cpp.

References destroy().

Here is the call graph for this function:

Member Function Documentation

◆ create()

bool QD3D11ShaderResourceBindings::create ( )
overridevirtual

Creates the corresponding resource binding set.

Depending on the underlying graphics API, this may involve creating native graphics resources, and therefore it should not be assumed that this is a cheap operation.

If create() has been called before with no corresponding destroy(), then destroy() is called implicitly first.

Returns
true when successful, false when failed. Regardless of the return value, calling destroy() is always safe.

Implements QRhiShaderResourceBindings.

Definition at line 4215 of file qrhid3d11.cpp.

References destroy(), and hasDynamicOffset.

Here is the call graph for this function:

◆ destroy()

void QD3D11ShaderResourceBindings::destroy ( )
overridevirtual

Releases (or requests deferred releasing of) the underlying native graphics resources.

Safe to call multiple times, subsequent invocations will be a no-op then.

Once destroy() is called, the QRhiResource instance can be reused, by calling create() again. That will then result in creating new native graphics resources underneath.

Note
Resources referenced by commands for the current frame should not be released until the frame is submitted by QRhi::endFrame().

The QRhiResource destructor also performs the same task, so calling this function is not necessary before deleting a QRhiResource.

See also
deleteLater()

Implements QRhiResource.

Definition at line 4205 of file qrhid3d11.cpp.

Referenced by ~QD3D11ShaderResourceBindings(), and create().

Here is the caller graph for this function:

◆ updateResources()

void QD3D11ShaderResourceBindings::updateResources ( UpdateFlags flags)
overridevirtual

Implements QRhiShaderResourceBindings.

Definition at line 4248 of file qrhid3d11.cpp.

◆ QRhiD3D11

friend class QRhiD3D11
friend

Definition at line 324 of file qrhid3d11_p.h.

Member Data Documentation

◆ boundResourceData

QVarLengthArray<BoundResourceData, 8> QD3D11ShaderResourceBindings::boundResourceData

Definition at line 239 of file qrhid3d11_p.h.

◆ generation

uint QD3D11ShaderResourceBindings::generation = 0

Definition at line 204 of file qrhid3d11_p.h.

◆ hasDynamicOffset

bool QD3D11ShaderResourceBindings::hasDynamicOffset = false

Definition at line 202 of file qrhid3d11_p.h.

Referenced by create(), and QRhiD3D11::setShaderResources().

◆ lastUsedComputePipeline

QD3D11ComputePipeline* QD3D11ShaderResourceBindings::lastUsedComputePipeline = nullptr

Definition at line 206 of file qrhid3d11_p.h.

Referenced by QRhiD3D11::setShaderResources().

◆ lastUsedGraphicsPipeline

QD3D11GraphicsPipeline* QD3D11ShaderResourceBindings::lastUsedGraphicsPipeline = nullptr

Definition at line 205 of file qrhid3d11_p.h.

Referenced by QRhiD3D11::setShaderResources().

◆ resourceBatches

struct QD3D11ShaderResourceBindings::ResourceBatches QD3D11ShaderResourceBindings::resourceBatches

◆ sortedBindings

QVarLengthArray<QRhiShaderResourceBinding, 8> QD3D11ShaderResourceBindings::sortedBindings

Definition at line 203 of file qrhid3d11_p.h.


The documentation for this struct was generated from the following files: