⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ddhpalette.cpp

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 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 + -