mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-19 06:21:16 +00:00
Merge pull request #1 from foxtacles/implement-getprimarybitdepth
implement GetPrimaryBitDepth
This commit is contained in:
commit
c4dc66a3ae
@ -2,11 +2,14 @@
|
|||||||
|
|
||||||
#include "mxdirectdraw.h"
|
#include "mxdirectdraw.h"
|
||||||
|
|
||||||
|
BOOL g_paletteIndexed8 = 0;
|
||||||
|
BOOL DAT_10100c70 = 0;
|
||||||
|
|
||||||
HRESULT MxDirectDraw::SetEntries()
|
HRESULT MxDirectDraw::SetEntries()
|
||||||
{
|
{
|
||||||
HRESULT ret;
|
HRESULT ret;
|
||||||
|
|
||||||
if (m_unk848) {
|
if (m_paletteIndexed8) {
|
||||||
if (m_ddpal) {
|
if (m_ddpal) {
|
||||||
ret = m_ddpal->SetEntries(0, 0, 256, m_pal1);
|
ret = m_ddpal->SetEntries(0, 0, 256, m_pal1);
|
||||||
if (ret != DD_OK) {
|
if (ret != DD_OK) {
|
||||||
@ -49,11 +52,24 @@ void MxDirectDraw::FUN_1009e830(char *error_msg, HRESULT ret)
|
|||||||
|
|
||||||
int MxDirectDraw::GetPrimaryBitDepth()
|
int MxDirectDraw::GetPrimaryBitDepth()
|
||||||
{
|
{
|
||||||
|
DWORD dwRGBBitCount;
|
||||||
LPDIRECTDRAW pDDraw;
|
LPDIRECTDRAW pDDraw;
|
||||||
|
DDSURFACEDESC ddsd;
|
||||||
|
|
||||||
DirectDrawCreate(NULL, &pDDraw, NULL);
|
HRESULT result = DirectDrawCreate(NULL, &pDDraw, NULL);
|
||||||
|
dwRGBBitCount = 0;
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
memset(&ddsd, 0, sizeof(ddsd));
|
||||||
|
ddsd.dwSize = sizeof(ddsd);
|
||||||
|
|
||||||
return 0;
|
pDDraw->GetDisplayMode(&ddsd);
|
||||||
|
dwRGBBitCount = ddsd.ddpfPixelFormat.dwRGBBitCount;
|
||||||
|
g_paletteIndexed8 = (ddsd.ddpfPixelFormat.dwFlags & DDPF_PALETTEINDEXED8) != 0;
|
||||||
|
pDDraw->Release();
|
||||||
|
}
|
||||||
|
|
||||||
|
return dwRGBBitCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int MxDirectDraw::Pause(int param_1)
|
int MxDirectDraw::Pause(int param_1)
|
||||||
@ -69,7 +85,7 @@ int MxDirectDraw::Pause(int param_1)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_unk84c) {
|
if (m_fullScreen) {
|
||||||
if (!FlipToGDISurface()) {
|
if (!FlipToGDISurface()) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -96,7 +112,7 @@ HRESULT MxDirectDraw::FUN_1009e750()
|
|||||||
{
|
{
|
||||||
HRESULT ret;
|
HRESULT ret;
|
||||||
|
|
||||||
if (m_unk84c && m_unk848) {
|
if (m_fullScreen && m_paletteIndexed8) {
|
||||||
if (m_ddpal) {
|
if (m_ddpal) {
|
||||||
ret = m_ddpal->SetEntries(0, 0, 256, m_pal0);
|
ret = m_ddpal->SetEntries(0, 0, 256, m_pal0);
|
||||||
if (ret != DD_OK) {
|
if (ret != DD_OK) {
|
||||||
|
|||||||
@ -24,14 +24,12 @@ class MxDirectDraw
|
|||||||
PALETTEENTRY m_pal0[256]; // +0x2c
|
PALETTEENTRY m_pal0[256]; // +0x2c
|
||||||
PALETTEENTRY m_pal1[256]; // +0x42c
|
PALETTEENTRY m_pal1[256]; // +0x42c
|
||||||
HWND hWindow; // +0x83c
|
HWND hWindow; // +0x83c
|
||||||
long m_unk848;
|
BOOL m_paletteIndexed8;
|
||||||
long m_unk84c;
|
BOOL m_fullScreen;
|
||||||
void (*m_unk85c)(char *, HRESULT, long); // error handler or logger?
|
void (*m_unk85c)(char *, HRESULT, long); // error handler or logger?
|
||||||
long m_unk864;
|
long m_unk864;
|
||||||
long m_unk86c;
|
long m_unk86c;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
BOOL DAT_10100c70 = 0;
|
|
||||||
|
|
||||||
#endif // MXDIRECTDRAW_H
|
#endif // MXDIRECTDRAW_H
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user