不解!
創建主表面,
DDSURFACEDESC ddsd;
ddsd.dwSize = sizeof( ddsd );
ddsd.dwFlags = DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
ddrval = lpDD->CreateSurface( &ddsd, &lpDDSPrimary, NULL );
if( ddrval != DD_OK )return DDError(ddrval);
創建後備緩衝:
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT |DDSD_WIDTH;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY;
//改為 DDSCAPS_VIDEOMMEORY fps會降低很多,不解之處
ddsd.dwWidth = 640;
ddsd.dwHeight = 480;
ddrval = lpDD->CreateSurface(&ddsd, &lpDDSBack, NULL);
if (ddrval!=DD_OK)
return DDError(ddrval);
渲染:
lpDDSPrimary->BltFast(0,0,lpDDSBack, NULL, NULL);
為什麼我在創建後備緩衝時,在顯存中創建和在內存中創建fps變化很大,我覺得在顯存中應該更快,可為什麼實際上反而更慢!
請高手指教!
多謝1