[haiku-appserver] Re: link->Flush()

  • From: Adi Oanca <adioanca@xxxxxxxxxxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Wed, 27 Apr 2005 15:31:27 +0300

Stephan Assmus wrote:
> Me again... another thing: When is the link in BView supposed to be 
> flushed? For some calls, it is flushed, for others not. I noticed that 
> messages don't get processed in ServerWindow until the link is flushed. 
> What is the design intention here?

        Usually drawing methods don't flush, their data is buffered and sent
in a single chunk. Other BView methods need some data from the server and
those must flush. Others should send data ASAP to the server.

        The basic idea is this: cache drawing messages and send them in a
single message, for the rest use the "normal" approach (Flush() (and read
reply))

        Note that the buffer is flushed after an update is over (all ::Draw()
methods in tree have been called).


        I will respond to you previous mail when I get home, because I want
to look into R5's BView header.
        In short: In BView, you have fBounds to hold the view's area, and
originX/Y to hold the position in parent coordinates. In Layer class it's
the other way around, you have fFrame and fBoundsLeftTop to compute Layer's
bounds rectangle.
        I know it's strange, it seemed like that to me also, but when I
came to work on app_server I observed Layer::Frame() was used a lot, and I
just adapted/make_the_translation.
        You can make this more clear if you want...

bye,
Adi.

Other related posts: