Color Fills

Windows Mobile 6.5
A version of this page is also available for
4/8/2010

In order to fill all or part of a surface with a single color, you can use the IDirectDrawSurface::Blt method with the DDBLT_COLORFILL flag. This technique allows you to quickly erase an area or draw a solid-colored background.

The following code example fills an entire surface with the color blue, after obtaining the numerical value for blue from the pixel format.

Aa917010.note(en-us,MSDN.10).gifNote:
To make the following code example easier to read, security checking and error handling are not included. This code example should not be used in a release configuration unless it has been modified to include them.
/* It is assumed that lpDDS is a valid pointer to 
   an IDirectDrawSurface interface. */
 
HRESULT ddrval;
DDPIXELFORMAT ddpf;
 
ddpf.dwSize = sizeof(ddpf);
if (SUCCEEDED(lpDSS->GetPixelFormat(&ddpf))
{
    DDBLTFX ddbltfx; 
 
    ddbltfx.dwSize = sizeof(ddbltfx); 
    ddbltfx.dwFillColor = ddpf.dwBBitMask; // Pure blue
 
    ddrval = lpDDS->Blt( 
        NULL,        // Destination is entire surface
        NULL,        // No source surface
        NULL,        // No source rectangle
        DDBLT_COLORFILL, &ddbltfx); 
 
    switch(ddrval) 
    { 
        case DDERR_WASSTILLDRAWING: 
            . 
            . 
            . 
        case DDERR_SURFACELOST: 
            . 
            . 
            . 
        case DD_OK: 
            . 
            . 
            . 
        default: 
    } 
}

Community Additions

Show: