Quoting Nathanael D. Noblet:
> Hello,
>       So with some help I've moved further along to my goal, which I am
> grateful for. My next question stems from behaviour I see between
> running a DirectFB app on the vesafb (aka vga=791) and a hardware
> framebuffer driver like viafb and cyblafb. Basically, I wrote the
> application testin on a vesafb system. Now when I run it on the viafb or
> cyblafb drivers I experience the same thing and I'm unsure as to why.
> Let me attempt to describe the behaviour.
> 
> 
> The program has basically 2 screens (by screen I mean views, not
> DirectFB screens/layers etc), main menu (works fine as it is drawn and
> flipped only once). However the second screen is a little more
> complicated. It draws numerous things, and part of that is an animation
> of sorts, thus it flips many times before giving control back to the
> user. On vesafb, all of this looks perfect. On either driver, each flip
> seems to flips between the main menu (minus what I am currently drawing)
> and the new screen while the animation goes. 
> 
> So for example, if I hit the up arrow key, the up arrow flashes and a
> paragraph of text scrolls up one third. 
> 
> To do this, I set a clipping region around the arrow, redraw it
> highlighted, clear the clipping region,do a flip (this is done with NULL
> in the region), then redraw the text as follows.
> I set a clipping region around where text is written, clear it with my
> background color, blit an image (only part of it re-draws as it is
> clipped) and then draw line after line. And flip.
> 
> Obviously the problem stems from the flip with NULL as a region. However
> it didn't have a problem on vesafb. Both dfbinfo show identical output
> for vesa and the drivers. Ideas?

It also depends on the buffer mode. If the back buffer is in system memory,
it always copies the content. Flipping a sub region always copies, too.
Usinf vesafb without panning results in a system back buffer, unless you
use single buffer mode. You can force a system back buffer by setting
DSCAPS_SYSTEMONLY, if you're using DSCAPS_PRIMARY. If you're setting the
layer configuration you can choose the buffer mode directly.

I'd suggest to only flip the updated region anyways. Only flip the whole
surface if you really rendered to the whole surface.

-- 
Best regards,
  Denis Oliver Kropp
 
.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/                 |
"------------------------------------------"

_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to