Hi,

On Fri, 2012-05-04 at 03:48 -0700, Marc Lantelme wrote:
> DFBCHECK(gWavePeerPrimary->SetBlittingFlags(gWavePeerPrimary,
> DSBLIT_BLEND_ALPHACHANNEL));
> DFBCHECK(gWavePeerPrimary->SetDrawingFlags(gWavePeerPrimary, DSDRAW_BLEND));

DirectFB's default blend mode is not a porter duff mode, which has two
implications:
- blend results are unexpected and not what you want
- this blend mode can only be accelerated in very specific cases with
the driver you are using.

You might want to 
surface->SetPorterDuff (surface, DSPD_SRC_OVER);


> desc.flags  = 0;
> desc.flags |= DSDESC_WIDTH | DSDESC_HEIGHT;
> desc.flags |= DSDESC_PIXELFORMAT;
> desc.flags |= DSDESC_PREALLOCATED;
> desc.caps = DSCAPS_VIDEOONLY;
> 
> desc.width  = in_bitmapwidth; /* width of bitmap to display */
> desc.height = in_bitmapheight; /* heigh of bitmap to display */
> desc.pixelformat = DSPF_ARGB;
> 
> desc.preallocated[0].data = in_bitmap;
> desc.preallocated[0].pitch = 512 or 1024; /* depending on width of bitmap to
> display */
> desc.preallocated[1].data = NULL;
> desc.preallocated[1].pitch = 0;
> 
> DFBCHECK(gWavePeerDfb->CreateSurface(gWavePeerDfb, &desc, &newSurface));

The hardware can not access virtual memory, hence operations using this
surface will always be done in software.


Cheers,
Andre'


_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to