Go to the documentation of this file.
71 bool bIsDeviceInternal =
false);
79 return m_pResourceAttribs[ResIndex];
82 using TBindings = std::array<Uint16, BINDING_RANGE_COUNT>;
93 for (
Uint32 i = 0; i < Bindings.size(); ++i)
95 Bindings[i] += m_BindingCount[i];
101 #ifdef DILIGENT_DEVELOPMENT
108 const char* ShaderName,
109 const char* PSOName)
const;
117 auto ImtblSamIdx = InvalidImmutableSamplerIndex;
124 if (SamAttribs.IsImmutableSamplerAssigned())
125 ImtblSamIdx = SamAttribs.SamplerInd;
141 using SamplerPtr = RefCntAutoPtr<ISampler>;
142 SamplerPtr* m_ImmutableSamplers =
nullptr;
Implementation of the Diligent::PipelineResourceSignatureGLImpl class.
Definition: PipelineResourceSignatureGLImpl.hpp:63
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:44
bool IsSamplerAssigned() const
Definition: PipelineResourceAttribsGL.hpp:73
Definition: ShaderResourcesGL.hpp:70
void CopyStaticResources(ShaderResourceCacheGL &ResourceCache) const
Definition: PipelineResourceSignatureGLImpl.cpp:358
BINDING_RANGE PipelineResourceToBindingRange(const PipelineResourceDesc &Desc)
Definition: PipelineResourceSignatureGLImpl.cpp:55
const char * GetBindingRangeName(BINDING_RANGE Range)
Definition: PipelineResourceSignatureGLImpl.cpp:39
Pipeline resource signature description.
Definition: PipelineResourceSignature.h:166
SHADER_TYPE
Describes the shader type.
Definition: GraphicsTypes.h:65
@ SHADER_RESOURCE_TYPE_SAMPLER
Sampler (separate sampler)
Definition: Shader.h:377
PipelineResourceSignatureGLImpl(IReferenceCounters *pRefCounters, RenderDeviceGLImpl *pDevice, const PipelineResourceSignatureDesc &Desc, bool bIsDeviceInternal=false)
Definition: PipelineResourceSignatureGLImpl.cpp:77
@ BINDING_RANGE_TEXTURE
Definition: PipelineResourceSignatureGLImpl.hpp:52
PipelineResourceSignatureDesc m_Desc
Object description.
Definition: DeviceObjectBase.hpp:182
The class implements a cache that holds resources bound to a specific GL program.
Definition: ShaderResourceCacheGL.hpp:49
const ResourceAttribs & GetResourceAttribs(Uint32 ResIndex) const
Definition: PipelineResourceSignatureGLImpl.hpp:76
Definition: PipelineResourceAttribsGL.hpp:41
@ BINDING_RANGE_UNIFORM_BUFFER
Definition: PipelineResourceSignatureGLImpl.hpp:51
void ApplyBindings(GLObjectWrappers::GLProgramObj &GLProgram, class GLContextState &State, SHADER_TYPE Stages, const TBindings &BaseBindings) const
Definition: PipelineResourceSignatureGLImpl.cpp:225
__forceinline void ShiftBindings(TBindings &Bindings) const
Definition: PipelineResourceSignatureGLImpl.hpp:91
Uint32 NumResources
The number of resources in Resources array.
Definition: PipelineResourceSignature.h:172
Uint32 GetImmutableSamplerCount() const
Definition: PipelineResourceSignatureBase.hpp:321
@ BINDING_RANGE_COUNT
Definition: PipelineResourceSignatureGLImpl.hpp:55
@ BINDING_RANGE_IMAGE
Definition: PipelineResourceSignatureGLImpl.hpp:53
const Uint32 SamplerInd
Definition: PipelineResourceAttribsGL.hpp:55
const PipelineResourceDesc & GetResourceDesc(Uint32 ResIndex) const
Definition: PipelineResourceSignatureBase.hpp:381
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
@ BINDING_RANGE_UNKNOWN
Definition: PipelineResourceSignatureGLImpl.hpp:56
Render device implementation in OpenGL backend.
Definition: RenderDeviceGLImpl.hpp:45
std::array< Uint16, BINDING_RANGE_COUNT > TBindings
Definition: PipelineResourceSignatureGLImpl.hpp:82
SHADER_RESOURCE_TYPE ResourceType
Resource type, see Diligent::SHADER_RESOURCE_TYPE.
Definition: PipelineResourceSignature.h:136
BINDING_RANGE
Definition: PipelineResourceSignatureGLImpl.hpp:49
PipelineResourceAttribsGL ResourceAttribs
Definition: PipelineResourceSignatureGLImpl.hpp:74
Definition: GLObjectWrapper.hpp:36
struct PipelineResourceDesc PipelineResourceDesc
Definition: PipelineResourceSignature.h:162
#define VERIFY_EXPR(...)
Definition: DebugUtilities.hpp:79
Definition: GLContextState.hpp:39
~PipelineResourceSignatureGLImpl()
Definition: PipelineResourceSignatureGLImpl.cpp:205
RESOURCE_DIMENSION
Describes resource dimension.
Definition: GraphicsTypes.h:256
Uint32 GetImmutableSamplerIdx(const ResourceAttribs &Res) const
Definition: PipelineResourceSignatureGLImpl.hpp:115
Template class implementing base functionality of the pipeline resource signature object.
Definition: PipelineResourceSignatureBase.hpp:78
@ BINDING_RANGE_STORAGE_BUFFER
Definition: PipelineResourceSignatureGLImpl.hpp:54
bool IsImmutableSamplerAssigned() const
Definition: PipelineResourceAttribsGL.hpp:78
void InitSRBResourceCache(ShaderResourceCacheGL &ResourceCache)
Definition: PipelineResourceSignatureGLImpl.cpp:467
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37