[haiku-appserver] Re: clipping

  • From: "DarkWyrm" <bpmagic@xxxxxxxxxxxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Fri, 25 Mar 2005 12:57:18 -0500 EST

> Hi,
> while I'm still cleaning up and shuffling arround code, could someone 
> explain to me how clipping is supposed to work in app_server? The 
> clipping region is passed in the DrawData object, but what coordinate 
> space is this supposed to be in, screen space? Why is there a 
Everything which takes place in the DisplayDriver is in screen 
coordinates. I _think_ that the region objects kept in Layer are 
relative to the layer itself, if not, then they are relative to the 
parent. Adi?

> DrawBitmap call, that takes an additional clipping region? It seems 
> to 
> be the only DrawBitmap call in actual use (by ServerWindow), while 
> the 
> other one has neither a DisplayDriver nor ViewDriver implementation 
> (but DirectDriver and BitmapDriver implement it, but those are not in 
> regular use, are they?). PicturePlayer uses the second form of 
The unused one is probably cruft. PicturePlayer is so old and crusty 
that it actually has mold growing on it. :P

> DrawBitmap(), the one which isn't actually implemented. In which 
> coordinate space is the clipreg member of PicturePlayer?
> Do all drawing commands allways get the screen coordinate system? 
> What 
> about scaled and scrolled BViews, is that taken into account already? 
> If so, where is the origin of the scale supposed to be then?
All drawing commands get screen coordinates. Quite literally the idea 
is that the DisplayDriver does no coodinate conversion whatsoever -- 
all that stuff is handled by the caller, better known as What You Call 
Is What You Get. :D


Other related posts: