Added image renderer clip space culling 85/24085/1
authorDavid Steele <david.steele@partner.samsung.com>
Thu, 12 Jun 2014 18:11:43 +0000 (19:11 +0100)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Tue, 8 Jul 2014 13:15:33 +0000 (14:15 +0100)
commitf5e7e4ee5e26ba8584d9f568abbc1de36aa59f57
tree8aadb24af6e935e46d3ef217587c37581dda7079
parent3d7105feefa533be7c359edd5245bd8e5baaaee9
Added image renderer clip space culling

[problem]      Render thread taking too long setting up renderers that will be clipped by GPU
[solution]     Calculate which renderers are in clip space, and cull those that aren't.

Now uses OBB culling (which is relatively expensive, but still less expensive than drawing)

Adds an API to RenderTask to disable culling (enabled by default)

Change-Id: Ibe0c9c454b97fb02d8a63d17aeed9e2d4ff5d12e
Signed-off-by: David Steele <david.steele@partner.samsung.com>
40 files changed:
automated-tests/src/dali-internal/CMakeLists.txt
automated-tests/src/dali-internal/tct-dali-internal-core.h
automated-tests/src/dali-internal/utc-Dali-Internal-Image-Culling.cpp [new file with mode: 0644]
automated-tests/src/dali-internal/utc-Dali-Internal-Material.cpp
automated-tests/src/dali-internal/utc-Dali-Internal-ResourceClient.cpp
automated-tests/src/dali/dali-test-suite-utils/test-gl-abstraction.h
automated-tests/src/dali/dali-test-suite-utils/test-trace-call-stack.cpp
automated-tests/src/dali/dali-test-suite-utils/test-trace-call-stack.h
capi/dali/public-api/render-tasks/render-task.h
dali/internal/common/message.h
dali/internal/event/effects/shader-effect-impl.cpp
dali/internal/event/effects/shader-effect-impl.h
dali/internal/event/effects/shader-factory.cpp
dali/internal/event/render-tasks/render-task-impl.cpp
dali/internal/event/render-tasks/render-task-impl.h
dali/internal/render/common/render-algorithms.cpp
dali/internal/render/common/render-debug.cpp
dali/internal/render/common/render-debug.h
dali/internal/render/common/render-instruction.cpp
dali/internal/render/common/render-instruction.h
dali/internal/render/common/render-manager.cpp
dali/internal/render/gl-resources/context.h
dali/internal/render/renderers/scene-graph-image-renderer.cpp
dali/internal/render/renderers/scene-graph-image-renderer.h
dali/internal/render/renderers/scene-graph-mesh-renderer.cpp
dali/internal/render/renderers/scene-graph-mesh-renderer.h
dali/internal/render/renderers/scene-graph-renderer.cpp
dali/internal/render/renderers/scene-graph-renderer.h
dali/internal/render/renderers/scene-graph-text-renderer.cpp
dali/internal/render/renderers/scene-graph-text-renderer.h
dali/internal/render/shaders/program.cpp
dali/internal/render/shaders/program.h
dali/internal/render/shaders/shader.cpp
dali/internal/render/shaders/shader.h
dali/internal/update/manager/prepare-render-instructions.cpp
dali/internal/update/manager/update-manager.cpp
dali/internal/update/manager/update-manager.h
dali/internal/update/render-tasks/scene-graph-render-task.cpp
dali/internal/update/render-tasks/scene-graph-render-task.h
dali/public-api/render-tasks/render-task.cpp