isle/LEGO1/mxdirect3drmviewport.h
2023-11-28 21:43:59 -08:00

75 lines
2.4 KiB
C++

#include "mxdirect3drmclasses.h"
// VTABLE 0x100dba28
class IMxDirect3DRMViewport : public IMxDirect3DRMObject {
public:
virtual ~IMxDirect3DRMViewport() {}
virtual IUnknown** GetHandle() = 0;
// vtable+0x08
virtual int AddLight(MxDirect3DRMFrame* p_frame) = 0;
virtual int DeleteLight(MxDirect3DRMFrame* p_frame) = 0;
// vtable+0x10
virtual int SetCamera(MxDirect3DRMFrame* p_camera) = 0;
virtual int SetProjection(int p_type) = 0;
virtual int SetPlanes(float p_near, float p_far, float p_FoV) = 0;
virtual int SetBackgroundRGB(float p_r, float p_g, float p_b) = 0;
// vtable+0x20
virtual int GetBackgroundRGB(float* p_r, float* p_g, float* p_b) = 0;
virtual int Clear() = 0;
virtual int SetCameraParent(MxDirect3DRMFrame* p_frame) = 0;
virtual int ForceUpdate(int x, int y, int width, int height) = 0;
// vtable+0x30
virtual int Transform(float* p_shiftByVector3, float* p_out) = 0;
virtual int InverseTransform(D3DRMVECTOR4D* p_in, float* p_outVector3) = 0;
virtual int unk(int p_1, int p_2, int p_3, int p_4, int p_5, int p_6) = 0;
};
struct MxDirect3DRMViewportData;
// VTABLE 0x100db9e8
class MxDirect3DRMViewport : public IMxDirect3DRMViewport {
public:
MxDirect3DRMViewport() {}
virtual ~MxDirect3DRMViewport() {}
virtual IUnknown** GetHandle();
IDirect3DRMViewport* GetViewport() { return m_pDirect3DRMViewport; }
// vtable+0x08
virtual int AddLight(MxDirect3DRMFrame* p_frame);
virtual int DeleteLight(MxDirect3DRMFrame* p_frame);
// vtable+0x10
virtual int SetCamera(MxDirect3DRMFrame* p_camera);
virtual int SetProjection(int p_type);
virtual int SetPlanes(float p_near, float p_far, float p_FoV);
virtual int SetBackgroundRGB(float p_r, float p_g, float p_b);
// vtable+0x20
virtual int GetBackgroundRGB(float* p_r, float* p_g, float* p_b);
virtual int Clear();
virtual int SetCameraParent(MxDirect3DRMFrame* p_frame);
virtual int ForceUpdate(int x, int y, int width, int height);
// vtable+0x30
virtual int Transform(float* p_shiftByVector3, float* p_out);
virtual int InverseTransform(D3DRMVECTOR4D* p_in, float* p_outVector3);
virtual int unk(int p_1, int p_2, int p_3, int p_4, int p_5, int p_6);
private:
static int unkInternal(IDirect3DRMViewport* p_viewport, int p_1, int p_2, int p_3, int p_4, int p_5, int p_6);
inline MxDirect3DRMViewportData* GetViewportData()
{
return (MxDirect3DRMViewportData*) m_pDirect3DRMViewport->GetAppData();
}
IDirect3DRMViewport* m_pDirect3DRMViewport;
};