On Tue, Nov 11, 2008 at 6:15 PM, Niels Roest <[EMAIL PROTECTED]> wrote:

> A surface manager is used to manage surfaces, not buffers. You can not
> manage buffers separately.
> The concept is layered.
> At the top is the screen - what you are watching.
> Below are the layer(s) - these are normally the display layers of your
> hardware.
> Then you get the surfaces. Surfaces are flexible, so they can be tied to a
> layer - one surface to one layer - or they can be used as a generic drawing
> canvas. Example: you create a surface, fill it with tux.png, and then blit
> from this surface to a layer surface as much penguins as you like (df_andi).
> A surface manager can manage these surfaces. In a complex system you can
> have multiple types of memory, like GPU, CPU, different memory speeds; you
> can define a surface manager for each of these cases, and DirectFB will,
> when a surface is created by the user, look for the optimal manager to query
> for a surface (+buffer(s)).



I'm still missing something here:
1. I can control the configuration of the screen (capabilities including
number of layers etc') by providing my own callbacks with the "my_screen =
dfb_screens_register(..)" which I use in my "driver_init_driver".
2. I can control the configuration of layers for that screen (including
number of regions but nothing about surfaces that I noticed) by providing my
own callbacks with "dfb_layers_register(my_screen, ...)"

But where do I then control surfaces for the layer? How do I have a layer
"tied" as you say to a certain surface, and how do I let DFB create the
"off-screen" (using X nomenclature) surfaces on my non-layer-tied HW buffer?

I am also still confused about double buffering - layer has a "buffermode"
field. Surface capabilities have a "DSCAPS_DOUBLE" option.
_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to