> void Draw_Image(IDirectFB *dfb, char *img, int width, int height, int lid,
> int posx, int posy) {
>
> pthread_mutex_lock( &mutex1 );
> DFBSurfaceDescription sdesc;
>
> DFBCHECK (dfb->CreateImageProvider (dfb, img, &provider));
> DFBCHECK (provider->GetSurfaceDescription
> (provider, &sdesc));
> sdesc.width = width; sdesc.height = height;
sdesc.pixelformat = ARGB; // first, you should use an ARGB surface.
>
> DFBCHECK (dfb->CreateSurface (dfb, &sdesc, &surface));
> DFBCHECK (provider->RenderTo (provider, surface, NULL));
> provider->Release (provider);
>
DFBCHECK (pFrameBuffer->SetBlittingFlags
(pFrameBuffer,DSBLIT_BLEND_ALPHACHANNEL); // Set blit flag for
blending
DFBCHECK (pFrameBuffer->SetPorterDuff( pFrameBuffer ,
DSPD_SRC ));//use alpha from source
> DFBCHECK (pFrameBuffer->Blit (pFrameBuffer, surface, NULL, posx,
> posy));
DFBCHECK (pFrameBuffer->SetBlittingFlags
(pFrameBuffer,DSBLIT_NOFX); // clear the flag
DFBCHECK (pFrameBuffer->SetPorterDuff( pFrameBuffer , DSPD_NONE ));
> DFBCHECK (pFrameBuffer->Flip (pFrameBuffer, NULL,
> DSFLIP_WAITFORSYNC));
> DFBCHECK (pFrameBuffer->Flip (pFrameBuffer, NULL, 0));
> surface->Release(surface);
> pthread_mutex_unlock( &mutex1 );
> }
>
>
> main(){
>
> DirectFBSetOptions("bg-color", "00000000");
> .
> .
> .
> DFBCHECK(
> (dfbLayers[0])->GetSurface(dfbLayers[0], &pFrameBuffer));
>
>
> Draw_Image(dfb, "background.png", 640, 480, 0, 0 , 0);
> Draw_Image(dfb, "Erawise.png", 142, 97,0,80,110);
> .
> .
> .
> }
> **pFrameBuffer is primary surface on primary layer (0).
>
>
>
> Thanks
>
>
> --
> JOY
--
Best Regards
Nikita Egorov
[EMAIL PROTECTED]
[EMAIL PROTECTED]
_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users