📄 ddhpalette.cpp
字号:
#include "precomp.h"
EXTERN_C DWORD WINAPI DDGPECreatePalette( LPDDHAL_CREATEPALETTEDATA pd )
{
/*
typedef struct _DDHAL_CREATEPALETTEDATA
{
LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; // ddraw palette struct
LPPALETTEENTRY lpColorTable; // colors to go in palette
HRESULT ddRVal; // return value
LPDDHAL_CREATEPALETTE CreatePalette; // PRIVATE: ptr to callback
BOOL is_excl; // process has exclusive mode
} DDHAL_CREATEPALETTEDATA;
*/
int i;
LPPALETTEENTRY ptable;
DEBUGENTER( DDGPECreatePalette );
// allocate space for the color table
ptable = new PALETTEENTRY[MAX_PALETTE_SIZE];
if (ptable == NULL)
{
pd->ddRVal = E_OUTOFMEMORY;
return DDHAL_DRIVER_HANDLED;
}
// Copy the palette entries we want into our color table and set flags
// for( i=1; i<MAX_PALETTE_SIZE-1; i++ )
// {
// ptable[i] = pd->lpColorTable[i];
// ptable[i].peFlags = 0;
// }
// ptable[0].peRed = 0;
// ptable[0].peGreen = 0;
// ptable[0].peBlue = 0;
// ptable[0].peFlags = 0;
// ptable[255].peRed = 255;
// ptable[255].peGreen = 255;
// ptable[255].peBlue = 255;
// ptable[255].peFlags = 0;
for( i=0; i<MAX_PALETTE_SIZE; i++ )
{
ptable[i] = pd->lpColorTable[i];
ptable[i].peFlags = 0;
}
pd->lpDDPalette->lpColorTable = ptable;
pd->lpDDPalette->dwFlags |= DDRAWIPAL_EXCLUSIVE;
pd->ddRVal = DD_OK;
return DDHAL_DRIVER_HANDLED;
}
//////////////////////////// DDHAL_DDPALETTECALLBACKS ////////////////////////////
EXTERN_C DWORD WINAPI DDGPEDestroyPalette( LPDDHAL_DESTROYPALETTEDATA pd )
{
DEBUGENTER( DDGPEDestroyPalette );
/*
typedef struct _DDHAL_DESTROYPALETTEDATA
{
LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; // palette struct
HRESULT ddRVal; // return value
LPDDHALPALCB_DESTROYPALETTE DestroyPalette; // PRIVATE: ptr to callback
} DDHAL_DESTROYPALETTEDATA;
*/
if (pd->lpDDPalette->dwFlags & DDRAWIPAL_EXCLUSIVE)
{
delete pd->lpDDPalette->lpColorTable;
pd->lpDDPalette->lpColorTable = NULL;
pd->lpDDPalette->dwFlags &= ~DDRAWIPAL_EXCLUSIVE;
}
pd->ddRVal = DD_OK;
return DDHAL_DRIVER_HANDLED;
}
EXTERN_C DWORD WINAPI DDGPESetEntries( LPDDHAL_SETENTRIESDATA pd )
{
DEBUGENTER( DDGPESetEntries );
/*
typedef struct _DDHAL_SETENTRIESDATA
{
LPDDRAWI_DIRECTDRAW_GBL lpDD; // driver struct
LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; // palette struct
DWORD dwBase; // base palette index
DWORD dwNumEntries; // number of palette entries
LPPALETTEENTRY lpEntries; // color table
HRESULT ddRVal; // return value
LPDDHALPALCB_SETENTRIES SetEntries; // PRIVATE: ptr to callback
} DDHAL_SETENTRIESDATA;
*/
g_pGPE->SetPalette( (PALETTEENTRY *)(pd->lpEntries),
(unsigned short)(pd->dwBase),
(unsigned short)(pd->dwNumEntries));
pd->ddRVal = DD_OK;
return DDHAL_DRIVER_HANDLED;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -