We are attempting to blit a secondary onto a primary surface.
The primary is created as follows:
/* Create the primary surface */
sdsc.flags = DSDESC_CAPS |
DSDESC_WIDTH |
DSDESC_HEIGHT |
DSDESC_PIXELFORMAT;
sdsc.caps = DSCAPS_PRIMARY | DSCAPS_VIDEOONLY;
ret = s_dfb->CreateSurface( s_dfb, &sdsc, &s_primary );
Whist the secondary is created as follows:
sdsc.flags = DSDESC_CAPS |
DSDESC_WIDTH |
DSDESC_HEIGHT |
DSDESC_PIXELFORMAT |
DSDESC_PREALLOCATED;
sdsc.caps = DSCAPS_SYSTEMONLY;
sdsc.preallocated[0].data = underlay_osb.pBits;
sdsc.preallocated[0].pitch = underlay_osb.nStride;
ret = s_dfb->CreateSurface( s_dfb, &sdsc, &s_osbSurface );
s_primary->SetBlittingFlags( s_primary, DSBLIT_NOFX );
s_primary->Blit( s_primary, s_osbSurface, &clipRect, x, y );
This works but without hardware acceleration because of the "sdsc.caps =
DSCAPS_SYSTEMONLY". Not setting this parameter results in no picture on the
screen which I am unsure why. The rendering is done via third party hence the
preallocated pointers.
Any idea why I dont get a picture if I don't set the DSCAPS_SYSTEMONLY
parameter.
If not possible then one idea which I want to know if feasible is to do the
following
underlay_osb.pBits = secondary surface pointer.
Is it possible to do that and if so how could I get access to the secondary
surface pointer. Would this create other problems.
Any other suggestions/ideas would be grately appreciated.
By the way, I know that hw acceleration works since I ran df_dok.
Thanks.
Homam.
___________________________________________________________
Want ideas for reducing your carbon footprint? Visit Yahoo! For Good
http://uk.promotions.yahoo.com/forgood/environment.html
_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users