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

Reply via email to