diff options
author | Robert Bragg <robert@linux.intel.com> | 2011-02-01 18:32:08 +0000 |
---|---|---|
committer | Robert Bragg <robert@linux.intel.com> | 2011-03-07 13:26:20 +0000 |
commit | 19b86229831a049e8f337e2d7a7a4782961b664c (patch) | |
tree | a042491b95e6aa7bcb2a75c9cc985497a0a45027 /clutter/clutter-stage-private.h | |
parent | eef9078f892c3b042beed65288c3581d225c4f46 (diff) | |
download | clutter-19b86229831a049e8f337e2d7a7a4782961b664c.tar.gz |
Optimize culling by doing culling in eye-coordinates
This implements a variation of frustum culling whereby we convert screen
space clip rectangles into eye space mini-frustums so that we don't have
to repeatedly transform actor paint-volumes all the way into screen
coordinates to perform culling, we just have to apply the modelview
transform and then determine each points distance from the planes that
make up the clip frustum.
By avoiding the projective transform, perspective divide and viewport
scale for each point culled this makes culling much cheaper.
Diffstat (limited to 'clutter/clutter-stage-private.h')
-rw-r--r-- | clutter/clutter-stage-private.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clutter/clutter-stage-private.h b/clutter/clutter-stage-private.h index 0238cba18..7dad14fc7 100644 --- a/clutter/clutter-stage-private.h +++ b/clutter/clutter-stage-private.h @@ -25,6 +25,7 @@ #include <clutter/clutter-stage-window.h> #include <clutter/clutter-stage.h> #include <clutter/clutter-input-device.h> +#include <clutter/clutter-private.h> G_BEGIN_DECLS @@ -75,7 +76,7 @@ guint _clutter_stage_get_picks_per_frame_counter (ClutterStage *stage); ClutterPaintVolume *_clutter_stage_paint_volume_stack_allocate (ClutterStage *stage); void _clutter_stage_paint_volume_stack_free_all (ClutterStage *stage); -const ClutterGeometry *_clutter_stage_get_clip (ClutterStage *stage); +const ClutterPlane *_clutter_stage_get_clip (ClutterStage *stage); ClutterStageQueueRedrawEntry *_clutter_stage_queue_actor_redraw (ClutterStage *stage, ClutterStageQueueRedrawEntry *entry, |