Add all TglImpl::ImplementationData methods (#1436)

* ImplementationData methods and typedefs

* RendererImpl::CreateView

* RendererImpl::CreateMeshBuilder

* DeepClone

* CreateCamera and CreateTexture

* CreateDevice

* Disable static var annotation
This commit is contained in:
MS
2025-04-19 10:30:47 -04:00
committed by GitHub
parent 451fd63eee
commit 2fef2858c9
4 changed files with 458 additions and 106 deletions

View File

@@ -95,15 +95,44 @@ public:
return m_data->CreateTextureFromSurface(pSurface, pTexture2);
}
IDirect3DRM2* ImplementationData() const { return m_data; }
typedef IDirect3DRM2* RendererDataType;
const RendererDataType& ImplementationData() const { return m_data; }
// FUNCTION: BETA10 0x10174c10
RendererDataType& ImplementationData() { return m_data; }
public:
inline Result Create();
inline void Destroy();
inline Result CreateLight(LightType type, float r, float g, float b, LightImpl& rLight);
inline Result CreateView(
const DeviceImpl& rDevice,
const CameraImpl& rCamera,
unsigned long x,
unsigned long y,
unsigned long width,
unsigned long height,
ViewImpl& rView
);
inline Result CreateMeshBuilder(MeshBuilderImpl& rMesh);
inline Result CreateCamera(CameraImpl& rCamera);
inline Result CreateTexture(TextureImpl& rTexture);
inline Result CreateTexture(
TextureImpl& rTexture,
int width,
int height,
int bitsPerTexel,
const void* pTexels,
int texelsArePersistent,
int paletteEntryCount,
const PaletteEntry* pEntries
);
inline Result CreateDevice(const DeviceDirect3DCreateData& rCreateData, DeviceImpl& rDevice);
inline Result CreateDevice(const DeviceDirectDrawCreateData& rCreateData, DeviceImpl& rDevice);
private:
IDirect3DRM2* m_data;
RendererDataType m_data;
};
extern IDirect3DRM2* g_pD3DRM;
@@ -154,7 +183,14 @@ public:
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 0x100d9540
DeviceDataType& ImplementationData() { return m_data; }
void SetImplementationData(IDirect3DRMDevice2* device) { m_data = device; }
inline void Destroy();
@@ -162,7 +198,7 @@ public:
friend class RendererImpl;
private:
IDirect3DRMDevice2* m_data;
DeviceDataType m_data;
};
// FUNCTION: BETA10 0x101708c0
@@ -220,7 +256,13 @@ public:
int& rPickedGroupCount
) override;
IDirect3DRMViewport* ImplementationData() const { return m_data; }
typedef IDirect3DRMViewport* ViewDataType;
const ViewDataType& ImplementationData() const { return m_data; }
// FUNCTION: BETA10 0x101711c0
ViewDataType& ImplementationData() { return m_data; }
void SetImplementationData(IDirect3DRMViewport* viewport) { m_data = viewport; }
static Result ViewportCreateAppData(IDirect3DRM2*, IDirect3DRMViewport*, IDirect3DRMFrame2*);
@@ -242,7 +284,7 @@ public:
friend class RendererImpl;
private:
IDirect3DRMViewport* m_data;
ViewDataType m_data;
};
// FUNCTION: BETA10 0x101711a0
@@ -275,14 +317,20 @@ public:
// 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 +366,10 @@ public:
typedef IDirect3DRMFrame2* LightDataType;
// FUNCTION: BETA10 0x10171b90
const LightDataType& ImplementationData() const { return m_data; }
// FUNCTION: BETA10 0x10171240
LightDataType& ImplementationData() { return m_data; }
inline void Destroy();
@@ -377,9 +428,12 @@ public:
typedef MeshData* MeshDataType;
const MeshDataType& ImplementationData() const { return m_data; }
// FUNCTION: BETA10 0x10171b70
MeshDataType& ImplementationData() { return m_data; }
inline void Destroy();
inline Mesh* DeepClone(const MeshBuilderImpl& rMesh);
friend class RendererImpl;
@@ -433,14 +487,20 @@ public:
// 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 +546,13 @@ public:
// vtable+0x10
MeshBuilder* Clone() override;
IDirect3DRMMesh* ImplementationData() const { return m_data; }
typedef IDirect3DRMMesh* MeshBuilderDataType;
// FUNCTION: BETA10 0x10170420
const MeshBuilderDataType& ImplementationData() const { return m_data; }
// FUNCTION: BETA10 0x10170440
MeshBuilderDataType& ImplementationData() { return m_data; }
inline void Destroy();
@@ -505,7 +571,7 @@ private:
ShadingModel shadingModel
);
IDirect3DRMMesh* m_data;
MeshBuilderDataType m_data;
};
// FUNCTION: BETA10 0x10170390
@@ -574,7 +640,14 @@ public:
) 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 +657,7 @@ public:
static Result SetImage(IDirect3DRMTexture* pSelf, TglD3DRMIMAGE* pImage);
private:
IDirect3DRMTexture* m_data;
TextureDataType m_data;
};
// FUNCTION: BETA10 0x1016fd40
@@ -739,6 +812,9 @@ inline D3DRMLIGHTTYPE Translate(LightType tglLightType)
// SYNTHETIC: BETA10 0x1016fa90
// TglImpl::MeshImpl::`scalar deleting destructor'
// SYNTHETIC: BETA10 0x10169960
// ViewportAppData::`scalar deleting destructor'
// GLOBAL: LEGO1 0x100dd1e0
// IID_IDirect3DRMMeshBuilder