diff --git a/LEGO1/tgl/d3drm/impl.h b/LEGO1/tgl/d3drm/impl.h index e1488508..0d8f6432 100644 --- a/LEGO1/tgl/d3drm/impl.h +++ b/LEGO1/tgl/d3drm/impl.h @@ -85,6 +85,25 @@ class RendererImpl : public Renderer { IDirect3DRM2* m_data; }; +extern IDirect3DRM2* g_pD3DRM; + +inline void RendererDestroy(IDirect3DRM2* pRenderer) +{ + int refCount = pRenderer->Release(); + if (refCount <= 0) { + g_pD3DRM = NULL; + } +} + +// Inlined only +void RendererImpl::Destroy() +{ + if (m_data) { + RendererDestroy(m_data); + m_data = NULL; + } +} + // VTABLE 0x100db988 class DeviceImpl : public Device { public: diff --git a/LEGO1/tgl/d3drm/renderer.cpp b/LEGO1/tgl/d3drm/renderer.cpp index 11e7d8e9..cc58d335 100644 --- a/LEGO1/tgl/d3drm/renderer.cpp +++ b/LEGO1/tgl/d3drm/renderer.cpp @@ -13,8 +13,10 @@ Renderer* Tgl::CreateRenderer() return renderer; } +namespace TglImpl { // GLOBAL: LEGO1 0x1010103c -IDirect3DRM2* g_pD3DRM = NULL; +IDirect3DRM2 *g_pD3DRM = NULL; +} // Inlined only Result RendererImpl::Create() @@ -31,23 +33,6 @@ Result RendererImpl::Create() return (m_data != NULL) ? Success : Error; } -inline void RendererDestroy(IDirect3DRM2* pRenderer) -{ - int refCount = pRenderer->Release(); - if (refCount <= 0) { - g_pD3DRM = NULL; - } -} - -// Inlined only -void RendererImpl::Destroy() -{ - if (m_data) { - RendererDestroy(m_data); - m_data = NULL; - } -} - // FUNCTION: LEGO1 0x100a1894 Device* RendererImpl::CreateDevice(const DeviceDirect3DCreateData& data) {