[haiku-appserver] Re: drawing thread

  • From: Adi Oanca <adioanca@xxxxxxxxxxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Mon, 01 Nov 2004 15:15:23 +0200

Rudolf wrote:
> Hi,
> ADI wrote:
>>>The difference between the setup as below, and the triple setup, is 
>>>that in the setup below the blit from back to front buffer has to 
>>>done and completed _during_ retrace (doable I would guess);
>>>While with the triple version you only need to flip during retrace. 
>>>Actual drawing from back to 'front' buffer may here be much slower.
>>      True. But then again, in the triple buffering schema, don't you 
>>need to draw everything in every 
>>flippable buffer? Isn't it twice slower?
> I guess you have to make sure the shown buffer is upto date in both 
> setups. So it doesn't matter then if you update the same buffer over 
> and over again, or if you do both alternatively (it's needed never at 
> the same time)

        I'd dare to say you're wrong.
        If you don't update/blit with the same area/rectangle after the page 
flip, surely you won't be 
having the same image next time when you flip.

        Again, I don't see the usefulness in having three buffers. Either way, 
you have to blit from the 
back buffer to flippsurface #2, and if the flip occurs at this time, it is 
exactly the situation 
with simple double buffering - page flipping is not useful anymore.

> Maybe it depends on implementation details like 'only updating on 
> actual changes made in backbuffer' (or not).
>>      What about apps that are directly using the frame buffer? Won't 
>>they always draw into the first 
>>flippable buffer?
> No: back buffer. As far as they are concerned this _is_ the framebuffer 
> I'd say. It's up to 'another process' to make that buffer shown after 
> the next upcoming retrace.

        I'm not entirely sure, but app_server does not know when to blit when a 
BDirectWindow is at use.

        Dunno, seems complicated when it could be done easy...


Other related posts: