Go to the documentation of this file.
53 bool IsDeviceInternal =
false);
57 bool IsDeviceInternal =
false);
69 return m_BaseBindings[Index];
72 #ifdef DILIGENT_DEVELOPMENT
73 using ShaderResourceCacheArrayType = std::array<ShaderResourceCacheGL*, MAX_RESOURCE_SIGNATURES>;
74 using BaseBindingsArrayType = std::array<TBindings, MAX_RESOURCE_SIGNATURES>;
75 void DvpVerifySRBResources(
const ShaderResourceCacheArrayType& ResourceCaches,
76 const BaseBindingsArrayType& BaseBindings)
const;
80 using TShaderStages = std::vector<ShaderGLImpl*>;
84 template <
typename PSOCreateInfoType>
85 void InitInternalObjects(
const PSOCreateInfoType& CreateInfo,
const TShaderStages& ShaderStages);
88 const TShaderStages& ShaderStages,
93 const TShaderStages& ShaderStages,
99 Uint32 GetNumShaderStages()
const {
return m_NumPrograms; }
101 void ValidateShaderResources(std::shared_ptr<const ShaderResourcesGL> pShaderResources,
const char* ShaderName,
SHADER_TYPE ShaderStages);
108 GLProgramObj* m_GLPrograms =
nullptr;
112 std::vector<std::pair<GLContext::NativeGLContextType, GLObjectWrappers::GLPipelineObj>> m_GLProgPipelines;
114 Uint8 m_NumPrograms = 0;
115 bool m_IsProgramPipelineSupported =
false;
120 #ifdef DILIGENT_DEVELOPMENT
122 std::vector<std::shared_ptr<const ShaderResourcesGL>> m_ShaderResources;
123 std::vector<String> m_ShaderNames;
126 std::vector<ResourceAttribution> m_ResourceAttibutions;
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:44
EGLContext NativeGLContextType
Definition: GLContextAndroid.hpp:39
Shader object implementation in OpenGL backend.
Definition: ShaderGLImpl.hpp:39
Graphics pipeline state creation attributes.
Definition: PipelineState.h:397
SHADER_TYPE
Describes the shader type.
Definition: GraphicsTypes.h:65
Base interface for all dynamic objects in the engine.
Definition: Object.h:41
virtual const ObjectDescType & GetDesc() const override final
Definition: DeviceObjectBase.hpp:140
void CommitProgram(GLContextState &State)
Definition: PipelineStateGLImpl.cpp:415
Unique interface identifier.
Definition: InterfaceID.h:37
__forceinline SHADER_TYPE GetShaderStageType(const ShaderD3D11Impl *pShader)
Definition: PipelineStateD3D11Impl.cpp:43
virtual void QueryInterface(const INTERFACE_ID &IID, IObject **ppInterface) override
Queries the specific interface, see IObject::QueryInterface() for details.
SHADER_TYPE ShaderType
Shader type. See Diligent::SHADER_TYPE.
Definition: Shader.h:113
const TBindings & GetBaseBindings(Uint32 Index) const
Definition: PipelineStateGLImpl.hpp:66
~PipelineStateGLImpl()
Definition: PipelineStateGLImpl.cpp:382
Pipeline state creation attributes.
Definition: PipelineState.h:370
Template class that implements reference counting.
Definition: RefCntAutoPtr.hpp:73
#define DILIGENT_CALL_TYPE
Definition: CommonDefinitions.h:45
Compute pipeline state description.
Definition: PipelineState.h:427
Pipeline state object implementation in OpenGL backend.
Definition: PipelineStateGLImpl.hpp:45
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
GLObjWrapper< GLProgramObjCreateReleaseHelper > GLProgramObj
Definition: GLObjectWrapper.hpp:167
Render device implementation in OpenGL backend.
Definition: RenderDeviceGLImpl.hpp:45
std::array< Uint16, BINDING_RANGE_COUNT > TBindings
Definition: PipelineResourceSignatureGLImpl.hpp:82
virtual Uint32 GetResourceSignatureCount() const override final
Implementation of IPipelineState::GetResourceSignatureCount().
Definition: PipelineStateBase.hpp:426
PipelineStateGLImpl(IReferenceCounters *pRefCounters, RenderDeviceGLImpl *pDeviceGL, const GraphicsPipelineStateCreateInfo &CreateInfo, bool IsDeviceInternal=false)
Definition: PipelineStateGLImpl.cpp:311
PipelineResourceSignatureGLImpl::TBindings TBindings
Definition: PipelineStateGLImpl.hpp:65
Definition: GLObjectWrapper.hpp:36
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:53
#define VERIFY_EXPR(...)
Definition: DebugUtilities.hpp:79
Definition: GLContextState.hpp:39
Template class implementing base functionality of the pipeline state object.
Definition: PipelineStateBase.hpp:99
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37