mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 15:37:55 -05:00
Add GetDeviceModeFinder to WndProc (#102)
This commit is contained in:
parent
b59d8ef5cf
commit
d41b7f2ca4
5 changed files with 43 additions and 13 deletions
|
@ -357,7 +357,7 @@ LRESULT WINAPI WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
}
|
||||
return DefWindowProcA(hWnd, uMsg, wParam, lParam);
|
||||
case WM_DISPLAYCHANGE:
|
||||
if (g_isle && VideoManager() && g_isle->m_fullScreen && VideoManager()->m_unk74 && VideoManager()->m_unk74[0x220]) {
|
||||
if (g_isle && VideoManager() && g_isle->m_fullScreen && VideoManager()->GetDirect3D() && VideoManager()->GetDirect3D()->GetDeviceModeFinder()) {
|
||||
int targetWidth = LOWORD(lParam);
|
||||
int targetHeight = HIWORD(lParam);
|
||||
int targetDepth = wParam;
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
#define LEGOVIDEOMANAGER_H
|
||||
|
||||
#include "mxvideomanager.h"
|
||||
#include "mxdirect3d.h"
|
||||
#include "lego3dmanager.h"
|
||||
#include "decomp.h"
|
||||
|
||||
// VTABLE 0x100d9c88
|
||||
// SIZE 0x590
|
||||
|
@ -18,13 +20,16 @@ class LegoVideoManager : public MxVideoManager
|
|||
__declspec(dllexport) void MoveCursor(int x, int y);
|
||||
|
||||
inline Lego3DManager *Get3DManager() { return this->m_3dManager; }
|
||||
inline MxDirect3D *GetDirect3D() { return this->m_direct3d; }
|
||||
|
||||
void SetSkyColor(float r, float g, float b);
|
||||
|
||||
int m_unk64;
|
||||
private:
|
||||
undefined4 m_unk64;
|
||||
Lego3DManager *m_3dManager;
|
||||
int m_unk6c;
|
||||
int m_unk70;
|
||||
int *m_unk74;
|
||||
undefined4 m_unk6c;
|
||||
undefined4 m_unk70;
|
||||
MxDirect3D *m_direct3d;
|
||||
};
|
||||
|
||||
#endif // LEGOVIDEOMANAGER_H
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
#ifndef MXDIRECT3D_H
|
||||
#define MXDIRECT3D_H
|
||||
|
||||
#include "mxdirectdraw.h"
|
||||
#include "decomp.h"
|
||||
|
||||
#include <d3d.h>
|
||||
|
||||
class MxDeviceModeFinder;
|
||||
|
||||
// SIZE 0x894
|
||||
class MxDirect3D : public MxDirectDraw
|
||||
{
|
||||
public:
|
||||
inline MxDeviceModeFinder *GetDeviceModeFinder() { return this->m_pDeviceModeFinder; };
|
||||
|
||||
private:
|
||||
MxDeviceModeFinder *m_pDeviceModeFinder;
|
||||
IDirect3D *m_pDirect3d;
|
||||
IDirect3DDevice *m_pDirect3dDevice;
|
||||
undefined4 m_unk88c;
|
||||
undefined4 m_unk890;
|
||||
};
|
||||
|
||||
#endif // MXDIRECT3D_H
|
|
@ -2,6 +2,7 @@
|
|||
#include "mxdirectdraw.h"
|
||||
#include "decomp.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(MxDirectDraw, 0x880);
|
||||
|
||||
#ifndef DDSCAPS_3DDEVICE
|
||||
#define DDSCAPS_3DDEVICE 0x00002000l
|
||||
|
@ -100,7 +101,7 @@ int MxDirectDraw::GetPrimaryBitDepth()
|
|||
dwRGBBitCount = ddsd.ddpfPixelFormat.dwRGBBitCount;
|
||||
g_is_PALETTEINDEXED8 = (ddsd.ddpfPixelFormat.dwFlags & DDPF_PALETTEINDEXED8) != 0;
|
||||
pDDraw->Release();
|
||||
}
|
||||
}
|
||||
|
||||
return dwRGBBitCount;
|
||||
}
|
||||
|
@ -738,7 +739,7 @@ BOOL MxDirectDraw::DDSetMode(int width, int height, int bpp)
|
|||
|
||||
EnableResizing(m_hWndMain, FALSE);
|
||||
|
||||
if (!m_bIsOnPrimaryDevice)
|
||||
if (!m_bIsOnPrimaryDevice)
|
||||
{
|
||||
lpDD = NULL;
|
||||
result = DirectDrawCreate(0, &lpDD, 0);
|
||||
|
@ -1096,7 +1097,7 @@ BOOL MxDirectDraw::SetPaletteEntries(
|
|||
|
||||
if (m_pPalette != NULL)
|
||||
{
|
||||
HRESULT result;
|
||||
HRESULT result;
|
||||
result = m_pPalette->SetEntries(0, 0, _countof(m_paletteEntries), m_paletteEntries);
|
||||
if (result != DD_OK)
|
||||
{
|
||||
|
@ -1194,13 +1195,12 @@ void MxDirectDraw::FUN_1009E020()
|
|||
line = (byte*)ddsd.lpSurface;
|
||||
for (j = ddsd.dwHeight; j-- ;)
|
||||
{
|
||||
memset(line, 0, ddsd.dwWidth);
|
||||
line += ddsd.lPitch;
|
||||
memset(line, 0, ddsd.dwWidth);
|
||||
line += ddsd.lPitch;
|
||||
}
|
||||
|
||||
m_pBackBuffer->Unlock(ddsd.lpSurface);
|
||||
|
||||
|
||||
if (m_bFlipSurfaces)
|
||||
{
|
||||
m_pFrontBuffer->Flip(NULL, DDFLIP_WAIT);
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
#define MXDIRECTDRAW_H
|
||||
|
||||
#include <ddraw.h>
|
||||
#include <Windows.h>
|
||||
#include <windows.h>
|
||||
|
||||
extern BOOL g_is_PALETTEINDEXED8;
|
||||
|
||||
//size 0x880
|
||||
// SIZE 0x880
|
||||
class MxDirectDraw
|
||||
{
|
||||
public:
|
||||
|
|
Loading…
Reference in a new issue