mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-23 16:21:15 +00:00
Introduce LPD3DRM_APPDATA typedef for setting d3drm appdata
This commit is contained in:
parent
c9c130eb87
commit
aa82c95b5c
@ -430,6 +430,7 @@ if (ISLE_USE_SMARTHEAP)
|
|||||||
endif()
|
endif()
|
||||||
foreach(tgt IN LISTS lego1_targets)
|
foreach(tgt IN LISTS lego1_targets)
|
||||||
target_link_libraries(${tgt} PRIVATE $<$<BOOL:${ISLE_USE_DX5}>:DirectX5::DirectX5>)
|
target_link_libraries(${tgt} PRIVATE $<$<BOOL:${ISLE_USE_DX5}>:DirectX5::DirectX5>)
|
||||||
|
target_compile_definitions(${tgt} PRIVATE $<$<BOOL:${ISLE_USE_DX5}>:DIRECTX5_SDK>)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Make sure filenames are ALL CAPS
|
# Make sure filenames are ALL CAPS
|
||||||
|
|||||||
@ -5,6 +5,12 @@
|
|||||||
|
|
||||||
#include <d3drm.h>
|
#include <d3drm.h>
|
||||||
|
|
||||||
|
#ifdef DIRECTX5_SDK
|
||||||
|
typedef DWORD LPD3DRM_APPDATA;
|
||||||
|
#else
|
||||||
|
typedef LPVOID LPD3DRM_APPDATA;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Forward declare D3D types
|
// Forward declare D3D types
|
||||||
struct IDirect3DRM2;
|
struct IDirect3DRM2;
|
||||||
struct IDirect3DRMDevice2;
|
struct IDirect3DRMDevice2;
|
||||||
|
|||||||
@ -15,16 +15,16 @@ void TextureDestroyCallback(IDirect3DRMObject* pObject, void* pArg);
|
|||||||
// FUNCTION: LEGO1 0x100a12a0
|
// FUNCTION: LEGO1 0x100a12a0
|
||||||
Result TextureImpl::SetImage(IDirect3DRMTexture* pSelf, TglD3DRMIMAGE* pImage)
|
Result TextureImpl::SetImage(IDirect3DRMTexture* pSelf, TglD3DRMIMAGE* pImage)
|
||||||
{
|
{
|
||||||
unsigned long appData;
|
void* appData;
|
||||||
Result result;
|
Result result;
|
||||||
|
|
||||||
appData = reinterpret_cast<unsigned long>(pImage);
|
appData = pImage;
|
||||||
|
|
||||||
// This is here because in the original code they asserted
|
// This is here because in the original code they asserted
|
||||||
// on the return value being NULL.
|
// on the return value being NULL.
|
||||||
TextureGetImage(pSelf);
|
TextureGetImage(pSelf);
|
||||||
|
|
||||||
result = ResultVal(pSelf->SetAppData(appData));
|
result = ResultVal(pSelf->SetAppData((LPD3DRM_APPDATA) appData));
|
||||||
if (Succeeded(result) && pImage) {
|
if (Succeeded(result) && pImage) {
|
||||||
result = ResultVal(pSelf->AddDestroyCallback(TextureDestroyCallback, NULL));
|
result = ResultVal(pSelf->AddDestroyCallback(TextureDestroyCallback, NULL));
|
||||||
if (!Succeeded(result)) {
|
if (!Succeeded(result)) {
|
||||||
|
|||||||
@ -50,7 +50,7 @@ Result ViewImpl::ViewportCreateAppData(IDirect3DRM2* pDevice, IDirect3DRMViewpor
|
|||||||
{
|
{
|
||||||
ViewportAppData* data = new ViewportAppData(pDevice);
|
ViewportAppData* data = new ViewportAppData(pDevice);
|
||||||
data->m_pCamera = pCamera;
|
data->m_pCamera = pCamera;
|
||||||
Result result = ResultVal(pView->SetAppData(reinterpret_cast<unsigned long>(data)));
|
Result result = ResultVal(pView->SetAppData(reinterpret_cast<LPD3DRM_APPDATA>(data)));
|
||||||
if (Succeeded(result)) {
|
if (Succeeded(result)) {
|
||||||
result = ResultVal(pView->AddDestroyCallback(ViewportDestroyCallback, data));
|
result = ResultVal(pView->AddDestroyCallback(ViewportDestroyCallback, data));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,7 +29,7 @@ float g_unk0x1010105c = 0.000125F;
|
|||||||
// GLOBAL: LEGO1 0x10101060
|
// GLOBAL: LEGO1 0x10101060
|
||||||
float g_elapsedSeconds = 0;
|
float g_elapsedSeconds = 0;
|
||||||
|
|
||||||
inline void SetAppData(ViewROI* p_roi, DWORD data);
|
inline void SetAppData(ViewROI* p_roi, LPD3DRM_APPDATA data);
|
||||||
inline undefined4 GetD3DRM(IDirect3DRM2*& d3drm, Tgl::Renderer* pRenderer);
|
inline undefined4 GetD3DRM(IDirect3DRM2*& d3drm, Tgl::Renderer* pRenderer);
|
||||||
inline undefined4 GetFrame(IDirect3DRMFrame2*& frame, Tgl::Group* scene);
|
inline undefined4 GetFrame(IDirect3DRMFrame2*& frame, Tgl::Group* scene);
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ void ViewManager::UpdateROIDetailBasedOnLOD(ViewROI* p_roi, int p_und)
|
|||||||
|
|
||||||
if (lod->GetUnknown0x08() & ViewLOD::c_bit4) {
|
if (lod->GetUnknown0x08() & ViewLOD::c_bit4) {
|
||||||
scene->Add((Tgl::MeshBuilder*) group);
|
scene->Add((Tgl::MeshBuilder*) group);
|
||||||
SetAppData(p_roi, (DWORD) p_roi);
|
SetAppData(p_roi, reinterpret_cast<LPD3DRM_APPDATA>(p_roi));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -187,7 +187,7 @@ void ViewManager::UpdateROIDetailBasedOnLOD(ViewROI* p_roi, int p_und)
|
|||||||
|
|
||||||
if (meshBuilder != NULL) {
|
if (meshBuilder != NULL) {
|
||||||
group->Add(meshBuilder);
|
group->Add(meshBuilder);
|
||||||
SetAppData(p_roi, (DWORD) p_roi);
|
SetAppData(p_roi, reinterpret_cast<LPD3DRM_APPDATA>(p_roi));
|
||||||
p_roi->SetUnknown0xe0(p_und);
|
p_roi->SetUnknown0xe0(p_und);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -533,7 +533,7 @@ ViewROI* ViewManager::Pick(Tgl::View* p_view, unsigned long x, unsigned long y)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void SetAppData(ViewROI* p_roi, DWORD data)
|
inline void SetAppData(ViewROI* p_roi, LPD3DRM_APPDATA data)
|
||||||
{
|
{
|
||||||
IDirect3DRMFrame2* frame = NULL;
|
IDirect3DRMFrame2* frame = NULL;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user