---------------------------------------------------------------------
#define DDR_PREPROCESS_ADDR    0xA88CA000
void legato_preprocessImages_runtime(void)
{
    size_t AddressDDR = DDR_PREPROCESS_ADDR;

    leImage *pPreProcessImages[] =  {  &mchpLogo_small, &MHGS_logo_smaller,
                                       &QuickstartDown_WQVGA, &QuickstartUp_WQVGA,
                                       &StartStop_Start, &StartStop_StartPressed,
                                       &StartStop_Stop, &StartStop_StopPressed };

    for( int i=0 ; i<sizeof(pPreProcessImages)/sizeof(leImage*) ; i++ )
    {
        leProcessImage(pPreProcessImages[i], AddressDDR, pPreProcessImages[i]->buffer.mode);
        AddressDDR = AddressDDR + (pPreProcessImages[i]->buffer.buffer_length);
        AddressDDR = AddressDDR + (AddressDDR%16?16-(AddressDDR%16):0);
    }
}

---------------------------------------------------------------------
    legato_preprocessImages_runtime();

---------------------------------------------------------------------
void leImageToCanvas( uint32_t canvasID, leImage *Image, int32_t X, int32_t Y, uint8_t Alpha )
{
    int32_t W, H;
    leBuffer *PixelBuffer;

    W = Image->buffer.size.width;
    H = Image->buffer.size.height;
    PixelBuffer = Image->buffer.pixels;
    gfxcSetWindowSize( canvasID, W, H );
    gfxcSetPixelBuffer( canvasID, W, H, GFX_COLOR_MODE_RGBA_8888, PixelBuffer );
    gfxcSetWindowPosition( canvasID, X, Y );
    gfxcSetWindowAlpha( canvasID, Alpha );
    gfxcShowCanvas( canvasID );
    gfxcCanvasUpdate( canvasID );
}

---------------------------------------------------------------------
        leImageToCanvas( CANVAS_ID_1, &StartStop_Stop, 149, 256, 255 );

---------------------------------------------------------------------
