Renderers: refactor recomposition methods
authorAdam Cheney <acheney@nvidia.com>
Fri, 10 Aug 2012 03:23:29 +0000 (20:23 -0700)
committerMichael Schuldt <michael.schuldt@bmw.de>
Fri, 24 Aug 2012 07:26:28 +0000 (09:26 +0200)
commit649723a0043f919fec0dfe4de7c839f131f7941c
treef67c92096982ece750c8f6b328f541720aa40dc8
parent58bea49d25af5862ae19ecdefcb20ae1115a7159
Renderers: refactor recomposition methods

- Adds support in GraphicSystem for accepting a LayerList to
  render, instead of only one Layer.  This enables future
  optimizations that change the rendering order.
      eg. - reverse render order to utilize depth test culling
          - draw multiple layers/surfaces at once (multitexturing)

  also includes a 'clear' flag so the background clear can be
  optimized as well.
      eg. - no need to clear obscurred pixels

- Don't reset any damage flags until after rendering has taken
  place.  Detailed damage information could be useful to the
  GraphicSystem when it is rendering.  Wait until after
  recomposition, then clear all flags. Share the routine to
  clear damage flags in the BaseWindowSystem.
12 files changed:
LayerManagerPlugins/Renderers/Graphic/CMakeLists.txt
LayerManagerPlugins/Renderers/Graphic/include/GraphicSystems/BaseGraphicSystem.h
LayerManagerPlugins/Renderers/Graphic/include/GraphicSystems/GLESGraphicSystem.h
LayerManagerPlugins/Renderers/Graphic/include/GraphicSystems/GLXGraphicsystem.h
LayerManagerPlugins/Renderers/Graphic/include/WindowSystems/BaseWindowSystem.h
LayerManagerPlugins/Renderers/Graphic/include/WindowSystems/WaylandBaseWindowSystem.h
LayerManagerPlugins/Renderers/Graphic/include/WindowSystems/X11WindowSystem.h
LayerManagerPlugins/Renderers/Graphic/src/GraphicSystems/GLESGraphicSystem.cpp
LayerManagerPlugins/Renderers/Graphic/src/GraphicSystems/GLXGraphicSystem.cpp
LayerManagerPlugins/Renderers/Graphic/src/WindowSystems/BaseWindowSystem.cpp [new file with mode: 0644]
LayerManagerPlugins/Renderers/Graphic/src/WindowSystems/WaylandBaseWindowSystem.cpp
LayerManagerPlugins/Renderers/Graphic/src/WindowSystems/X11WindowSystem.cpp