mirror of
				https://github.com/isledecomp/isle.git
				synced 2025-10-26 01:44:19 +00:00 
			
		
		
		
	 51adf75b9b
			
		
	
	51adf75b9b
	
	
	
		
			
			* Use more forward declarations * Use more forward declarations * Add more forward declarations * Fix
		
			
				
	
	
		
			131 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef MXDISPLAYSURFACE_H
 | |
| #define MXDISPLAYSURFACE_H
 | |
| 
 | |
| #include "decomp.h"
 | |
| #include "mxcore.h"
 | |
| #include "mxvideoparam.h"
 | |
| 
 | |
| #include <ddraw.h>
 | |
| 
 | |
| class MxBitmap;
 | |
| class MxPalette;
 | |
| 
 | |
| // VTABLE: LEGO1 0x100dc768
 | |
| // SIZE 0xac
 | |
| class MxDisplaySurface : public MxCore {
 | |
| public:
 | |
| 	MxDisplaySurface();
 | |
| 	~MxDisplaySurface() override;
 | |
| 
 | |
| 	virtual MxResult Init(
 | |
| 		MxVideoParam& p_videoParam,
 | |
| 		LPDIRECTDRAWSURFACE p_ddSurface1,
 | |
| 		LPDIRECTDRAWSURFACE p_ddSurface2,
 | |
| 		LPDIRECTDRAWCLIPPER p_ddClipper
 | |
| 	);                                                   // vtable+0x14
 | |
| 	virtual MxResult Create(MxVideoParam& p_videoParam); // vtable+0x18
 | |
| 	virtual void Destroy();                              // vtable+0x1c
 | |
| 	virtual void SetPalette(MxPalette* p_palette);       // vtable+0x20
 | |
| 	virtual void VTable0x24(
 | |
| 		LPDDSURFACEDESC,
 | |
| 		MxBitmap*,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4
 | |
| 	); // vtable+0x24
 | |
| 	virtual void VTable0x28(
 | |
| 		MxBitmap* p_bitmap,
 | |
| 		MxS32 p_left,
 | |
| 		MxS32 p_top,
 | |
| 		MxS32 p_right,
 | |
| 		MxS32 p_bottom,
 | |
| 		MxS32 p_width,
 | |
| 		MxS32 p_height
 | |
| 	); // vtable+0x28
 | |
| 	virtual MxBool VTable0x2c(
 | |
| 		LPDDSURFACEDESC,
 | |
| 		MxBitmap*,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		MxBool
 | |
| 	); // vtable+0x2c
 | |
| 	virtual void VTable0x30(
 | |
| 		MxBitmap* p_bitmap,
 | |
| 		MxS32 p_left,
 | |
| 		MxS32 p_top,
 | |
| 		MxS32 p_right,
 | |
| 		MxS32 p_bottom,
 | |
| 		MxS32 p_width,
 | |
| 		MxS32 p_height,
 | |
| 		MxBool p_und
 | |
| 	); // vtable+0x30
 | |
| 	virtual undefined4 VTable0x34(
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4,
 | |
| 		undefined4
 | |
| 	); // vtable+0x34
 | |
| 	virtual void Display(
 | |
| 		MxS32 p_left,
 | |
| 		MxS32 p_top,
 | |
| 		MxS32 p_left2,
 | |
| 		MxS32 p_top2,
 | |
| 		MxS32 p_width,
 | |
| 		MxS32 p_height
 | |
| 	);                                 // vtable+0x38
 | |
| 	virtual void GetDC(HDC* p_hdc);    // vtable+0x3c
 | |
| 	virtual void ReleaseDC(HDC p_hdc); // vtable+0x40
 | |
| 	virtual LPDIRECTDRAWSURFACE VTable0x44(
 | |
| 		MxBitmap* p_bitmap,
 | |
| 		undefined4* p_ret,
 | |
| 		undefined4 p_doNotWriteToSurface,
 | |
| 		undefined4 p_transparent
 | |
| 	); // vtable+0x44
 | |
| 
 | |
| 	void ClearScreen();
 | |
| 	static LPDIRECTDRAWSURFACE CreateCursorSurface();
 | |
| 	static LPDIRECTDRAWSURFACE CopySurface(LPDIRECTDRAWSURFACE p_src);
 | |
| 
 | |
| 	inline LPDIRECTDRAWSURFACE GetDirectDrawSurface1() { return this->m_ddSurface1; }
 | |
| 	inline LPDIRECTDRAWSURFACE GetDirectDrawSurface2() { return this->m_ddSurface2; }
 | |
| 	inline MxVideoParam& GetVideoParam() { return this->m_videoParam; }
 | |
| 
 | |
| 	static void FUN_100bb500(
 | |
| 		MxU8** p_bitmapData,
 | |
| 		MxU8** p_surfaceData,
 | |
| 		MxU32 p_bitmapSize,
 | |
| 		MxS32 p_width,
 | |
| 		MxS32 p_height,
 | |
| 		MxLong p_pitch,
 | |
| 		MxU32 p_bpp
 | |
| 	);
 | |
| 
 | |
| private:
 | |
| 	MxU8 CountTotalBitsSetTo1(MxU32 p_param);
 | |
| 	MxU8 CountContiguousBitsSetTo1(MxU32 p_param);
 | |
| 
 | |
| 	void Init();
 | |
| 
 | |
| 	MxVideoParam m_videoParam;        // 0x08
 | |
| 	LPDIRECTDRAWSURFACE m_ddSurface1; // 0x2c
 | |
| 	LPDIRECTDRAWSURFACE m_ddSurface2; // 0x30
 | |
| 	LPDIRECTDRAWCLIPPER m_ddClipper;  // 0x34
 | |
| 	MxBool m_initialized;             // 0x38
 | |
| 	DDSURFACEDESC m_surfaceDesc;      // 0x3c
 | |
| 	MxU16* m_16bitPal;                // 0xa8
 | |
| };
 | |
| 
 | |
| // SYNTHETIC: LEGO1 0x100ba580
 | |
| // MxDisplaySurface::`scalar deleting destructor'
 | |
| 
 | |
| #endif // MXDISPLAYSURFACE_H
 |