mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-20 06:41:15 +00:00
RendererImpl::CreateMeshBuilder
This commit is contained in:
parent
f00f793ab5
commit
354dbee70b
@ -114,6 +114,7 @@ class RendererImpl : public Renderer {
|
|||||||
unsigned long height,
|
unsigned long height,
|
||||||
ViewImpl& rView
|
ViewImpl& rView
|
||||||
);
|
);
|
||||||
|
inline Result CreateMeshBuilder(MeshBuilderImpl& rMesh);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RendererDataType m_data;
|
RendererDataType m_data;
|
||||||
@ -411,10 +412,9 @@ class MeshImpl : public Mesh {
|
|||||||
|
|
||||||
typedef MeshData* MeshDataType;
|
typedef MeshData* MeshDataType;
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x10170420
|
|
||||||
const MeshDataType& ImplementationData() const { return m_data; }
|
const MeshDataType& ImplementationData() const { return m_data; }
|
||||||
|
|
||||||
// FUNCTION: BETA10 0x10170440
|
// FUNCTION: BETA10 0x10171b70
|
||||||
MeshDataType& ImplementationData() { return m_data; }
|
MeshDataType& ImplementationData() { return m_data; }
|
||||||
|
|
||||||
inline void Destroy();
|
inline void Destroy();
|
||||||
@ -532,7 +532,10 @@ class MeshBuilderImpl : public MeshBuilder {
|
|||||||
|
|
||||||
typedef IDirect3DRMMesh* MeshBuilderDataType;
|
typedef IDirect3DRMMesh* MeshBuilderDataType;
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10170420
|
||||||
const MeshBuilderDataType& ImplementationData() const { return m_data; }
|
const MeshBuilderDataType& ImplementationData() const { return m_data; }
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x10170440
|
||||||
MeshBuilderDataType& ImplementationData() { return m_data; }
|
MeshBuilderDataType& ImplementationData() { return m_data; }
|
||||||
|
|
||||||
inline void Destroy();
|
inline void Destroy();
|
||||||
|
|||||||
@ -279,14 +279,33 @@ Light* RendererImpl::CreateLight(LightType type, float r, float g, float b)
|
|||||||
return pLightImpl;
|
return pLightImpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1016d8e0
|
||||||
|
inline Result RendererCreateMeshBuilder(IDirect3DRM2* pD3DRM, IDirect3DRMMesh*& rpMesh)
|
||||||
|
{
|
||||||
|
return ResultVal(pD3DRM->CreateMesh(&rpMesh));
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: BETA10 0x1016d850
|
||||||
|
inline Result RendererImpl::CreateMeshBuilder(MeshBuilderImpl& rMesh)
|
||||||
|
{
|
||||||
|
assert(m_data);
|
||||||
|
assert(!rMesh.ImplementationData());
|
||||||
|
|
||||||
|
return RendererCreateMeshBuilder(m_data, rMesh.ImplementationData());
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x100a1e90
|
// FUNCTION: LEGO1 0x100a1e90
|
||||||
|
// FUNCTION: BETA10 0x1016abf0
|
||||||
MeshBuilder* RendererImpl::CreateMeshBuilder()
|
MeshBuilder* RendererImpl::CreateMeshBuilder()
|
||||||
{
|
{
|
||||||
|
assert(m_data);
|
||||||
MeshBuilderImpl* meshBuilder = new MeshBuilderImpl();
|
MeshBuilderImpl* meshBuilder = new MeshBuilderImpl();
|
||||||
if (FAILED(m_data->CreateMesh(&meshBuilder->m_data))) {
|
|
||||||
|
if (!CreateMeshBuilder(*static_cast<MeshBuilderImpl*>(meshBuilder))) {
|
||||||
delete meshBuilder;
|
delete meshBuilder;
|
||||||
meshBuilder = NULL;
|
meshBuilder = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return meshBuilder;
|
return meshBuilder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user