"Fossies" - the Fresh Open Source Software Archive

Member "gnash-0.8.10/librender/README" (19 Jan 2012, 2454 Bytes) of package /linux/www/old/gnash-0.8.10.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 There is a process here that has to happen in a specific order. The
    2 first step is to initialize the base hardware platform. Normally for
    3 X11 you can assume this has already happened. If using EGL from Mesa
    4 on X11, then we stil need to do this step, as EGL is out interface,
    5 not X11.
    6 
    7 After the device layer is initialized, then the renderer gets
    8 created. This is just the base initilization though, as the rest needs
    9 a window to draw into. So the next step after initilizing the renderer
   10 is to initialize the GUI. For a framebuffer, either EGL or DirectFB
   11 are used on the bare device.
   12 
   13 Once the GUI is initilized, it can then pass the window for the
   14 renderer to draw into. The renderer initizlizes a surface using the
   15 window handle, and then make that surface the current context.
   16 
   17 Rendering always happens in a back buffer, and is merely swapped with
   18 the displayed one after rendering.
   19 
   20 The main difference between how the Gnash renderers used to work and
   21 the way they work now is they have gained device knowledge. In the
   22 embedded world, all GPUs have varying levels of acceleration
   23 support. This functionality is probed at runtime now, and the optimal
   24 acceleration support selected automatically. For the features without
   25 hardware accleration available, they will be renderered in software.
   26 
   27 This allows us Gnash to take advantage of each GPUs support where it
   28 best makes sense. Until recently, Gnash just depended on whatever the
   29 X11 desktop supplied. To run properly without X11 though, requires the
   30 ability in Gnash to supply the missing support.
   31 
   32 Currently 3 devices are supported, as these are the most portable. The
   33 primary default device is EGL, as it's used by OpenVG, OpenGLES1, and
   34 OpenGLES2, on both embedded and desktop platforms. When using Gallium
   35 drivers under libMesa, EGL supports hardware acceleration for the
   36 higher level libraries.
   37 
   38 The DirectFB device is a bit of a special case, as it's both an
   39 accleration library and a GUI toolkit. So this one has support in both
   40 librender and gui libraries. For rendering, only the device specific
   41 parts of DirectFB are used.
   42 
   43 The X11 device is primarily for testing and for running EGL on
   44 X11. This makes X11 follow the same API as the other devices, and
   45 allows simple window creation via xlib for testing renderers.
   46 
   47 GnashDevice
   48 	> EglDevice
   49 	> X11Device
   50 	> DirectFBDevice
   51 
   52 Renderer
   53 	> Renderer_base_agg
   54 	  > Renderer_agg
   55 	> Renderer_ogl
   56 	> Renderer_gles1
   57 	> Renderer_gles2
   58 	> Renderer_ovg