mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-20 06:41:15 +00:00
SetShadingModel functions
This commit is contained in:
parent
40bb4eb1f2
commit
a18bc67d2c
@ -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
|
||||||
|
|||||||
@ -603,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;
|
||||||
|
|||||||
@ -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,5 +1,7 @@
|
|||||||
#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);
|
||||||
@ -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()
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user