mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-19 22:31:15 +00:00
SetShadingModel functions
This commit is contained in:
parent
40bb4eb1f2
commit
a18bc67d2c
@ -1,5 +1,6 @@
|
||||
#include "impl.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <d3drmwin.h>
|
||||
|
||||
using namespace TglImpl;
|
||||
@ -29,13 +30,20 @@ Result DeviceImpl::SetColorModel(ColorModel)
|
||||
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: BETA10 0x1016dfc0
|
||||
Result DeviceImpl::SetShadingModel(ShadingModel model)
|
||||
{
|
||||
// Doesn't match well even though we know this is exactly
|
||||
// the original code thanks to the jump table.
|
||||
D3DRMRENDERQUALITY renderQuality = Translate(model);
|
||||
return ResultVal(m_data->SetQuality(renderQuality));
|
||||
assert(m_data);
|
||||
|
||||
return DeviceSetShadingModel(m_data, model);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100a2ca0
|
||||
|
||||
@ -603,6 +603,7 @@ void TextureImpl::Destroy()
|
||||
}
|
||||
|
||||
// Translation helpers
|
||||
// FUNCTION: BETA10 0x1016fc40
|
||||
inline D3DRMRENDERQUALITY Translate(ShadingModel tglShadingModel)
|
||||
{
|
||||
D3DRMRENDERQUALITY renderQuality;
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
#include "impl.h"
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
using namespace TglImpl;
|
||||
|
||||
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: BETA10 0x101706f0
|
||||
Result MeshImpl::SetShadingModel(ShadingModel model)
|
||||
{
|
||||
D3DRMRENDERQUALITY mode;
|
||||
switch (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));
|
||||
assert(m_data);
|
||||
return MeshSetShadingModel(m_data, model);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100a4030
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
#include "impl.h"
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
using namespace TglImpl;
|
||||
|
||||
DECOMP_SIZE_ASSERT(MeshBuilder, 0x04);
|
||||
@ -159,12 +161,12 @@ inline Result MeshBuilderImpl::CreateMeshImpl(
|
||||
);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100a3ae0
|
||||
Result MeshBuilderImpl::GetBoundingBox(float min[3], float max[3]) const
|
||||
// FUNCTION: BETA10 0x1016e060
|
||||
inline Result MeshBuilderGetBoundingBox(IDirect3DRMMesh* pMesh, float min[3], float max[3])
|
||||
{
|
||||
D3DRMBOX box;
|
||||
Result result = ResultVal(m_data->GetBox(&box));
|
||||
if (result == Success) {
|
||||
Result result = ResultVal(pMesh->GetBox(&box));
|
||||
if (Succeeded(result)) {
|
||||
min[0] = box.min.x;
|
||||
min[1] = box.min.y;
|
||||
min[2] = box.min.z;
|
||||
@ -175,6 +177,15 @@ Result MeshBuilderImpl::GetBoundingBox(float min[3], float max[3]) const
|
||||
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
|
||||
MeshBuilder* MeshBuilderImpl::Clone()
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user