summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineOpenGL
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-03-08 02:12:24 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-03-19 00:38:17 +0000
commitbe8197db1cd99a33882ced645bf988c188ded594 (patch)
treedd0ee4c3bbf2653ec9be57c7e5a38dadf7f2b5a8 /Graphics/GraphicsEngineOpenGL
parentD3D12 backend: more header organizing (diff)
downloadDiligentCore-be8197db1cd99a33882ced645bf988c188ded594.tar.gz
DiligentCore-be8197db1cd99a33882ced645bf988c188ded594.zip
OpenGL backend: reorganized headers, removed signature methods implemented by the base class
Diffstat (limited to 'Graphics/GraphicsEngineOpenGL')
-rw-r--r--Graphics/GraphicsEngineOpenGL/CMakeLists.txt5
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/BufferGLImpl.hpp9
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/BufferViewGLImpl.hpp5
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/DeviceContextGLImpl.hpp14
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/FenceGLImpl.hpp3
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/FramebufferGLImpl.hpp5
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/PipelineResourceAttribsGL.hpp82
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp70
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/PipelineStateGLImpl.hpp11
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/QueryGLImpl.hpp3
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/RenderPassGLImpl.hpp3
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/SamplerGLImpl.hpp4
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/ShaderGLImpl.hpp4
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/ShaderResourceBindingGLImpl.hpp9
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/ShaderVariableManagerGL.hpp (renamed from Graphics/GraphicsEngineOpenGL/include/ShaderVariableGL.hpp)19
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/TextureBaseGL.hpp6
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/TextureViewGLImpl.hpp6
-rw-r--r--Graphics/GraphicsEngineOpenGL/include/VAOCache.hpp2
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/BufferGLImpl.cpp5
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/BufferViewGLImpl.cpp8
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp14
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/FenceGLImpl.cpp1
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/FramebufferGLImpl.cpp4
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/GLContextState.cpp6
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp30
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp5
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/QueryGLImpl.cpp1
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp5
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/RenderPassGLImpl.cpp1
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/ShaderGLImpl.cpp3
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/ShaderResourceBindingGLImpl.cpp5
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/ShaderResourceCacheGL.cpp1
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/ShaderResourcesGL.cpp8
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/ShaderVariableManagerGL.cpp (renamed from Graphics/GraphicsEngineOpenGL/src/ShaderVariableGL.cpp)20
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/SwapChainGLImpl.cpp5
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/Texture1DArray_OGL.cpp2
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/Texture1D_OGL.cpp2
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/Texture2DArray_OGL.cpp2
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/Texture2D_OGL.cpp2
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/Texture3D_OGL.cpp2
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp7
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/TextureCubeArray_OGL.cpp5
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/TextureCube_OGL.cpp4
-rw-r--r--Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp6
44 files changed, 229 insertions, 185 deletions
diff --git a/Graphics/GraphicsEngineOpenGL/CMakeLists.txt b/Graphics/GraphicsEngineOpenGL/CMakeLists.txt
index d2853156..f9c10846 100644
--- a/Graphics/GraphicsEngineOpenGL/CMakeLists.txt
+++ b/Graphics/GraphicsEngineOpenGL/CMakeLists.txt
@@ -15,12 +15,13 @@ set(INCLUDE
include/GLContextState.hpp
include/GLObjectWrapper.hpp
include/ShaderResourceCacheGL.hpp
- include/ShaderVariableGL.hpp
+ include/ShaderVariableManagerGL.hpp
include/ShaderResourcesGL.hpp
include/GLTypeConversions.hpp
include/pch.h
include/PipelineStateGLImpl.hpp
include/PipelineResourceSignatureGLImpl.hpp
+ include/PipelineResourceAttribsGL.hpp
include/QueryGLImpl.hpp
include/RenderDeviceGLImpl.hpp
include/RenderPassGLImpl.hpp
@@ -70,7 +71,7 @@ set(SOURCE
src/GLContextState.cpp
src/GLObjectWrapper.cpp
src/ShaderResourceCacheGL.cpp
- src/ShaderVariableGL.cpp
+ src/ShaderVariableManagerGL.cpp
src/ShaderResourcesGL.cpp
src/GLTypeConversions.cpp
src/PipelineStateGLImpl.cpp
diff --git a/Graphics/GraphicsEngineOpenGL/include/BufferGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/BufferGLImpl.hpp
index b4a27125..8620c28a 100644
--- a/Graphics/GraphicsEngineOpenGL/include/BufferGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/BufferGLImpl.hpp
@@ -27,13 +27,12 @@
#pragma once
+#include "EngineGLImplTraits.hpp"
#include "BufferGL.h"
#include "BufferBase.hpp"
+#include "BufferViewGLImpl.hpp" // Required by BufferBase
#include "GLObjectWrapper.hpp"
#include "AsyncWritableResource.hpp"
-#include "BaseInterfacesGL.h"
-#include "BufferViewGLImpl.hpp"
-#include "RenderDeviceGLImpl.hpp"
#include "GLContextState.hpp"
namespace Diligent
@@ -96,7 +95,7 @@ private:
const GLenum m_GLUsageHint;
};
-void BufferGLImpl::BufferMemoryBarrier(MEMORY_BARRIER RequiredBarriers, GLContextState& GLContextState)
+void BufferGLImpl::BufferMemoryBarrier(MEMORY_BARRIER RequiredBarriers, GLContextState& GLState)
{
#if GL_ARB_shader_image_load_store
# ifdef DILIGENT_DEBUG
@@ -107,7 +106,7 @@ void BufferGLImpl::BufferMemoryBarrier(MEMORY_BARRIER RequiredBarriers, GLContex
}
# endif
- GLContextState.EnsureMemoryBarrier(RequiredBarriers, this);
+ GLState.EnsureMemoryBarrier(RequiredBarriers, this);
#endif
}
diff --git a/Graphics/GraphicsEngineOpenGL/include/BufferViewGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/BufferViewGLImpl.hpp
index a61e7e6d..1080a268 100644
--- a/Graphics/GraphicsEngineOpenGL/include/BufferViewGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/BufferViewGLImpl.hpp
@@ -27,11 +27,10 @@
#pragma once
+#include "EngineGLImplTraits.hpp"
#include "BufferViewGL.h"
-#include "BaseInterfacesGL.h"
#include "BufferViewBase.hpp"
#include "GLObjectWrapper.hpp"
-#include "RenderDeviceGLImpl.hpp"
namespace Diligent
{
@@ -49,6 +48,8 @@ public:
BufferGLImpl* pBuffer,
bool bIsDefaultView);
+ ~BufferViewGLImpl();
+
/// Queries the specific interface, see IObject::QueryInterface() for details
virtual void DILIGENT_CALL_TYPE QueryInterface(const INTERFACE_ID& IID, IObject** ppInterface) override final;
diff --git a/Graphics/GraphicsEngineOpenGL/include/DeviceContextGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/DeviceContextGLImpl.hpp
index 79ea1926..867179af 100644
--- a/Graphics/GraphicsEngineOpenGL/include/DeviceContextGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/DeviceContextGLImpl.hpp
@@ -29,24 +29,28 @@
#include <vector>
+#include "EngineGLImplTraits.hpp"
#include "DeviceContextGL.h"
#include "DeviceContextBase.hpp"
-#include "BaseInterfacesGL.h"
-#include "GLContextState.hpp"
-#include "GLObjectWrapper.hpp"
+
+// GL object implementations are required by DeviceContextBase
#include "BufferGLImpl.hpp"
#include "TextureBaseGL.hpp"
#include "QueryGLImpl.hpp"
#include "FramebufferGLImpl.hpp"
#include "RenderPassGLImpl.hpp"
#include "PipelineStateGLImpl.hpp"
-#include "BottomLevelASBase.hpp"
-#include "TopLevelASBase.hpp"
#include "ShaderResourceBindingGLImpl.hpp"
+#include "GLContextState.hpp"
+#include "GLObjectWrapper.hpp"
+
namespace Diligent
{
+class TextureBaseGL;
+class ShaderResourceBindingGLImpl;
+
/// Device context implementation in OpenGL backend.
class DeviceContextGLImpl final : public DeviceContextBase<EngineGLImplTraits>
{
diff --git a/Graphics/GraphicsEngineOpenGL/include/FenceGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/FenceGLImpl.hpp
index bd2a78a4..d0095402 100644
--- a/Graphics/GraphicsEngineOpenGL/include/FenceGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/FenceGLImpl.hpp
@@ -33,11 +33,10 @@
#include <deque>
#include <atomic>
+#include "EngineGLImplTraits.hpp"
#include "FenceGL.h"
-#include "RenderDeviceGL.h"
#include "FenceBase.hpp"
#include "GLObjectWrapper.hpp"
-#include "RenderDeviceGLImpl.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/include/FramebufferGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/FramebufferGLImpl.hpp
index 67ddc685..83775c2f 100644
--- a/Graphics/GraphicsEngineOpenGL/include/FramebufferGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/FramebufferGLImpl.hpp
@@ -32,14 +32,15 @@
#include <vector>
-#include "RenderDeviceGL.h"
+#include "EngineGLImplTraits.hpp"
#include "FramebufferBase.hpp"
-#include "RenderDeviceGLImpl.hpp"
#include "GLObjectWrapper.hpp"
namespace Diligent
{
+class GLContextState;
+
/// Framebuffer implementation in OpenGL backend.
class FramebufferGLImpl final : public FramebufferBase<EngineGLImplTraits>
{
diff --git a/Graphics/GraphicsEngineOpenGL/include/PipelineResourceAttribsGL.hpp b/Graphics/GraphicsEngineOpenGL/include/PipelineResourceAttribsGL.hpp
new file mode 100644
index 00000000..9130f0fa
--- /dev/null
+++ b/Graphics/GraphicsEngineOpenGL/include/PipelineResourceAttribsGL.hpp
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2019-2021 Diligent Graphics LLC
+ * Copyright 2015-2019 Egor Yusov
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * In no event and under no legal theory, whether in tort (including negligence),
+ * contract, or otherwise, unless required by applicable law (such as deliberate
+ * and grossly negligent acts) or agreed to in writing, shall any Contributor be
+ * liable for any damages, including any direct, indirect, special, incidental,
+ * or consequential damages of any character arising as a result of this License or
+ * out of the use or inability to use the software (including but not limited to damages
+ * for loss of goodwill, work stoppage, computer failure or malfunction, or any and
+ * all other commercial damages or losses), even if such Contributor has been advised
+ * of the possibility of such damages.
+ */
+
+#pragma once
+
+/// \file
+/// Declaration of Diligent::PipelineResourceAttribsGL struct
+
+#include "BasicTypes.h"
+#include "DebugUtilities.hpp"
+
+namespace Diligent
+{
+
+// sizeof(PipelineResourceAttribsGL) == 8, x64
+struct PipelineResourceAttribsGL
+{
+private:
+ static constexpr Uint32 _SamplerIndBits = 31;
+ static constexpr Uint32 _SamplerAssignedBits = 1;
+
+public:
+ static constexpr Uint32 InvalidCacheOffset = ~0u;
+ static constexpr Uint32 InvalidSamplerInd = (1u << _SamplerIndBits) - 1;
+
+ // clang-format off
+ const Uint32 CacheOffset; // SRB and Signature use the same cache offsets for static resources.
+ // Binding == BaseBinding[Range] + CacheOffset
+ const Uint32 SamplerInd : _SamplerIndBits; // ImtblSamplerAssigned == true: index of the immutable sampler in m_ImmutableSamplers.
+ // ImtblSamplerAssigned == false: index of the assigned sampler in m_Desc.Resources.
+ const Uint32 ImtblSamplerAssigned : _SamplerAssignedBits; // Immutable sampler flag
+ // clang-format on
+
+ PipelineResourceAttribsGL(Uint32 _CacheOffset,
+ Uint32 _SamplerInd,
+ bool _ImtblSamplerAssigned) noexcept :
+ // clang-format off
+ CacheOffset {_CacheOffset },
+ SamplerInd {_SamplerInd },
+ ImtblSamplerAssigned{_ImtblSamplerAssigned ? 1u : 0u}
+ // clang-format on
+ {
+ VERIFY(SamplerInd == _SamplerInd, "Sampler index (", _SamplerInd, ") exceeds maximum representable value");
+ VERIFY(!_ImtblSamplerAssigned || SamplerInd != InvalidSamplerInd, "Immutable sampler is assigned, but sampler index is not valid");
+ }
+
+ bool IsSamplerAssigned() const
+ {
+ return SamplerInd != InvalidSamplerInd;
+ }
+
+ bool IsImmutableSamplerAssigned() const
+ {
+ return ImtblSamplerAssigned != 0;
+ }
+};
+
+} // namespace Diligent
diff --git a/Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp
index 9c37301f..c96e627f 100644
--- a/Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/PipelineResourceSignatureGLImpl.hpp
@@ -32,16 +32,22 @@
#include <array>
+#include "EngineGLImplTraits.hpp"
+#include "PipelineResourceAttribsGL.hpp"
#include "PipelineResourceSignatureBase.hpp"
-#include "ShaderResourceCacheGL.hpp"
#include "ShaderResourcesGL.hpp"
#include "SRBMemoryAllocator.hpp"
+// ShaderVariableManagerGL, ShaderResourceCacheGL, and ShaderResourceBindingGLImpl
+// are required by PipelineResourceSignatureBase
+#include "ShaderResourceCacheGL.hpp"
+#include "ShaderVariableManagerGL.hpp"
+#include "ShaderResourceBindingGLImpl.hpp"
+
namespace Diligent
{
class RenderDeviceGLImpl;
-class ShaderVariableManagerGL;
enum BINDING_RANGE : Uint32
{
@@ -68,41 +74,7 @@ public:
bool bIsDeviceInternal = false);
~PipelineResourceSignatureGLImpl();
- // sizeof(ResourceAttribs) == 8, x64
- struct ResourceAttribs
- {
- private:
- static constexpr Uint32 _SamplerIndBits = 31;
- static constexpr Uint32 _SamplerAssignedBits = 1;
-
- public:
- static constexpr Uint32 InvalidCacheOffset = ~0u;
- static constexpr Uint32 InvalidSamplerInd = (1u << _SamplerIndBits) - 1;
-
- // clang-format off
- const Uint32 CacheOffset; // SRB and Signature use the same cache offsets for static resources.
- // Binding == BaseBinding[Range] + CacheOffset
- const Uint32 SamplerInd : _SamplerIndBits; // ImtblSamplerAssigned == true: index of the immutable sampler in m_ImmutableSamplers.
- // ImtblSamplerAssigned == false: index of the assigned sampler in m_Desc.Resources.
- const Uint32 ImtblSamplerAssigned : _SamplerAssignedBits; // Immutable sampler flag
- // clang-format on
-
- ResourceAttribs(Uint32 _CacheOffset,
- Uint32 _SamplerInd,
- bool _ImtblSamplerAssigned) noexcept :
- // clang-format off
- CacheOffset {_CacheOffset },
- SamplerInd {_SamplerInd },
- ImtblSamplerAssigned{_ImtblSamplerAssigned ? 1u : 0u}
- // clang-format on
- {
- VERIFY(SamplerInd == _SamplerInd, "Sampler index (", _SamplerInd, ") exceeds maximum representable value");
- VERIFY(!_ImtblSamplerAssigned || SamplerInd != InvalidSamplerInd, "Immutable sampler is assigned, but sampler index is not valid");
- }
-
- bool IsSamplerAssigned() const { return SamplerInd != InvalidSamplerInd; }
- bool IsImmutableSamplerAssigned() const { return ImtblSamplerAssigned != 0; }
- };
+ using ResourceAttribs = PipelineResourceAttribsGL;
const ResourceAttribs& GetResourceAttribs(Uint32 ResIndex) const
{
@@ -110,12 +82,6 @@ public:
return m_pResourceAttribs[ResIndex];
}
- bool HasDynamicResources() const
- {
- const auto IndexRange = GetResourceIndexRange(SHADER_RESOURCE_VARIABLE_TYPE_DYNAMIC);
- return IndexRange.second > IndexRange.first;
- }
-
using TBindings = std::array<Uint32, BINDING_RANGE_COUNT>;
// Applies bindings for resources in this signature to GLProgram.
@@ -133,24 +99,6 @@ public:
}
}
- /// Implementation of IPipelineResourceSignature::CreateShaderResourceBinding.
- virtual void DILIGENT_CALL_TYPE CreateShaderResourceBinding(IShaderResourceBinding** ppShaderResourceBinding,
- bool InitStaticResources) override final;
-
- /// Implementation of IPipelineResourceSignature::GetStaticVariableByName.
- virtual IShaderResourceVariable* DILIGENT_CALL_TYPE GetStaticVariableByName(SHADER_TYPE ShaderType, const Char* Name) override final;
-
- /// Implementation of IPipelineResourceSignature::GetStaticVariableByIndex.
- virtual IShaderResourceVariable* DILIGENT_CALL_TYPE GetStaticVariableByIndex(SHADER_TYPE ShaderType, Uint32 Index) override final;
-
- /// Implementation of IPipelineResourceSignature::GetStaticVariableCount.
- virtual Uint32 DILIGENT_CALL_TYPE GetStaticVariableCount(SHADER_TYPE ShaderType) const override final;
-
- /// Implementation of IPipelineResourceSignature::BindStaticResources.
- virtual void DILIGENT_CALL_TYPE BindStaticResources(Uint32 ShaderFlags,
- IResourceMapping* pResourceMapping,
- Uint32 Flags) override final;
-
/// Implementation of IPipelineResourceSignature::IsCompatibleWith.
virtual bool DILIGENT_CALL_TYPE IsCompatibleWith(const IPipelineResourceSignature* pPRS) const override final
{
diff --git a/Graphics/GraphicsEngineOpenGL/include/PipelineStateGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/PipelineStateGLImpl.hpp
index 37fef0ba..ded87435 100644
--- a/Graphics/GraphicsEngineOpenGL/include/PipelineStateGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/PipelineStateGLImpl.hpp
@@ -28,15 +28,16 @@
#pragma once
#include <vector>
+
+#include "EngineGLImplTraits.hpp"
#include "PipelineStateGL.h"
#include "PipelineStateBase.hpp"
-#include "RenderDevice.h"
+
+#include "PipelineResourceSignatureGLImpl.hpp" // Requiured by PipelineStateBase
+#include "ShaderGLImpl.hpp"
+
#include "GLObjectWrapper.hpp"
#include "GLContext.hpp"
-#include "RenderDeviceGLImpl.hpp"
-#include "ShaderVariableGL.hpp"
-#include "ShaderGLImpl.hpp"
-#include "PipelineResourceSignatureGLImpl.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/include/QueryGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/QueryGLImpl.hpp
index b5a95fad..a4b8959b 100644
--- a/Graphics/GraphicsEngineOpenGL/include/QueryGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/QueryGLImpl.hpp
@@ -30,11 +30,10 @@
/// \file
/// Declaration of Diligent::QueryGLImpl class
+#include "EngineGLImplTraits.hpp"
#include "QueryGL.h"
-#include "RenderDeviceGL.h"
#include "QueryBase.hpp"
#include "GLObjectWrapper.hpp"
-#include "RenderDeviceGLImpl.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/include/RenderPassGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/RenderPassGLImpl.hpp
index f307ae15..cbfea449 100644
--- a/Graphics/GraphicsEngineOpenGL/include/RenderPassGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/RenderPassGLImpl.hpp
@@ -30,9 +30,8 @@
/// \file
/// Declaration of Diligent::RenderPassGLImpl class
-#include "RenderDeviceGL.h"
+#include "EngineGLImplTraits.hpp"
#include "RenderPassBase.hpp"
-#include "RenderDeviceGLImpl.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/include/SamplerGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/SamplerGLImpl.hpp
index 3dcc95e7..02d3ce8a 100644
--- a/Graphics/GraphicsEngineOpenGL/include/SamplerGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/SamplerGLImpl.hpp
@@ -27,12 +27,10 @@
#pragma once
-#include "BaseInterfacesGL.h"
+#include "EngineGLImplTraits.hpp"
#include "SamplerGL.h"
#include "SamplerBase.hpp"
-#include "RenderDevice.h"
#include "GLObjectWrapper.hpp"
-#include "RenderDeviceGLImpl.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/include/ShaderGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/ShaderGLImpl.hpp
index 31c4686b..487bf2d8 100644
--- a/Graphics/GraphicsEngineOpenGL/include/ShaderGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/ShaderGLImpl.hpp
@@ -27,12 +27,10 @@
#pragma once
-#include "BaseInterfacesGL.h"
+#include "EngineGLImplTraits.hpp"
#include "ShaderGL.h"
#include "ShaderBase.hpp"
-#include "RenderDevice.h"
#include "GLObjectWrapper.hpp"
-#include "RenderDeviceGLImpl.hpp"
#include "ShaderResourcesGL.hpp"
namespace Diligent
diff --git a/Graphics/GraphicsEngineOpenGL/include/ShaderResourceBindingGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/ShaderResourceBindingGLImpl.hpp
index 5c585383..1e5c5753 100644
--- a/Graphics/GraphicsEngineOpenGL/include/ShaderResourceBindingGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/ShaderResourceBindingGLImpl.hpp
@@ -30,17 +30,20 @@
/// \file
/// Declaration of Diligent::ShaderResourceBindingGLImpl class
+#include "EngineGLImplTraits.hpp"
#include "ShaderResourceBindingGL.h"
-#include "RenderDeviceGL.h"
#include "ShaderResourceBindingBase.hpp"
#include "ShaderResourcesGL.hpp"
+
+// ShaderResourceCacheGL and ShaderVariableManagerGL are required by ShaderResourceBindingBase
#include "ShaderResourceCacheGL.hpp"
-#include "ShaderVariableGL.hpp"
-#include "PipelineResourceSignatureGLImpl.hpp"
+#include "ShaderVariableManagerGL.hpp"
namespace Diligent
{
+class PipelineResourceSignatureGLImpl;
+
/// Shader resource binding object implementation in OpenGL backend.
class ShaderResourceBindingGLImpl final : public ShaderResourceBindingBase<EngineGLImplTraits>
{
diff --git a/Graphics/GraphicsEngineOpenGL/include/ShaderVariableGL.hpp b/Graphics/GraphicsEngineOpenGL/include/ShaderVariableManagerGL.hpp
index 944977a5..95719cd3 100644
--- a/Graphics/GraphicsEngineOpenGL/include/ShaderVariableGL.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/ShaderVariableManagerGL.hpp
@@ -70,13 +70,15 @@
#include <array>
#include "Object.h"
+#include "PipelineResourceAttribsGL.hpp"
#include "ShaderResourceVariableBase.hpp"
#include "ShaderResourceCacheGL.hpp"
-#include "PipelineResourceSignatureGLImpl.hpp"
namespace Diligent
{
+class PipelineResourceSignatureGLImpl;
+
// sizeof(ShaderVariableManagerGL) == 48 (x64, msvc, Release)
class ShaderVariableManagerGL
{
@@ -109,18 +111,11 @@ public:
Uint32 NumAllowedTypes,
SHADER_TYPE ShaderType);
- using ResourceAttribs = PipelineResourceSignatureGLImpl::ResourceAttribs;
+ using ResourceAttribs = PipelineResourceAttribsGL;
- const PipelineResourceDesc& GetResourceDesc(Uint32 Index) const
- {
- VERIFY_EXPR(m_pSignature);
- return m_pSignature->GetResourceDesc(Index);
- }
- const ResourceAttribs& GetAttribs(Uint32 Index) const
- {
- VERIFY_EXPR(m_pSignature);
- return m_pSignature->GetResourceAttribs(Index);
- }
+ // These two methods can't be implemented in the header because they depend on PipelineResourceSignatureGLImpl
+ const PipelineResourceDesc& GetResourceDesc(Uint32 Index) const;
+ const ResourceAttribs& GetAttribs(Uint32 Index) const;
struct GLVariableBase : public ShaderVariableBase<ShaderVariableManagerGL>
diff --git a/Graphics/GraphicsEngineOpenGL/include/TextureBaseGL.hpp b/Graphics/GraphicsEngineOpenGL/include/TextureBaseGL.hpp
index 8a6faebb..48320bcf 100644
--- a/Graphics/GraphicsEngineOpenGL/include/TextureBaseGL.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/TextureBaseGL.hpp
@@ -27,14 +27,12 @@
#pragma once
-#include "BaseInterfacesGL.h"
+#include "EngineGLImplTraits.hpp"
#include "TextureGL.h"
#include "TextureBase.hpp"
-#include "RenderDevice.h"
+#include "TextureViewGLImpl.hpp" // Required by TextureBase
#include "GLObjectWrapper.hpp"
-#include "TextureViewGLImpl.hpp"
#include "AsyncWritableResource.hpp"
-#include "RenderDeviceGLImpl.hpp"
#include "GLContextState.hpp"
namespace Diligent
diff --git a/Graphics/GraphicsEngineOpenGL/include/TextureViewGLImpl.hpp b/Graphics/GraphicsEngineOpenGL/include/TextureViewGLImpl.hpp
index ae50f76c..92e41ffe 100644
--- a/Graphics/GraphicsEngineOpenGL/include/TextureViewGLImpl.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/TextureViewGLImpl.hpp
@@ -27,18 +27,14 @@
#pragma once
-#include "BaseInterfacesGL.h"
+#include "EngineGLImplTraits.hpp"
#include "TextureViewGL.h"
#include "TextureViewBase.hpp"
-#include "RenderDevice.h"
#include "GLObjectWrapper.hpp"
-#include "RenderDeviceGLImpl.hpp"
namespace Diligent
{
-class FixedBlockMemoryAllocator;
-
/// Texture view implementation in OpenGL backend.
class TextureViewGLImpl final : public TextureViewBase<EngineGLImplTraits>
{
diff --git a/Graphics/GraphicsEngineOpenGL/include/VAOCache.hpp b/Graphics/GraphicsEngineOpenGL/include/VAOCache.hpp
index a4d8feba..48ece740 100644
--- a/Graphics/GraphicsEngineOpenGL/include/VAOCache.hpp
+++ b/Graphics/GraphicsEngineOpenGL/include/VAOCache.hpp
@@ -28,13 +28,13 @@
#pragma once
#include <cstring>
+
#include "GraphicsTypes.h"
#include "Buffer.h"
#include "InputLayout.h"
#include "LockHelper.hpp"
#include "HashUtils.hpp"
#include "DeviceContextBase.hpp"
-#include "BaseInterfacesGL.h"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/BufferGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/BufferGLImpl.cpp
index e7d45caf..b7c39022 100644
--- a/Graphics/GraphicsEngineOpenGL/src/BufferGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/BufferGLImpl.cpp
@@ -28,10 +28,11 @@
#include "pch.h"
#include "BufferGLImpl.hpp"
+
#include "RenderDeviceGLImpl.hpp"
-#include "GLTypeConversions.hpp"
-#include "BufferViewGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
+
+#include "GLTypeConversions.hpp"
#include "EngineMemory.h"
namespace Diligent
diff --git a/Graphics/GraphicsEngineOpenGL/src/BufferViewGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/BufferViewGLImpl.cpp
index fd44cd20..100d3fe2 100644
--- a/Graphics/GraphicsEngineOpenGL/src/BufferViewGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/BufferViewGLImpl.cpp
@@ -27,10 +27,12 @@
#include "pch.h"
+#include "BufferViewGLImpl.hpp"
+
#include "RenderDeviceGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
-#include "BufferViewGLImpl.hpp"
#include "BufferGLImpl.hpp"
+
#include "GLTypeConversions.hpp"
namespace Diligent
@@ -103,4 +105,8 @@ BufferViewGLImpl::BufferViewGLImpl(IReferenceCounters* pRefCounters,
IMPLEMENT_QUERY_INTERFACE(BufferViewGLImpl, IID_BufferViewGL, TBuffViewBase)
+BufferViewGLImpl::~BufferViewGLImpl()
+{
+}
+
} // namespace Diligent
diff --git a/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp
index d57de1f7..e2c9bb0e 100644
--- a/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/DeviceContextGLImpl.cpp
@@ -26,32 +26,34 @@
*/
#include "pch.h"
+
+#include "DeviceContextGLImpl.hpp"
+
#include <iostream>
#include <fstream>
#include <string>
#include <array>
#include "SwapChainGL.h"
-#include "DeviceContextGLImpl.hpp"
-#include "RenderDeviceGLImpl.hpp"
-#include "GLTypeConversions.hpp"
+#include "RenderDeviceGLImpl.hpp"
#include "BufferGLImpl.hpp"
#include "ShaderGLImpl.hpp"
-#include "VAOCache.hpp"
#include "Texture1D_OGL.hpp"
#include "Texture1DArray_OGL.hpp"
#include "Texture2D_OGL.hpp"
#include "Texture2DArray_OGL.hpp"
#include "Texture3D_OGL.hpp"
#include "SamplerGLImpl.hpp"
-#include "GraphicsAccessories.hpp"
#include "BufferViewGLImpl.hpp"
#include "PipelineStateGLImpl.hpp"
#include "FenceGLImpl.hpp"
#include "ShaderResourceBindingGLImpl.hpp"
-using namespace std;
+#include "GLTypeConversions.hpp"
+#include "VAOCache.hpp"
+#include "GraphicsAccessories.hpp"
+
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/FenceGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/FenceGLImpl.cpp
index ce23b5c9..fe88669e 100644
--- a/Graphics/GraphicsEngineOpenGL/src/FenceGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/FenceGLImpl.cpp
@@ -28,6 +28,7 @@
#include "pch.h"
#include "FenceGLImpl.hpp"
+#include "RenderDeviceGLImpl.hpp"
#include "EngineMemory.h"
namespace Diligent
diff --git a/Graphics/GraphicsEngineOpenGL/src/FramebufferGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/FramebufferGLImpl.cpp
index 8e7287b9..832be663 100644
--- a/Graphics/GraphicsEngineOpenGL/src/FramebufferGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/FramebufferGLImpl.cpp
@@ -28,8 +28,10 @@
#include "pch.h"
#include "FramebufferGLImpl.hpp"
-#include "FBOCache.hpp"
+#include "RenderDeviceGLImpl.hpp"
#include "TextureViewGLImpl.hpp"
+#include "FBOCache.hpp"
+#include "GLContextState.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/GLContextState.cpp b/Graphics/GraphicsEngineOpenGL/src/GLContextState.cpp
index fa60c34a..75c10a18 100644
--- a/Graphics/GraphicsEngineOpenGL/src/GLContextState.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/GLContextState.cpp
@@ -28,12 +28,14 @@
#include "pch.h"
#include "GLContextState.hpp"
+
+#include "BufferViewGLImpl.hpp"
+#include "RenderDeviceGLImpl.hpp"
#include "TextureBaseGL.hpp"
#include "SamplerGLImpl.hpp"
+
#include "AsyncWritableResource.hpp"
#include "GLTypeConversions.hpp"
-#include "BufferViewGLImpl.hpp"
-#include "RenderDeviceGLImpl.hpp"
using namespace GLObjectWrappers;
diff --git a/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp
index 67c2c5bf..264f30e1 100644
--- a/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/PipelineResourceSignatureGLImpl.cpp
@@ -28,8 +28,6 @@
#include "pch.h"
#include "PipelineResourceSignatureGLImpl.hpp"
#include "RenderDeviceGLImpl.hpp"
-#include "ShaderResourceBindingGLImpl.hpp"
-#include "ShaderVariableGL.hpp"
namespace Diligent
{
@@ -421,12 +419,6 @@ void PipelineResourceSignatureGLImpl::ApplyBindings(GLObjectWrappers::GLProgramO
State.SetProgram(GLObjectWrappers::GLProgramObj::Null());
}
-void PipelineResourceSignatureGLImpl::CreateShaderResourceBinding(IShaderResourceBinding** ppShaderResourceBinding,
- bool InitStaticResources)
-{
- CreateShaderResourceBindingImpl(ppShaderResourceBinding, InitStaticResources);
-}
-
void PipelineResourceSignatureGLImpl::InitializeStaticSRBResources(IShaderResourceBinding* pSRB) const
{
InitializeStaticSRBResourcesImpl(ValidatedCast<ShaderResourceBindingGLImpl>(pSRB),
@@ -437,28 +429,6 @@ void PipelineResourceSignatureGLImpl::InitializeStaticSRBResources(IShaderResour
);
}
-Uint32 PipelineResourceSignatureGLImpl::GetStaticVariableCount(SHADER_TYPE ShaderType) const
-{
- return GetStaticVariableCountImpl(ShaderType);
-}
-
-IShaderResourceVariable* PipelineResourceSignatureGLImpl::GetStaticVariableByName(SHADER_TYPE ShaderType, const Char* Name)
-{
- return GetStaticVariableByNameImpl(ShaderType, Name);
-}
-
-IShaderResourceVariable* PipelineResourceSignatureGLImpl::GetStaticVariableByIndex(SHADER_TYPE ShaderType, Uint32 Index)
-{
- return GetStaticVariableByIndexImpl(ShaderType, Index);
-}
-
-void PipelineResourceSignatureGLImpl::BindStaticResources(Uint32 ShaderFlags,
- IResourceMapping* pResMapping,
- Uint32 Flags)
-{
- BindStaticResourcesImpl(ShaderFlags, pResMapping, Flags);
-}
-
void PipelineResourceSignatureGLImpl::CopyStaticResources(ShaderResourceCacheGL& DstResourceCache) const
{
if (m_pStaticResCache == nullptr)
diff --git a/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp
index cc1d115d..b9a0931d 100644
--- a/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/PipelineStateGLImpl.cpp
@@ -32,11 +32,12 @@
#endif
#include "PipelineStateGLImpl.hpp"
+
#include "RenderDeviceGLImpl.hpp"
-#include "ShaderGLImpl.hpp"
+#include "DeviceContextGLImpl.hpp"
#include "ShaderResourceBindingGLImpl.hpp"
+
#include "EngineMemory.h"
-#include "DeviceContextGLImpl.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/QueryGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/QueryGLImpl.cpp
index be02adca..d59b146a 100644
--- a/Graphics/GraphicsEngineOpenGL/src/QueryGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/QueryGLImpl.cpp
@@ -28,6 +28,7 @@
#include "pch.h"
#include "QueryGLImpl.hpp"
+#include "RenderDeviceGLImpl.hpp"
#include "EngineMemory.h"
namespace Diligent
diff --git a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp
index 1a92be5f..8cfdba7d 100644
--- a/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/RenderDeviceGLImpl.cpp
@@ -31,7 +31,6 @@
#include "BufferGLImpl.hpp"
#include "ShaderGLImpl.hpp"
-#include "VAOCache.hpp"
#include "Texture1D_OGL.hpp"
#include "Texture1DArray_OGL.hpp"
#include "Texture2D_OGL.hpp"
@@ -41,7 +40,6 @@
#include "TextureCubeArray_OGL.hpp"
#include "SamplerGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
-#include "GLTypeConversions.hpp"
#include "PipelineStateGLImpl.hpp"
#include "ShaderResourceBindingGLImpl.hpp"
#include "FenceGLImpl.hpp"
@@ -49,6 +47,9 @@
#include "RenderPassGLImpl.hpp"
#include "FramebufferGLImpl.hpp"
#include "PipelineResourceSignatureGLImpl.hpp"
+
+#include "GLTypeConversions.hpp"
+#include "VAOCache.hpp"
#include "EngineMemory.h"
#include "StringTools.hpp"
diff --git a/Graphics/GraphicsEngineOpenGL/src/RenderPassGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/RenderPassGLImpl.cpp
index 7ee5fc25..0843af17 100644
--- a/Graphics/GraphicsEngineOpenGL/src/RenderPassGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/RenderPassGLImpl.cpp
@@ -28,6 +28,7 @@
#include "pch.h"
#include "RenderPassGLImpl.hpp"
+#include "RenderDeviceGLImpl.hpp"
#include "EngineMemory.h"
namespace Diligent
diff --git a/Graphics/GraphicsEngineOpenGL/src/ShaderGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/ShaderGLImpl.cpp
index 931ab3f2..ff20c104 100644
--- a/Graphics/GraphicsEngineOpenGL/src/ShaderGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/ShaderGLImpl.cpp
@@ -27,9 +27,10 @@
#include "pch.h"
+#include "ShaderGLImpl.hpp"
+
#include <array>
-#include "ShaderGLImpl.hpp"
#include "RenderDeviceGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
#include "DataBlobImpl.hpp"
diff --git a/Graphics/GraphicsEngineOpenGL/src/ShaderResourceBindingGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/ShaderResourceBindingGLImpl.cpp
index 2538d66b..27f56bdc 100644
--- a/Graphics/GraphicsEngineOpenGL/src/ShaderResourceBindingGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/ShaderResourceBindingGLImpl.cpp
@@ -26,9 +26,14 @@
*/
#include "pch.h"
+
#include "ShaderResourceBindingGLImpl.hpp"
+
+#include "RenderDeviceGLImpl.hpp"
#include "PipelineStateGLImpl.hpp"
#include "ShaderGLImpl.hpp"
+#include "PipelineResourceSignatureGLImpl.hpp"
+
#include "FixedBlockMemoryAllocator.hpp"
namespace Diligent
diff --git a/Graphics/GraphicsEngineOpenGL/src/ShaderResourceCacheGL.cpp b/Graphics/GraphicsEngineOpenGL/src/ShaderResourceCacheGL.cpp
index 94f2ebfc..436ccafe 100644
--- a/Graphics/GraphicsEngineOpenGL/src/ShaderResourceCacheGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/ShaderResourceCacheGL.cpp
@@ -27,6 +27,7 @@
#include "pch.h"
#include "ShaderResourceCacheGL.hpp"
+#include "RenderDeviceGLImpl.hpp"
#include "PipelineResourceSignatureGLImpl.hpp"
#include "GLTypeConversions.hpp"
diff --git a/Graphics/GraphicsEngineOpenGL/src/ShaderResourcesGL.cpp b/Graphics/GraphicsEngineOpenGL/src/ShaderResourcesGL.cpp
index 6096d5f9..84211c2c 100644
--- a/Graphics/GraphicsEngineOpenGL/src/ShaderResourcesGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/ShaderResourcesGL.cpp
@@ -26,11 +26,13 @@
*/
#include "pch.h"
-#include <unordered_set>
-#include "GLContextState.hpp"
+
#include "ShaderResourcesGL.hpp"
+
+#include <unordered_set>
+
#include "RenderDeviceGLImpl.hpp"
-#include "ShaderResourceBindingBase.hpp"
+#include "GLContextState.hpp"
#include "ShaderResourceVariableBase.hpp"
#include "Align.hpp"
diff --git a/Graphics/GraphicsEngineOpenGL/src/ShaderVariableGL.cpp b/Graphics/GraphicsEngineOpenGL/src/ShaderVariableManagerGL.cpp
index 91a2fa88..9410e3d3 100644
--- a/Graphics/GraphicsEngineOpenGL/src/ShaderVariableGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/ShaderVariableManagerGL.cpp
@@ -26,12 +26,15 @@
*/
#include "pch.h"
+
+#include "ShaderVariableManagerGL.hpp"
+
#include <array>
-#include "ShaderVariableGL.hpp"
+
+#include "RenderDeviceGLImpl.hpp"
#include "PipelineResourceSignatureGLImpl.hpp"
#include "Align.hpp"
#include "PlatformMisc.hpp"
-#include "ShaderBase.hpp"
namespace Diligent
{
@@ -594,6 +597,19 @@ Uint32 ShaderVariableManagerGL::GetVariableIndex(const GLVariableBase& Var) cons
return ~0u;
}
+const PipelineResourceDesc& ShaderVariableManagerGL::GetResourceDesc(Uint32 Index) const
+{
+ VERIFY_EXPR(m_pSignature);
+ return m_pSignature->GetResourceDesc(Index);
+}
+
+const ShaderVariableManagerGL::ResourceAttribs& ShaderVariableManagerGL::GetAttribs(Uint32 Index) const
+{
+ VERIFY_EXPR(m_pSignature);
+ return m_pSignature->GetResourceAttribs(Index);
+}
+
+
#ifdef DILIGENT_DEVELOPMENT
bool ShaderVariableManagerGL::dvpVerifyBindings(const ShaderResourceCacheGL& ResourceCache) const
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/SwapChainGLImpl.cpp b/Graphics/GraphicsEngineOpenGL/src/SwapChainGLImpl.cpp
index dbf2e5f0..e8756c67 100644
--- a/Graphics/GraphicsEngineOpenGL/src/SwapChainGLImpl.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/SwapChainGLImpl.cpp
@@ -26,9 +26,10 @@
*/
#include "pch.h"
-#include "DeviceContextGLImpl.hpp"
-#include "RenderDeviceGLImpl.hpp"
+
#include "SwapChainGLImpl.hpp"
+#include "RenderDeviceGLImpl.hpp"
+#include "DeviceContextGLImpl.hpp"
#include "GraphicsAccessories.hpp"
namespace Diligent
diff --git a/Graphics/GraphicsEngineOpenGL/src/Texture1DArray_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/Texture1DArray_OGL.cpp
index a9a00f43..8d49522b 100644
--- a/Graphics/GraphicsEngineOpenGL/src/Texture1DArray_OGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/Texture1DArray_OGL.cpp
@@ -30,8 +30,8 @@
#include "Texture1DArray_OGL.hpp"
#include "RenderDeviceGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
-#include "GLTypeConversions.hpp"
#include "BufferGLImpl.hpp"
+#include "GLTypeConversions.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/Texture1D_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/Texture1D_OGL.cpp
index 92861f93..9ddd61bc 100644
--- a/Graphics/GraphicsEngineOpenGL/src/Texture1D_OGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/Texture1D_OGL.cpp
@@ -30,8 +30,8 @@
#include "Texture1D_OGL.hpp"
#include "RenderDeviceGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
-#include "GLTypeConversions.hpp"
#include "BufferGLImpl.hpp"
+#include "GLTypeConversions.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/Texture2DArray_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/Texture2DArray_OGL.cpp
index 17fccd91..a544c080 100644
--- a/Graphics/GraphicsEngineOpenGL/src/Texture2DArray_OGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/Texture2DArray_OGL.cpp
@@ -30,9 +30,9 @@
#include "Texture2DArray_OGL.hpp"
#include "RenderDeviceGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
+#include "BufferGLImpl.hpp"
#include "GLTypeConversions.hpp"
#include "GraphicsAccessories.hpp"
-#include "BufferGLImpl.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/Texture2D_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/Texture2D_OGL.cpp
index 5866059a..7442bf5b 100644
--- a/Graphics/GraphicsEngineOpenGL/src/Texture2D_OGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/Texture2D_OGL.cpp
@@ -30,9 +30,9 @@
#include "Texture2D_OGL.hpp"
#include "RenderDeviceGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
+#include "BufferGLImpl.hpp"
#include "GLTypeConversions.hpp"
#include "GraphicsAccessories.hpp"
-#include "BufferGLImpl.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/Texture3D_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/Texture3D_OGL.cpp
index 393dfef6..52717652 100644
--- a/Graphics/GraphicsEngineOpenGL/src/Texture3D_OGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/Texture3D_OGL.cpp
@@ -30,9 +30,9 @@
#include "Texture3D_OGL.hpp"
#include "RenderDeviceGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
+#include "BufferGLImpl.hpp"
#include "GLTypeConversions.hpp"
#include "GraphicsAccessories.hpp"
-#include "BufferGLImpl.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp b/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp
index d38a468d..9facc557 100644
--- a/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/TextureBaseGL.cpp
@@ -28,11 +28,12 @@
#include "pch.h"
#include "TextureBaseGL.hpp"
+
#include "RenderDeviceGLImpl.hpp"
-#include "GLTypeConversions.hpp"
-#include "TextureViewGLImpl.hpp"
-#include "GLContextState.hpp"
#include "DeviceContextGLImpl.hpp"
+#include "TextureViewGLImpl.hpp"
+
+#include "GLTypeConversions.hpp"
#include "EngineMemory.h"
#include "GraphicsAccessories.hpp"
#include "Align.hpp"
diff --git a/Graphics/GraphicsEngineOpenGL/src/TextureCubeArray_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/TextureCubeArray_OGL.cpp
index 0fd5a5c6..443cb792 100644
--- a/Graphics/GraphicsEngineOpenGL/src/TextureCubeArray_OGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/TextureCubeArray_OGL.cpp
@@ -28,11 +28,14 @@
#include "pch.h"
#include "TextureCubeArray_OGL.hpp"
+
#include "RenderDeviceGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
+#include "BufferGLImpl.hpp"
+
#include "GLTypeConversions.hpp"
#include "GraphicsAccessories.hpp"
-#include "BufferGLImpl.hpp"
+
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/TextureCube_OGL.cpp b/Graphics/GraphicsEngineOpenGL/src/TextureCube_OGL.cpp
index 2ee46a45..4caafac2 100644
--- a/Graphics/GraphicsEngineOpenGL/src/TextureCube_OGL.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/TextureCube_OGL.cpp
@@ -28,11 +28,13 @@
#include "pch.h"
#include "TextureCube_OGL.hpp"
+
#include "RenderDeviceGLImpl.hpp"
#include "DeviceContextGLImpl.hpp"
+#include "BufferGLImpl.hpp"
+
#include "GLTypeConversions.hpp"
#include "GraphicsAccessories.hpp"
-#include "BufferGLImpl.hpp"
namespace Diligent
{
diff --git a/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp b/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp
index 43bd9347..240b739b 100644
--- a/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp
+++ b/Graphics/GraphicsEngineOpenGL/src/VAOCache.cpp
@@ -28,12 +28,14 @@
#include "pch.h"
#include "VAOCache.hpp"
+
#include "RenderDeviceGLImpl.hpp"
-#include "GLObjectWrapper.hpp"
#include "BufferGLImpl.hpp"
+#include "PipelineStateGLImpl.hpp"
+
+#include "GLObjectWrapper.hpp"
#include "GLTypeConversions.hpp"
#include "GLContextState.hpp"
-#include "PipelineStateGLImpl.hpp"
namespace Diligent
{