Offscreen Surfaces (sprites)
a
bunch of bitmaps that can be drawn to the screen
DD supports blitter (block image transfer) for high speed drawing.
// create
surfaces
DDSURFACEDESC2
ddsd;
LPDIRECTDRAWSURFACE7
lpwork; //backSurf
memset(&ddsd,0,sizeof(ddsd));
// clear struct
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT;
ddsd.dwWidth = width;
// set height & width of image
ddsd.dwHeight = height;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN; //vram
if (lpdd->CreateSurface(&ddsd,&lpwork,NULL) != DD_OK)
// ERROR
// to create
the surface in system memory instead
ddsd.ddsCaps.dwCaps =
DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY;