Hi all I've just found a pretty nasty situation.
If you create a sub surface of a surface thats offset from its parent
say negative.
Then Lock the surface. The data you get back is actually at its
parents 00 coordinate
so Locking a subsurface actuall locks the parent surface.
Further direct drawing on the subsurface is of course in the wrong
place and potentially
crashes.
This is a pretty ugly situation.
Advice ?
Snippet
window1->GetSurface( window1, &window_surface1 );
window_surface1->SetColor( window_surface1, 0xFF, 0x20, 0x20, 0xFF );
window_surface1->FillRectangle( window_surface1,
0, 0, desc.width, desc.height );
{
int pitch;
void *data;
DFBRectangle rect = {0,-100,100,200};
IDirectFBSurface *sub;
window_surface1->GetSubSurface(window_surface1,&rect,&sub);
sub->Lock(sub,DSLF_WRITE,&data,&pitch);
printf(" SUB DATA =%p \n",data);
window_surface1->Lock(window_surface1,DSLF_WRITE,&data,&pitch);
printf(" WINDOW DATA =%p \n",data);
}
Output
SUB DATA =0xb6cc3008
WINDOW DATA =0xb6cc3008
Mike
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev