summaryrefslogtreecommitdiffstats
path: root/tools/gfx/open-gl/render-gl.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2021-04-20 13:17:29 -0700
committerGitHub <noreply@github.com>2021-04-20 13:17:29 -0700
commit34fba7b5e726136c6eee8a318ab9a75381399c00 (patch)
tree39a496c7052256cef9b089b78ab4bd48316571bd /tools/gfx/open-gl/render-gl.cpp
parent6bba674f9d732eccc27dcf004611e6a8eb9bc14e (diff)
Various fixes to make `model-viewer` example almost working. (#1801)
* Fixing `PseudoPtr` legalization and `gfx` lifetime issues. * Fixing `model-viewer` example. This change contains various fixes to bring `model-viewer` example to fully functional. These fixes include: 1. Add `spReflectionTypeLayout_getSubObjectRangeSpaceOffset` function to return the space index for a sub object referenced through a `ParameterBlock` binding. 2. Make sure `D3D12Device` specifies column major matrix order creating a Slang session. 3. Fix `platform::Window::close()` and `platform::Application::quit()`. 4. Fix memory leak during `model-viewer''s model loading. 5. Fix command buffer recording in `model-viewer`. With these changes, model viewer can now produce an image with a gray cube. The lighting is still incorrect becuase the `gfx` shader object implementation still does not handle "pending layout" resulting from global existential parameters. * Fix d3d12 root signature creation. * Use row-major matrix layout in model-viewer
Diffstat (limited to 'tools/gfx/open-gl/render-gl.cpp')
-rw-r--r--tools/gfx/open-gl/render-gl.cpp23
1 files changed, 2 insertions, 21 deletions
diff --git a/tools/gfx/open-gl/render-gl.cpp b/tools/gfx/open-gl/render-gl.cpp
index c0b739096..fb8502485 100644
--- a/tools/gfx/open-gl/render-gl.cpp
+++ b/tools/gfx/open-gl/render-gl.cpp
@@ -201,17 +201,9 @@ public:
GLsizei offset;
};
- class InputLayoutImpl: public IInputLayout, public ComObject
+ class InputLayoutImpl : public InputLayoutBase
{
public:
- SLANG_COM_OBJECT_IUNKNOWN_ALL
- IInputLayout* getInterface(const Guid& guid)
- {
- if (guid == GfxGUID::IID_ISlangUnknown || guid == GfxGUID::IID_IInputLayout)
- return static_cast<IInputLayout*>(this);
- return nullptr;
- }
- public:
VertexAttributeDesc m_attributes[kMaxVertexStreams];
UInt m_attributeCount = 0;
};
@@ -329,20 +321,9 @@ public:
GLuint m_bufferID;
};
- class FramebufferLayoutImpl
- : public IFramebufferLayout
- , public ComObject
+ class FramebufferLayoutImpl : public FramebufferLayoutBase
{
public:
- SLANG_COM_OBJECT_IUNKNOWN_ALL
- IFramebufferLayout* getInterface(const Guid& guid)
- {
- if (guid == GfxGUID::IID_ISlangUnknown || guid == GfxGUID::IID_IFramebufferLayout)
- return static_cast<IFramebufferLayout*>(this);
- return nullptr;
- }
-
- public:
ShortList<IFramebufferLayout::AttachmentLayout> m_renderTargets;
bool m_hasDepthStencil = false;
IFramebufferLayout::AttachmentLayout m_depthStencil;