From e84abc3fe491777a6e40abcb364f8f94ef9a247d Mon Sep 17 00:00:00 2001 From: disinvite Date: Fri, 18 Apr 2025 15:59:29 -0400 Subject: [PATCH] ImplementationData methods and typedefs --- LEGO1/tgl/d3drm/impl.h | 72 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 14 deletions(-) diff --git a/LEGO1/tgl/d3drm/impl.h b/LEGO1/tgl/d3drm/impl.h index b7ab827e..341cddf5 100644 --- a/LEGO1/tgl/d3drm/impl.h +++ b/LEGO1/tgl/d3drm/impl.h @@ -95,7 +95,11 @@ class RendererImpl : public Renderer { return m_data->CreateTextureFromSurface(pSurface, pTexture2); } - IDirect3DRM2* ImplementationData() const { return m_data; } + typedef IDirect3DRM2* RendererDataType; + + const RendererDataType& ImplementationData() const { return m_data; } + + RendererDataType& ImplementationData() { return m_data; } public: inline Result Create(); @@ -103,7 +107,7 @@ class RendererImpl : public Renderer { inline Result CreateLight(LightType type, float r, float g, float b, LightImpl& rLight); private: - IDirect3DRM2* m_data; + RendererDataType m_data; }; extern IDirect3DRM2* g_pD3DRM; @@ -154,7 +158,14 @@ class DeviceImpl : public Device { void HandleActivate(WORD) override; void HandlePaint(HDC) override; - IDirect3DRMDevice2* ImplementationData() const { return m_data; } + typedef IDirect3DRMDevice2* DeviceDataType; + + // FUNCTION: BETA10 0x101708e0 + const DeviceDataType& ImplementationData() const { return m_data; } + + // FUNCTION: BETA10 0x100d95 + DeviceDataType& ImplementationData() { return m_data; } + void SetImplementationData(IDirect3DRMDevice2* device) { m_data = device; } inline void Destroy(); @@ -162,7 +173,7 @@ class DeviceImpl : public Device { friend class RendererImpl; private: - IDirect3DRMDevice2* m_data; + DeviceDataType m_data; }; // FUNCTION: BETA10 0x101708c0 @@ -220,7 +231,12 @@ class ViewImpl : public View { int& rPickedGroupCount ) override; - IDirect3DRMViewport* ImplementationData() const { return m_data; } + typedef IDirect3DRMViewport* ViewDataType; + + // FUNCTION: BETA10 0x101711c0 + const ViewDataType& ImplementationData() const { return m_data; } + ViewDataType& ImplementationData() { return m_data; } + void SetImplementationData(IDirect3DRMViewport* viewport) { m_data = viewport; } static Result ViewportCreateAppData(IDirect3DRM2*, IDirect3DRMViewport*, IDirect3DRMFrame2*); @@ -242,7 +258,7 @@ class ViewImpl : public View { friend class RendererImpl; private: - IDirect3DRMViewport* m_data; + ViewDataType m_data; }; // FUNCTION: BETA10 0x101711a0 @@ -275,14 +291,20 @@ class CameraImpl : public Camera { // vtable+0x08 Result SetTransformation(FloatMatrix4&) override; - IDirect3DRMFrame2* ImplementationData() const { return m_data; } + typedef IDirect3DRMFrame2* CameraDataType; + + // FUNCTION: BETA10 0x10170960 + const CameraDataType& ImplementationData() const { return m_data; } + + // FUNCTION: BETA10 0x10170980 + CameraDataType& ImplementationData() { return m_data; } inline void Destroy(); friend class RendererImpl; private: - IDirect3DRMFrame2* m_data; + CameraDataType m_data; }; // FUNCTION: BETA10 0x10170940 @@ -318,7 +340,10 @@ class LightImpl : public Light { typedef IDirect3DRMFrame2* LightDataType; + // FUNCTION: BETA10 0x10171b90 const LightDataType& ImplementationData() const { return m_data; } + + // FUNCTION: BETA10 0x10171240 LightDataType& ImplementationData() { return m_data; } inline void Destroy(); @@ -376,7 +401,10 @@ class MeshImpl : public Mesh { typedef MeshData* MeshDataType; + // FUNCTION: BETA10 0x10170420 const MeshDataType& ImplementationData() const { return m_data; } + + // FUNCTION: BETA10 0x10170440 MeshDataType& ImplementationData() { return m_data; } inline void Destroy(); @@ -433,14 +461,20 @@ class GroupImpl : public Group { // vtable+0x30 Result Bounds(D3DVECTOR* p_min, D3DVECTOR* p_max) override; - IDirect3DRMFrame2* ImplementationData() const { return m_data; } + typedef IDirect3DRMFrame2* GroupDataType; + + // FUNCTION: BETA10 0x1016fc20 + const GroupDataType& ImplementationData() const { return m_data; } + + // FUNCTION: BETA10 0x1016fce0 + GroupDataType& ImplementationData() { return m_data; } inline void Destroy(); friend class RendererImpl; private: - IDirect3DRMFrame2* m_data; + GroupDataType m_data; }; // FUNCTION: BETA10 0x1016c2b0 @@ -486,7 +520,10 @@ class MeshBuilderImpl : public MeshBuilder { // vtable+0x10 MeshBuilder* Clone() override; - IDirect3DRMMesh* ImplementationData() const { return m_data; } + typedef IDirect3DRMMesh* MeshBuilderDataType; + + const MeshBuilderDataType& ImplementationData() const { return m_data; } + MeshBuilderDataType& ImplementationData() { return m_data; } inline void Destroy(); @@ -505,7 +542,7 @@ class MeshBuilderImpl : public MeshBuilder { ShadingModel shadingModel ); - IDirect3DRMMesh* m_data; + MeshBuilderDataType m_data; }; // FUNCTION: BETA10 0x10170390 @@ -574,7 +611,14 @@ class TextureImpl : public Texture { ) override; Result SetPalette(int entryCount, PaletteEntry* entries) override; - IDirect3DRMTexture* ImplementationData() const { return m_data; } + typedef IDirect3DRMTexture* TextureDataType; + + // FUNCTION: BETA10 0x1016fd60 + const TextureDataType& ImplementationData() const { return m_data; } + + // FUNCTION: BETA10 0x1016fe20 + TextureDataType& ImplementationData() { return m_data; } + void SetImplementation(IDirect3DRMTexture* pData) { m_data = pData; } inline void Destroy(); @@ -584,7 +628,7 @@ class TextureImpl : public Texture { static Result SetImage(IDirect3DRMTexture* pSelf, TglD3DRMIMAGE* pImage); private: - IDirect3DRMTexture* m_data; + TextureDataType m_data; }; // FUNCTION: BETA10 0x1016fd40