|
|
我是个directdraw初学者 请高手指教
if (DirectDrawCreate(NULL, &lpDD, NULL) != DD_OK)
return false;
if (lpDD->SetCooperativeLevel(GetActiveWindow(), DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN) != DD_OK)
return false;
// 640 480 8
if (lpDD->SetDisplayMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP) != DD_OK)
return false;
DDSURFACEDESC ddsd;
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
if (lpDD->CreateSurface(&ddsd, &lpDDSPrimary, NULL) != DD_OK)
return false;
if (lpDD->CreatePalette(DDPCAPS_8BIT | DDPCAPS_ALLOW256 | DDPCAPS_INITIALIZE,
NULL, &lpddpal, NULL) != DD_OK)
return false;//这里返回 ????
如果将第一个NULL改了(新建个PALETTEENTRY结构)就可以成功 但书上说可以为null 为什么会这样 造成这种结果的原因是? [em7] [em24] |
|