mirror of
https://github.com/isledecomp/isle-portable.git
synced 2025-09-22 11:31:57 -04:00
Match a few more Tgl
functions (#1435)
* RendererImpl::CreateLight * Swap addrs for LightImpl and MeshBuilderImpl * SetShadingModel functions
This commit is contained in:
parent
544372759e
commit
451fd63eee
@ -1,5 +1,6 @@
|
|||||||
#include "impl.h"
|
#include "impl.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
#include <d3drmwin.h>
|
#include <d3drmwin.h>
|
||||||
|
|
||||||
using namespace TglImpl;
|
using namespace TglImpl;
|
||||||
@ -29,13 +30,20 @@ Result DeviceImpl::SetColorModel(ColorModel)
|
|||||||
return Success;
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1016e020
|
||||||
|
inline Result DeviceSetShadingModel(IDirect3DRMDevice2* pDevice, ShadingModel model)
|
||||||
|
{
|
||||||
|
D3DRMRENDERQUALITY renderQuality = Translate(model);
|
||||||
|
return ResultVal(pDevice->SetQuality(renderQuality));
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a2c30
|
// FUNCTION: LEGO1 0x100a2c30
|
||||||
|
// FUNCTION: BETA10 0x1016dfc0
|
||||||
Result DeviceImpl::SetShadingModel(ShadingModel model)
|
Result DeviceImpl::SetShadingModel(ShadingModel model)
|
||||||
{
|
{
|
||||||
// Doesn't match well even though we know this is exactly
|
assert(m_data);
|
||||||
// the original code thanks to the jump table.
|
|
||||||
D3DRMRENDERQUALITY renderQuality = Translate(model);
|
return DeviceSetShadingModel(m_data, model);
|
||||||
return ResultVal(m_data->SetQuality(renderQuality));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a2ca0
|
// FUNCTION: LEGO1 0x100a2ca0
|
||||||
|
@ -100,6 +100,7 @@ public:
|
|||||||
public:
|
public:
|
||||||
inline Result Create();
|
inline Result Create();
|
||||||
inline void Destroy();
|
inline void Destroy();
|
||||||
|
inline Result CreateLight(LightType type, float r, float g, float b, LightImpl& rLight);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IDirect3DRM2* m_data;
|
IDirect3DRM2* m_data;
|
||||||
@ -300,13 +301,13 @@ void CameraImpl::Destroy()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100dbaf8
|
// VTABLE: LEGO1 0x100dbaf8
|
||||||
// VTABLE: BETA10 0x101c31e0
|
// VTABLE: BETA10 0x101c3270
|
||||||
class LightImpl : public Light {
|
class LightImpl : public Light {
|
||||||
public:
|
public:
|
||||||
// FUNCTION: BETA10 0x1016b260
|
// FUNCTION: BETA10 0x1016b460
|
||||||
LightImpl() : m_data(0) {}
|
LightImpl() : m_data(0) {}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1016c7e0
|
// FUNCTION: BETA10 0x1016f5c0
|
||||||
~LightImpl() override { Destroy(); }
|
~LightImpl() override { Destroy(); }
|
||||||
|
|
||||||
void* ImplementationDataPtr() override;
|
void* ImplementationDataPtr() override;
|
||||||
@ -315,23 +316,26 @@ public:
|
|||||||
Result SetTransformation(FloatMatrix4&) override;
|
Result SetTransformation(FloatMatrix4&) override;
|
||||||
Result SetColor(float r, float g, float b) override;
|
Result SetColor(float r, float g, float b) override;
|
||||||
|
|
||||||
IDirect3DRMFrame2* ImplementationData() const { return m_data; }
|
typedef IDirect3DRMFrame2* LightDataType;
|
||||||
|
|
||||||
|
const LightDataType& ImplementationData() const { return m_data; }
|
||||||
|
LightDataType& ImplementationData() { return m_data; }
|
||||||
|
|
||||||
inline void Destroy();
|
inline void Destroy();
|
||||||
|
|
||||||
friend class RendererImpl;
|
friend class RendererImpl;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IDirect3DRMFrame2* m_data;
|
LightDataType m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x10170390
|
// FUNCTION: BETA10 0x10171220
|
||||||
inline void LightDestroy(IDirect3DRMFrame2* pLight)
|
inline void LightDestroy(IDirect3DRMFrame2* pLight)
|
||||||
{
|
{
|
||||||
pLight->Release();
|
pLight->Release();
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x10170350
|
// FUNCTION: BETA10 0x101711e0
|
||||||
void LightImpl::Destroy()
|
void LightImpl::Destroy()
|
||||||
{
|
{
|
||||||
if (m_data) {
|
if (m_data) {
|
||||||
@ -455,13 +459,13 @@ void GroupImpl::Destroy()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100dbb18
|
// VTABLE: LEGO1 0x100dbb18
|
||||||
// VTABLE: BETA10 0x101c3270
|
// VTABLE: BETA10 0x101c31e0
|
||||||
class MeshBuilderImpl : public MeshBuilder {
|
class MeshBuilderImpl : public MeshBuilder {
|
||||||
public:
|
public:
|
||||||
// FUNCTION: BETA10 0x1016b460
|
// FUNCTION: BETA10 0x1016b260
|
||||||
MeshBuilderImpl() : m_data(0) {}
|
MeshBuilderImpl() : m_data(0) {}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x1016f5c0
|
// FUNCTION: BETA10 0x1016c7e0
|
||||||
~MeshBuilderImpl() override { Destroy(); }
|
~MeshBuilderImpl() override { Destroy(); }
|
||||||
|
|
||||||
void* ImplementationDataPtr() override;
|
void* ImplementationDataPtr() override;
|
||||||
@ -504,13 +508,13 @@ private:
|
|||||||
IDirect3DRMMesh* m_data;
|
IDirect3DRMMesh* m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x10171220
|
// FUNCTION: BETA10 0x10170390
|
||||||
inline void MeshBuilderDestroy(IDirect3DRMMesh* pMeshBuilder)
|
inline void MeshBuilderDestroy(IDirect3DRMMesh* pMeshBuilder)
|
||||||
{
|
{
|
||||||
pMeshBuilder->Release();
|
pMeshBuilder->Release();
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x101711e0
|
// FUNCTION: BETA10 0x10170350
|
||||||
void MeshBuilderImpl::Destroy()
|
void MeshBuilderImpl::Destroy()
|
||||||
{
|
{
|
||||||
if (m_data) {
|
if (m_data) {
|
||||||
@ -599,6 +603,7 @@ void TextureImpl::Destroy()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Translation helpers
|
// Translation helpers
|
||||||
|
// FUNCTION: BETA10 0x1016fc40
|
||||||
inline D3DRMRENDERQUALITY Translate(ShadingModel tglShadingModel)
|
inline D3DRMRENDERQUALITY Translate(ShadingModel tglShadingModel)
|
||||||
{
|
{
|
||||||
D3DRMRENDERQUALITY renderQuality;
|
D3DRMRENDERQUALITY renderQuality;
|
||||||
@ -668,6 +673,36 @@ inline D3DVECTOR* Translate(const float tglVector[3], D3DVECTOR& rD3DVector)
|
|||||||
return &rD3DVector;
|
return &rD3DVector;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1016fd80
|
||||||
|
inline D3DRMLIGHTTYPE Translate(LightType tglLightType)
|
||||||
|
{
|
||||||
|
D3DRMLIGHTTYPE lightType;
|
||||||
|
|
||||||
|
// ??? use lookup table
|
||||||
|
switch (tglLightType) {
|
||||||
|
case Ambient:
|
||||||
|
lightType = D3DRMLIGHT_AMBIENT;
|
||||||
|
break;
|
||||||
|
case Point:
|
||||||
|
lightType = D3DRMLIGHT_POINT;
|
||||||
|
break;
|
||||||
|
case Spot:
|
||||||
|
lightType = D3DRMLIGHT_SPOT;
|
||||||
|
break;
|
||||||
|
case Directional:
|
||||||
|
lightType = D3DRMLIGHT_DIRECTIONAL;
|
||||||
|
break;
|
||||||
|
case ParallelPoint:
|
||||||
|
lightType = D3DRMLIGHT_PARALLELPOINT;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lightType = D3DRMLIGHT_AMBIENT;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return lightType;
|
||||||
|
}
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100a16d0
|
// SYNTHETIC: LEGO1 0x100a16d0
|
||||||
// SYNTHETIC: BETA10 0x10169aa0
|
// SYNTHETIC: BETA10 0x10169aa0
|
||||||
// TglImpl::RendererImpl::`scalar deleting destructor'
|
// TglImpl::RendererImpl::`scalar deleting destructor'
|
||||||
@ -689,11 +724,11 @@ inline D3DVECTOR* Translate(const float tglVector[3], D3DVECTOR& rD3DVector)
|
|||||||
// TglImpl::CameraImpl::`scalar deleting destructor'
|
// TglImpl::CameraImpl::`scalar deleting destructor'
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100a2640
|
// SYNTHETIC: LEGO1 0x100a2640
|
||||||
// SYNTHETIC: BETA10 0x1016b5f0
|
// SYNTHETIC: BETA10 0x1016ba30
|
||||||
// TglImpl::LightImpl::`scalar deleting destructor'
|
// TglImpl::LightImpl::`scalar deleting destructor'
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100a2720
|
// SYNTHETIC: LEGO1 0x100a2720
|
||||||
// SYNTHETIC: BETA10 0x1016ba30
|
// SYNTHETIC: BETA10 0x1016b5f0
|
||||||
// TglImpl::MeshBuilderImpl::`scalar deleting destructor'
|
// TglImpl::MeshBuilderImpl::`scalar deleting destructor'
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100a2800
|
// SYNTHETIC: LEGO1 0x100a2800
|
||||||
|
@ -6,7 +6,7 @@ DECOMP_SIZE_ASSERT(Light, 0x04);
|
|||||||
DECOMP_SIZE_ASSERT(LightImpl, 0x08);
|
DECOMP_SIZE_ASSERT(LightImpl, 0x08);
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a3770
|
// FUNCTION: LEGO1 0x100a3770
|
||||||
// FUNCTION: BETA10 0x1016c9f0
|
// FUNCTION: BETA10 0x1016f630
|
||||||
void* LightImpl::ImplementationDataPtr()
|
void* LightImpl::ImplementationDataPtr()
|
||||||
{
|
{
|
||||||
return reinterpret_cast<void*>(&m_data);
|
return reinterpret_cast<void*>(&m_data);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#include "impl.h"
|
#include "impl.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
using namespace TglImpl;
|
using namespace TglImpl;
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(D3DRMVERTEX, 0x24);
|
DECOMP_SIZE_ASSERT(D3DRMVERTEX, 0x24);
|
||||||
@ -49,28 +51,19 @@ Result MeshImpl::SetTextureMappingMode(TextureMappingMode mode)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10170750
|
||||||
|
inline Result MeshSetShadingModel(MeshImpl::MeshData* pMesh, ShadingModel model)
|
||||||
|
{
|
||||||
|
D3DRMRENDERQUALITY mode = Translate(model);
|
||||||
|
return ResultVal(pMesh->groupMesh->SetGroupQuality(pMesh->groupIndex, mode));
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a3fc0
|
// FUNCTION: LEGO1 0x100a3fc0
|
||||||
|
// FUNCTION: BETA10 0x101706f0
|
||||||
Result MeshImpl::SetShadingModel(ShadingModel model)
|
Result MeshImpl::SetShadingModel(ShadingModel model)
|
||||||
{
|
{
|
||||||
D3DRMRENDERQUALITY mode;
|
assert(m_data);
|
||||||
switch (model) {
|
return MeshSetShadingModel(m_data, model);
|
||||||
case Wireframe:
|
|
||||||
mode = D3DRMRENDER_WIREFRAME;
|
|
||||||
break;
|
|
||||||
case UnlitFlat:
|
|
||||||
mode = D3DRMRENDER_UNLITFLAT;
|
|
||||||
break;
|
|
||||||
case Flat:
|
|
||||||
mode = D3DRMRENDER_FLAT;
|
|
||||||
break;
|
|
||||||
case Gouraud:
|
|
||||||
mode = D3DRMRENDER_GOURAUD;
|
|
||||||
break;
|
|
||||||
case Phong:
|
|
||||||
mode = D3DRMRENDER_PHONG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return ResultVal(m_data->groupMesh->SetGroupQuality(m_data->groupIndex, mode));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a4030
|
// FUNCTION: LEGO1 0x100a4030
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
#include "impl.h"
|
#include "impl.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
using namespace TglImpl;
|
using namespace TglImpl;
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(MeshBuilder, 0x04);
|
DECOMP_SIZE_ASSERT(MeshBuilder, 0x04);
|
||||||
DECOMP_SIZE_ASSERT(MeshBuilderImpl, 0x08);
|
DECOMP_SIZE_ASSERT(MeshBuilderImpl, 0x08);
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a3830
|
// FUNCTION: LEGO1 0x100a3830
|
||||||
// FUNCTION: BETA10 0x1016f630
|
// FUNCTION: BETA10 0x1016c9f0
|
||||||
void* MeshBuilderImpl::ImplementationDataPtr()
|
void* MeshBuilderImpl::ImplementationDataPtr()
|
||||||
{
|
{
|
||||||
return reinterpret_cast<void*>(&m_data);
|
return reinterpret_cast<void*>(&m_data);
|
||||||
@ -159,12 +161,12 @@ inline Result MeshBuilderImpl::CreateMeshImpl(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a3ae0
|
// FUNCTION: BETA10 0x1016e060
|
||||||
Result MeshBuilderImpl::GetBoundingBox(float min[3], float max[3]) const
|
inline Result MeshBuilderGetBoundingBox(IDirect3DRMMesh* pMesh, float min[3], float max[3])
|
||||||
{
|
{
|
||||||
D3DRMBOX box;
|
D3DRMBOX box;
|
||||||
Result result = ResultVal(m_data->GetBox(&box));
|
Result result = ResultVal(pMesh->GetBox(&box));
|
||||||
if (result == Success) {
|
if (Succeeded(result)) {
|
||||||
min[0] = box.min.x;
|
min[0] = box.min.x;
|
||||||
min[1] = box.min.y;
|
min[1] = box.min.y;
|
||||||
min[2] = box.min.z;
|
min[2] = box.min.z;
|
||||||
@ -175,6 +177,15 @@ Result MeshBuilderImpl::GetBoundingBox(float min[3], float max[3]) const
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x100a3ae0
|
||||||
|
// FUNCTION: BETA10 0x1016ce00
|
||||||
|
Result MeshBuilderImpl::GetBoundingBox(float min[3], float max[3]) const
|
||||||
|
{
|
||||||
|
assert(m_data);
|
||||||
|
|
||||||
|
return MeshBuilderGetBoundingBox(m_data, min, max);
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a3b40
|
// FUNCTION: LEGO1 0x100a3b40
|
||||||
MeshBuilder* MeshBuilderImpl::Clone()
|
MeshBuilder* MeshBuilderImpl::Clone()
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#include "impl.h"
|
#include "impl.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
using namespace TglImpl;
|
using namespace TglImpl;
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a15e0
|
// FUNCTION: LEGO1 0x100a15e0
|
||||||
@ -156,56 +158,82 @@ Camera* RendererImpl::CreateCamera()
|
|||||||
return camera;
|
return camera;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1016d580
|
||||||
|
inline Result RendererCreateLight(
|
||||||
|
IDirect3DRM2* pD3DRM,
|
||||||
|
LightType type,
|
||||||
|
float r,
|
||||||
|
float g,
|
||||||
|
float b,
|
||||||
|
IDirect3DRMFrame2*& rpLight
|
||||||
|
)
|
||||||
|
{
|
||||||
|
D3DRMLIGHTTYPE lightType = Translate(type);
|
||||||
|
IDirect3DRMFrame2* pLightFrame;
|
||||||
|
IDirect3DRMLight* pLight;
|
||||||
|
Result result;
|
||||||
|
|
||||||
|
result = ResultVal(pD3DRM->CreateFrame(NULL, &pLightFrame));
|
||||||
|
assert(Succeeded(result));
|
||||||
|
if (!Succeeded(result)) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// pLightFrame ref count is now 1
|
||||||
|
assert((pLightFrame->AddRef(), pLightFrame->Release()) == 1);
|
||||||
|
|
||||||
|
result = ResultVal(pD3DRM->CreateLightRGB(lightType, D3DVAL(r), D3DVAL(g), D3DVAL(b), &pLight));
|
||||||
|
assert(Succeeded(result));
|
||||||
|
if (!Succeeded(result)) {
|
||||||
|
pLightFrame->Release();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// pLight ref count is now 1
|
||||||
|
assert((pLight->AddRef(), pLight->Release()) == 1);
|
||||||
|
|
||||||
|
result = ResultVal(pLightFrame->AddLight(pLight));
|
||||||
|
assert(Succeeded(result));
|
||||||
|
if (!Succeeded(result)) {
|
||||||
|
pLightFrame->Release();
|
||||||
|
pLight->Release();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
// pLightFrame ref count is still 1
|
||||||
|
assert((pLightFrame->AddRef(), pLightFrame->Release()) == 1);
|
||||||
|
|
||||||
|
// pLight ref count is now 2
|
||||||
|
assert((pLight->AddRef(), pLight->Release()) == 2);
|
||||||
|
|
||||||
|
// Release() pLight so it gets deleted when pLightFrame is Release()
|
||||||
|
pLight->Release();
|
||||||
|
|
||||||
|
rpLight = pLightFrame;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1016d4e0
|
||||||
|
inline Result RendererImpl::CreateLight(LightType type, float r, float g, float b, LightImpl& rLight)
|
||||||
|
{
|
||||||
|
assert(m_data);
|
||||||
|
assert(!rLight.ImplementationData());
|
||||||
|
|
||||||
|
return RendererCreateLight(m_data, type, r, g, b, rLight.ImplementationData());
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a1cf0
|
// FUNCTION: LEGO1 0x100a1cf0
|
||||||
|
// FUNCTION: BETA10 0x1016aa90
|
||||||
Light* RendererImpl::CreateLight(LightType type, float r, float g, float b)
|
Light* RendererImpl::CreateLight(LightType type, float r, float g, float b)
|
||||||
{
|
{
|
||||||
LightImpl* newLight = new LightImpl();
|
assert(m_data);
|
||||||
D3DRMLIGHTTYPE translatedType;
|
|
||||||
switch (type) {
|
LightImpl* pLightImpl = new LightImpl;
|
||||||
case Ambient:
|
|
||||||
translatedType = D3DRMLIGHT_AMBIENT;
|
if (!CreateLight(type, r, g, b, *pLightImpl)) {
|
||||||
break;
|
delete pLightImpl;
|
||||||
case Point:
|
pLightImpl = 0;
|
||||||
translatedType = D3DRMLIGHT_POINT;
|
|
||||||
break;
|
|
||||||
case Spot:
|
|
||||||
translatedType = D3DRMLIGHT_SPOT;
|
|
||||||
break;
|
|
||||||
case Directional:
|
|
||||||
translatedType = D3DRMLIGHT_DIRECTIONAL;
|
|
||||||
break;
|
|
||||||
case ParallelPoint:
|
|
||||||
translatedType = D3DRMLIGHT_PARALLELPOINT;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
translatedType = D3DRMLIGHT_AMBIENT;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LPDIRECT3DRMFRAME2 frame;
|
return pLightImpl;
|
||||||
Result result = ResultVal(m_data->CreateFrame(NULL, &frame));
|
|
||||||
if (Succeeded(result)) {
|
|
||||||
LPDIRECT3DRMLIGHT d3dLight;
|
|
||||||
result = ResultVal(m_data->CreateLightRGB(translatedType, r, g, b, &d3dLight));
|
|
||||||
if (!Succeeded(result)) {
|
|
||||||
frame->Release();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
result = ResultVal(frame->AddLight(d3dLight));
|
|
||||||
if (!Succeeded(result)) {
|
|
||||||
d3dLight->Release();
|
|
||||||
frame->Release();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
d3dLight->Release();
|
|
||||||
newLight->m_data = frame;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!Succeeded(result)) {
|
|
||||||
delete newLight;
|
|
||||||
newLight = NULL;
|
|
||||||
}
|
|
||||||
return newLight;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a1e90
|
// FUNCTION: LEGO1 0x100a1e90
|
||||||
|
@ -285,21 +285,21 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100dbb08
|
// VTABLE: LEGO1 0x100dbb08
|
||||||
// VTABLE: BETA10 0x101c32a0
|
// VTABLE: BETA10 0x101c3330
|
||||||
class Light : public Object {
|
class Light : public Object {
|
||||||
public:
|
public:
|
||||||
virtual Result SetTransformation(FloatMatrix4&) = 0;
|
virtual Result SetTransformation(FloatMatrix4&) = 0;
|
||||||
virtual Result SetColor(float r, float g, float b) = 0;
|
virtual Result SetColor(float r, float g, float b) = 0;
|
||||||
|
|
||||||
// SYNTHETIC: BETA10 0x1016b630
|
// SYNTHETIC: BETA10 0x1016ba70
|
||||||
// Tgl::Light::Light
|
// Tgl::Light::Light
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100a26d0
|
// SYNTHETIC: LEGO1 0x100a26d0
|
||||||
// SYNTHETIC: BETA10 0x1016b6a0
|
// SYNTHETIC: BETA10 0x1016bae0
|
||||||
// Tgl::Light::~Light
|
// Tgl::Light::~Light
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100a2aa0
|
// SYNTHETIC: LEGO1 0x100a2aa0
|
||||||
// SYNTHETIC: BETA10 0x1016bb80
|
// SYNTHETIC: BETA10 0x1016bc80
|
||||||
// Tgl::Light::`scalar deleting destructor'
|
// Tgl::Light::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -367,7 +367,7 @@ public:
|
|||||||
// was not in the leaked Tgl code. My suspicion is that it's
|
// was not in the leaked Tgl code. My suspicion is that it's
|
||||||
// some kind of builder class for creating meshes.
|
// some kind of builder class for creating meshes.
|
||||||
// VTABLE: LEGO1 0x100dbb30
|
// VTABLE: LEGO1 0x100dbb30
|
||||||
// VTABLE: BETA10 0x101c3330
|
// VTABLE: BETA10 0x101c32a0
|
||||||
class MeshBuilder : public Object {
|
class MeshBuilder : public Object {
|
||||||
public:
|
public:
|
||||||
virtual Mesh* CreateMesh(
|
virtual Mesh* CreateMesh(
|
||||||
@ -383,15 +383,15 @@ public:
|
|||||||
virtual Result GetBoundingBox(float min[3], float max[3]) const = 0;
|
virtual Result GetBoundingBox(float min[3], float max[3]) const = 0;
|
||||||
virtual MeshBuilder* Clone() = 0;
|
virtual MeshBuilder* Clone() = 0;
|
||||||
|
|
||||||
// SYNTHETIC: BETA10 0x1016ba70
|
// SYNTHETIC: BETA10 0x1016b630
|
||||||
// Tgl::MeshBuilder::MeshBuilder
|
// Tgl::MeshBuilder::MeshBuilder
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100a27b0
|
// SYNTHETIC: LEGO1 0x100a27b0
|
||||||
// SYNTHETIC: BETA10 0x1016bae0
|
// SYNTHETIC: BETA10 0x1016b6a0
|
||||||
// Tgl::MeshBuilder::~MeshBuilder
|
// Tgl::MeshBuilder::~MeshBuilder
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x100a2b10
|
// SYNTHETIC: LEGO1 0x100a2b10
|
||||||
// SYNTHETIC: BETA10 0x1016bc80
|
// SYNTHETIC: BETA10 0x1016bb80
|
||||||
// Tgl::MeshBuilder::`scalar deleting destructor'
|
// Tgl::MeshBuilder::`scalar deleting destructor'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user