mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-20 06:41:15 +00:00
Add Destroy methods to TglImpl
This commit is contained in:
parent
0bc31450a4
commit
602c9f558d
@ -133,13 +133,7 @@ class DeviceImpl : public Device {
|
|||||||
DeviceImpl() : m_data(0) {}
|
DeviceImpl() : m_data(0) {}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1016dd80
|
// FUNCTION: BETA10 0x1016dd80
|
||||||
~DeviceImpl() override
|
~DeviceImpl() override { Destroy(); }
|
||||||
{
|
|
||||||
if (m_data) {
|
|
||||||
m_data->Release();
|
|
||||||
m_data = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void* ImplementationDataPtr() override;
|
void* ImplementationDataPtr() override;
|
||||||
|
|
||||||
@ -161,12 +155,29 @@ class DeviceImpl : public Device {
|
|||||||
IDirect3DRMDevice2* ImplementationData() const { return m_data; }
|
IDirect3DRMDevice2* ImplementationData() const { return m_data; }
|
||||||
void SetImplementationData(IDirect3DRMDevice2* device) { m_data = device; }
|
void SetImplementationData(IDirect3DRMDevice2* device) { m_data = device; }
|
||||||
|
|
||||||
|
inline void Destroy();
|
||||||
|
|
||||||
friend class RendererImpl;
|
friend class RendererImpl;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IDirect3DRMDevice2* m_data;
|
IDirect3DRMDevice2* m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x101708c0
|
||||||
|
inline void DeviceDestroy(IDirect3DRMDevice2* pDevice)
|
||||||
|
{
|
||||||
|
pDevice->Release();
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10170880
|
||||||
|
void DeviceImpl::Destroy()
|
||||||
|
{
|
||||||
|
if (m_data) {
|
||||||
|
DeviceDestroy(m_data);
|
||||||
|
m_data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100db9e8
|
// VTABLE: LEGO1 0x100db9e8
|
||||||
// VTABLE: BETA10 0x101c3220
|
// VTABLE: BETA10 0x101c3220
|
||||||
class ViewImpl : public View {
|
class ViewImpl : public View {
|
||||||
@ -175,13 +186,7 @@ class ViewImpl : public View {
|
|||||||
ViewImpl() : m_data(0) {}
|
ViewImpl() : m_data(0) {}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1016e5d0
|
// FUNCTION: BETA10 0x1016e5d0
|
||||||
~ViewImpl() override
|
~ViewImpl() override { Destroy(); }
|
||||||
{
|
|
||||||
if (m_data) {
|
|
||||||
m_data->Release();
|
|
||||||
m_data = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void* ImplementationDataPtr() override;
|
void* ImplementationDataPtr() override;
|
||||||
|
|
||||||
@ -218,12 +223,29 @@ class ViewImpl : public View {
|
|||||||
|
|
||||||
static Result ViewportCreateAppData(IDirect3DRM2*, IDirect3DRMViewport*, IDirect3DRMFrame2*);
|
static Result ViewportCreateAppData(IDirect3DRM2*, IDirect3DRMViewport*, IDirect3DRMFrame2*);
|
||||||
|
|
||||||
|
inline void Destroy();
|
||||||
|
|
||||||
friend class RendererImpl;
|
friend class RendererImpl;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IDirect3DRMViewport* m_data;
|
IDirect3DRMViewport* m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x101711a0
|
||||||
|
inline void ViewDestroy(IDirect3DRMViewport* pView)
|
||||||
|
{
|
||||||
|
pView->Release();
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10171160
|
||||||
|
void ViewImpl::Destroy()
|
||||||
|
{
|
||||||
|
if (m_data) {
|
||||||
|
ViewDestroy(m_data);
|
||||||
|
m_data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100dbad8
|
// VTABLE: LEGO1 0x100dbad8
|
||||||
// VTABLE: BETA10 0x101c3260
|
// VTABLE: BETA10 0x101c3260
|
||||||
class CameraImpl : public Camera {
|
class CameraImpl : public Camera {
|
||||||
@ -232,13 +254,7 @@ class CameraImpl : public Camera {
|
|||||||
CameraImpl() : m_data(0) {}
|
CameraImpl() : m_data(0) {}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1016f200
|
// FUNCTION: BETA10 0x1016f200
|
||||||
~CameraImpl() override
|
~CameraImpl() override { Destroy(); }
|
||||||
{
|
|
||||||
if (m_data) {
|
|
||||||
m_data->Release();
|
|
||||||
m_data = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void* ImplementationDataPtr() override;
|
void* ImplementationDataPtr() override;
|
||||||
|
|
||||||
@ -247,12 +263,29 @@ class CameraImpl : public Camera {
|
|||||||
|
|
||||||
IDirect3DRMFrame2* ImplementationData() const { return m_data; }
|
IDirect3DRMFrame2* ImplementationData() const { return m_data; }
|
||||||
|
|
||||||
|
inline void Destroy();
|
||||||
|
|
||||||
friend class RendererImpl;
|
friend class RendererImpl;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IDirect3DRMFrame2* m_data;
|
IDirect3DRMFrame2* m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10170940
|
||||||
|
inline void CameraDestroy(IDirect3DRMFrame2* pFrame)
|
||||||
|
{
|
||||||
|
pFrame->Release();
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10170900
|
||||||
|
void CameraImpl::Destroy()
|
||||||
|
{
|
||||||
|
if (m_data) {
|
||||||
|
CameraDestroy(m_data);
|
||||||
|
m_data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100dbaf8
|
// VTABLE: LEGO1 0x100dbaf8
|
||||||
// VTABLE: BETA10 0x101c31e0
|
// VTABLE: BETA10 0x101c31e0
|
||||||
class LightImpl : public Light {
|
class LightImpl : public Light {
|
||||||
@ -261,13 +294,7 @@ class LightImpl : public Light {
|
|||||||
LightImpl() : m_data(0) {}
|
LightImpl() : m_data(0) {}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1016c7e0
|
// FUNCTION: BETA10 0x1016c7e0
|
||||||
~LightImpl() override
|
~LightImpl() override { Destroy(); }
|
||||||
{
|
|
||||||
if (m_data) {
|
|
||||||
m_data->Release();
|
|
||||||
m_data = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void* ImplementationDataPtr() override;
|
void* ImplementationDataPtr() override;
|
||||||
|
|
||||||
@ -277,12 +304,29 @@ class LightImpl : public Light {
|
|||||||
|
|
||||||
IDirect3DRMFrame2* ImplementationData() const { return m_data; }
|
IDirect3DRMFrame2* ImplementationData() const { return m_data; }
|
||||||
|
|
||||||
|
inline void Destroy();
|
||||||
|
|
||||||
friend class RendererImpl;
|
friend class RendererImpl;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IDirect3DRMFrame2* m_data;
|
IDirect3DRMFrame2* m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10170390
|
||||||
|
inline void LightDestroy(IDirect3DRMFrame2* pLight)
|
||||||
|
{
|
||||||
|
pLight->Release();
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10170350
|
||||||
|
void LightImpl::Destroy()
|
||||||
|
{
|
||||||
|
if (m_data) {
|
||||||
|
LightDestroy(m_data);
|
||||||
|
m_data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100dbb88
|
// VTABLE: LEGO1 0x100dbb88
|
||||||
// VTABLE: BETA10 0x101c3340
|
// VTABLE: BETA10 0x101c3340
|
||||||
class MeshImpl : public Mesh {
|
class MeshImpl : public Mesh {
|
||||||
@ -291,13 +335,7 @@ class MeshImpl : public Mesh {
|
|||||||
MeshImpl() : m_data(0) {}
|
MeshImpl() : m_data(0) {}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x10170460
|
// FUNCTION: BETA10 0x10170460
|
||||||
~MeshImpl() override
|
~MeshImpl() override { Destroy(); }
|
||||||
{
|
|
||||||
if (m_data) {
|
|
||||||
delete m_data;
|
|
||||||
m_data = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void* ImplementationDataPtr() override;
|
void* ImplementationDataPtr() override;
|
||||||
|
|
||||||
@ -324,12 +362,29 @@ class MeshImpl : public Mesh {
|
|||||||
const MeshDataType& ImplementationData() const { return m_data; }
|
const MeshDataType& ImplementationData() const { return m_data; }
|
||||||
MeshDataType& ImplementationData() { return m_data; }
|
MeshDataType& ImplementationData() { return m_data; }
|
||||||
|
|
||||||
|
inline void Destroy();
|
||||||
|
|
||||||
friend class RendererImpl;
|
friend class RendererImpl;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MeshDataType m_data;
|
MeshDataType m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10171b40
|
||||||
|
inline void MeshDestroy(MeshImpl::MeshDataType pMesh)
|
||||||
|
{
|
||||||
|
delete pMesh;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10171b00
|
||||||
|
void MeshImpl::Destroy()
|
||||||
|
{
|
||||||
|
if (m_data) {
|
||||||
|
MeshDestroy(m_data);
|
||||||
|
m_data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100dba68
|
// VTABLE: LEGO1 0x100dba68
|
||||||
// VTABLE: BETA10 0x101c3150
|
// VTABLE: BETA10 0x101c3150
|
||||||
class GroupImpl : public Group {
|
class GroupImpl : public Group {
|
||||||
@ -338,13 +393,7 @@ class GroupImpl : public Group {
|
|||||||
GroupImpl() : m_data(0) {}
|
GroupImpl() : m_data(0) {}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1016a410
|
// FUNCTION: BETA10 0x1016a410
|
||||||
~GroupImpl() override
|
~GroupImpl() override { Destroy(); }
|
||||||
{
|
|
||||||
if (m_data) {
|
|
||||||
m_data->Release();
|
|
||||||
m_data = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void* ImplementationDataPtr() override;
|
void* ImplementationDataPtr() override;
|
||||||
|
|
||||||
@ -369,12 +418,29 @@ class GroupImpl : public Group {
|
|||||||
|
|
||||||
IDirect3DRMFrame2* ImplementationData() const { return m_data; }
|
IDirect3DRMFrame2* ImplementationData() const { return m_data; }
|
||||||
|
|
||||||
|
inline void Destroy();
|
||||||
|
|
||||||
friend class RendererImpl;
|
friend class RendererImpl;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IDirect3DRMFrame2* m_data;
|
IDirect3DRMFrame2* m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1016c2b0
|
||||||
|
inline void GroupDestroy(IDirect3DRMFrame2* pGroup)
|
||||||
|
{
|
||||||
|
pGroup->Release();
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1016c270
|
||||||
|
void GroupImpl::Destroy()
|
||||||
|
{
|
||||||
|
if (m_data) {
|
||||||
|
GroupDestroy(m_data);
|
||||||
|
m_data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100dbb18
|
// VTABLE: LEGO1 0x100dbb18
|
||||||
// VTABLE: BETA10 0x101c3270
|
// VTABLE: BETA10 0x101c3270
|
||||||
class MeshBuilderImpl : public MeshBuilder {
|
class MeshBuilderImpl : public MeshBuilder {
|
||||||
@ -383,13 +449,7 @@ class MeshBuilderImpl : public MeshBuilder {
|
|||||||
MeshBuilderImpl() : m_data(0) {}
|
MeshBuilderImpl() : m_data(0) {}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1016f5c0
|
// FUNCTION: BETA10 0x1016f5c0
|
||||||
~MeshBuilderImpl() override
|
~MeshBuilderImpl() override { Destroy(); }
|
||||||
{
|
|
||||||
if (m_data) {
|
|
||||||
m_data->Release();
|
|
||||||
m_data = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void* ImplementationDataPtr() override;
|
void* ImplementationDataPtr() override;
|
||||||
|
|
||||||
@ -411,6 +471,8 @@ class MeshBuilderImpl : public MeshBuilder {
|
|||||||
|
|
||||||
IDirect3DRMMesh* ImplementationData() const { return m_data; }
|
IDirect3DRMMesh* ImplementationData() const { return m_data; }
|
||||||
|
|
||||||
|
inline void Destroy();
|
||||||
|
|
||||||
friend class RendererImpl;
|
friend class RendererImpl;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -429,6 +491,21 @@ class MeshBuilderImpl : public MeshBuilder {
|
|||||||
IDirect3DRMMesh* m_data;
|
IDirect3DRMMesh* m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10171220
|
||||||
|
inline void MeshBuilderDestroy(IDirect3DRMMesh* pMeshBuilder)
|
||||||
|
{
|
||||||
|
pMeshBuilder->Release();
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x101711e0
|
||||||
|
void MeshBuilderImpl::Destroy()
|
||||||
|
{
|
||||||
|
if (m_data) {
|
||||||
|
MeshBuilderDestroy(m_data);
|
||||||
|
m_data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// No vtable, this is just a simple wrapper around D3DRMIMAGE
|
// No vtable, this is just a simple wrapper around D3DRMIMAGE
|
||||||
class TglD3DRMIMAGE {
|
class TglD3DRMIMAGE {
|
||||||
public:
|
public:
|
||||||
@ -460,13 +537,7 @@ class TextureImpl : public Texture {
|
|||||||
TextureImpl() : m_data(0) {}
|
TextureImpl() : m_data(0) {}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1016c2d0
|
// FUNCTION: BETA10 0x1016c2d0
|
||||||
~TextureImpl() override
|
~TextureImpl() override { Destroy(); }
|
||||||
{
|
|
||||||
if (m_data) {
|
|
||||||
m_data->Release();
|
|
||||||
m_data = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void* ImplementationDataPtr() override;
|
void* ImplementationDataPtr() override;
|
||||||
|
|
||||||
@ -489,6 +560,8 @@ class TextureImpl : public Texture {
|
|||||||
IDirect3DRMTexture* ImplementationData() const { return m_data; }
|
IDirect3DRMTexture* ImplementationData() const { return m_data; }
|
||||||
void SetImplementation(IDirect3DRMTexture* pData) { m_data = pData; }
|
void SetImplementation(IDirect3DRMTexture* pData) { m_data = pData; }
|
||||||
|
|
||||||
|
inline void Destroy();
|
||||||
|
|
||||||
friend class RendererImpl;
|
friend class RendererImpl;
|
||||||
|
|
||||||
static Result SetImage(IDirect3DRMTexture* pSelf, TglD3DRMIMAGE* pImage);
|
static Result SetImage(IDirect3DRMTexture* pSelf, TglD3DRMIMAGE* pImage);
|
||||||
@ -497,6 +570,21 @@ class TextureImpl : public Texture {
|
|||||||
IDirect3DRMTexture* m_data;
|
IDirect3DRMTexture* m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1016fd40
|
||||||
|
inline void TextureDestroy(IDirect3DRMTexture* pTexture)
|
||||||
|
{
|
||||||
|
pTexture->Release();
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1016fd00
|
||||||
|
void TextureImpl::Destroy()
|
||||||
|
{
|
||||||
|
if (m_data) {
|
||||||
|
TextureDestroy(m_data);
|
||||||
|
m_data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Translation helpers
|
// Translation helpers
|
||||||
inline D3DRMRENDERQUALITY Translate(ShadingModel tglShadingModel)
|
inline D3DRMRENDERQUALITY Translate(ShadingModel tglShadingModel)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user