mutter/clutter
Robert Bragg 34600949ed clutter-stage: Allow a wider range of visible z values
Since eef9078f the translation of the camera away from the z=zero
plane was hardcoded at 50 which is approximately half way between the
default z_near and z_far values. This ended up with quite a small
distance in user-space coordinates to the far plane with the default
stage size and this was causing test-texture-quality to clip the actor
early.

This patch makes it try to calculate a reasonable value for the
position of the z=0 plane as well as a value for z_far so we maximize
the space in between the z=0 plane and the near plane and we have a
predictable amount of space behind the stage before hitting the far
clipping plane, while considering the trade off of loosing depth
precision by pushing the far plane too far back relative to the near
plane.

With the default fov of 60° it's not possible to use the stage size to
define the gap in-front of the stage plane; only ~87% of the stage size
is possible as an upper limit. We make 85% of the stage_height available
assuming you have a fov of 60°. We consistently provide 10 times the
stage height of space behind the stage regardless of the fov.

It seems worth noting here that we went around in circles a few times
over how to calculate the gaps since there are a number of trade offs to
consider and they also affect the complexity of the solution. In the end
we went for simplicity but commented the issues well enough hopefully so
we can develop a more elaborate solution if we ever have a use-case.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2625
2011-06-15 18:17:06 +01:00
..
cally Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
cogl make some parts of the stage-window interface optional 2011-06-15 15:46:38 +01:00
evdev evdev: Remove unused variable 2011-04-18 16:24:27 +01:00
osx osx: Handle bare modifier keypresses 2011-06-07 14:39:01 +01:00
wayland Removes Cogl from the repository 2011-05-06 15:44:08 +01:00
win32 Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
x11 Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-action.c docs: Description fixes for Action and Constraint 2010-05-26 14:09:24 +01:00
clutter-action.h Add named modifiers for Action and Constraint 2010-05-20 11:19:51 +01:00
clutter-actor-box.c Merge branch 'private-cleanup' 2010-10-25 23:44:53 +01:00
clutter-actor-meta-private.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-actor-meta.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-actor-meta.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-actor-private.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-actor.c effect: Rename RunFlags to PaintFlags 2011-06-13 16:00:45 +01:00
clutter-actor.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-align-constraint.c align-constraint: Fix typo in the vertical align 2011-04-01 15:36:22 +01:00
clutter-align-constraint.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-alpha.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-alpha.h
clutter-animatable.c Use G_DEFINE_INTERFACE 2010-10-18 11:26:44 +01:00
clutter-animatable.h animatable: Allow passing a NULL animation 2010-07-31 10:56:09 +01:00
clutter-animation.c animation: Use ::destroy with animate() 2011-04-16 10:22:01 +01:00
clutter-animation.h animation: Allow detaching an animation from an actor 2010-09-10 11:18:53 +01:00
clutter-animator.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-animator.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-backend-private.h Moves all GLX code down from Clutter to Cogl 2011-04-11 17:54:36 +01:00
clutter-backend.c backend: Do not call ensure_context() with NULL stage 2011-06-14 15:55:06 +01:00
clutter-backend.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-behaviour-depth.c Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-depth.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-ellipse.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour-ellipse.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-opacity.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour-opacity.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-path.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour-path.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-rotate.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour-rotate.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-scale.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour-scale.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-behaviour.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-bezier.c analysis: Use static functions when possible 2010-06-01 12:08:18 +01:00
clutter-bezier.h
clutter-bin-layout.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-bin-layout.h
clutter-bind-constraint.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-bind-constraint.h bind-constraint: Add BIND_POSITION and BIND_SIZE 2011-01-25 11:14:37 +00:00
clutter-binding-pool.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-binding-pool.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-blur-effect.c Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-blur-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-box-layout.c Sync allocation in ClutterBoxLayout with the one in GtkBox 2011-06-07 14:43:52 +01:00
clutter-box-layout.h Add "homogeneous" mode to ClutterBoxLayout. 2010-03-25 09:41:54 +00:00
clutter-box.c box: Implement the correct paint volume 2011-03-08 19:27:07 +00:00
clutter-box.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-cairo-texture.c cairo-texture: Make the pixel order macro public 2011-05-06 15:06:06 +01:00
clutter-cairo-texture.h cairo-texture: Make the pixel order macro public 2011-05-06 15:06:06 +01:00
clutter-child-meta.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-child-meta.h
clutter-click-action.c click-action: Add support for long press detection 2011-06-09 15:12:41 +01:00
clutter-click-action.h click-action: Add support for long press detection 2011-06-09 15:12:41 +01:00
clutter-clone.c clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-clone.h
clutter-color-static.h color: Add named, global colors 2010-11-11 13:14:23 +00:00
clutter-color.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-color.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-colorize-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-colorize-effect.h clutter-color-size-effect: Fix a minor typo in the docs 2011-02-16 14:11:59 +00:00
clutter-config.h.in build: Generate an instealled config header 2011-01-19 14:33:27 +00:00
clutter-constraint.c constraint: Queue a relayout on :enabled changes 2011-03-01 19:04:31 +00:00
clutter-constraint.h constraint: Add ::update_allocation() 2010-09-17 12:17:50 +01:00
clutter-container.c introspection: Override the GParamSpec type 2011-02-15 12:40:12 +00:00
clutter-container.h Merge remote-tracking branch 'nobled/wayland-fixes2' 2011-02-11 16:45:45 +00:00
clutter-debug.h Optimize culling by doing culling in eye-coordinates 2011-03-07 13:26:20 +00:00
clutter-deform-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-deform-effect.h build: Re-arrange headers 2010-11-18 18:23:49 +00:00
clutter-deprecated.h
clutter-desaturate-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-desaturate-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-device-manager-private.h Clean up crossing event synthesis code 2011-01-28 18:19:49 +00:00
clutter-device-manager.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-device-manager.h event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-drag-action.c drag-action: Fix a compiler warning 2011-03-21 12:41:40 +00:00
clutter-drag-action.h drag-action: Allow using settings for the drag threshold 2011-03-09 14:21:01 +00:00
clutter-effect-private.h effect: Rename RunFlags to PaintFlags 2011-06-13 16:00:45 +01:00
clutter-effect.c effect: Rename RunFlags to PaintFlags 2011-06-13 16:00:45 +01:00
clutter-effect.h effect: Rename RunFlags to PaintFlags 2011-06-13 16:00:45 +01:00
clutter-enum-types.c.in
clutter-enum-types.h.in
clutter-event-private.h event: Add setters for ClutterEvent members 2011-02-28 14:16:23 +00:00
clutter-event-translator.c event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-event-translator.h event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-event.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-event.h event: Add clutter_event_set_source() declaration 2011-06-09 15:40:26 +01:00
clutter-feature.c Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-feature.h docs: Document SWAP_EVENTS feature flag 2010-02-15 19:03:37 +00:00
clutter-fixed-layout.c layout-manager: Implement set_container() 2010-06-07 22:40:34 +01:00
clutter-fixed-layout.h
clutter-fixed.c Skip introspection for GValue ↔ CoglFixed API 2011-06-13 13:47:09 +01:00
clutter-fixed.h introspection: Skip some C-only structures 2010-12-10 17:15:39 +00:00
clutter-flatten-effect.c clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-flatten-effect.h clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-flow-layout.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-flow-layout.h
clutter-frame-source.c Start using the monotonic API in GLib ≥ 2.27 2010-11-17 16:19:10 +00:00
clutter-frame-source.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-gesture-action.c gesture-action: Remove the multi-device entry points 2011-06-10 15:15:15 +01:00
clutter-gesture-action.h docs: Fix Clutter API reference 2011-06-13 15:36:07 +01:00
clutter-group.c paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-group.h
clutter-id-pool.c clutter-id-pool: fix warning on bad pick 2011-05-26 08:48:13 -04:00
clutter-id-pool.h Privatize all ClutterIdPool functions 2011-02-18 15:53:27 +00:00
clutter-input-device.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-input-device.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-interval.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-interval.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-keysyms-compat.h keysyms: Update the list 2010-12-02 09:53:00 +00:00
clutter-keysyms-table.c Move the keysym ↔ Unicode table to .rodata 2011-02-28 14:16:24 +00:00
clutter-keysyms-update.pl keysyms: Update the macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-keysyms.h keysyms: Update the list 2010-12-02 09:53:00 +00:00
clutter-layout-manager.c Remove unnecessary GLib version checks 2010-10-18 11:26:45 +01:00
clutter-layout-manager.h Reduce the amount of g-ir-scanner warnings 2010-12-09 12:36:50 +00:00
clutter-layout-meta.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-layout-meta.h layout: Add padding to LayoutMeta 2009-12-02 11:36:25 +00:00
clutter-list-model.c ClutterListModel: Implement get_n_rows for improved performance 2011-01-10 21:22:22 +00:00
clutter-list-model.h
clutter-main.c Fix include location for cogl-pango.h 2011-05-16 16:04:27 +01:00
clutter-main.h Add G_GNUC_WARN_UNUSED_RESULT to clutter_init and init_with_args 2011-02-28 14:10:05 +00:00
clutter-marshal.list swipe-action: Clean up 2011-06-10 15:15:15 +01:00
clutter-master-clock.c Start using the monotonic API in GLib ≥ 2.27 2010-11-17 16:19:10 +00:00
clutter-master-clock.h
clutter-media.c Fix typo 2011-06-02 22:16:45 +02:00
clutter-media.h Miscellaneous documentation fixes 2010-05-19 16:10:05 +01:00
clutter-model-private.h
clutter-model.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-model.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-offscreen-effect-private.h offscreen-effect: Add public accessor for target size 2011-02-28 14:34:36 +00:00
clutter-offscreen-effect.c effect: Rename RunFlags to PaintFlags 2011-06-13 16:00:45 +01:00
clutter-offscreen-effect.h offscreen-effect: Add public accessor for target size 2011-02-28 14:34:36 +00:00
clutter-page-turn-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-page-turn-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-paint-volume-private.h Optimize culling by doing culling in eye-coordinates 2011-03-07 13:26:20 +00:00
clutter-paint-volume.c culling: Use vertex_count not '4' to determine partial culls 2011-06-02 21:02:11 +01:00
clutter-path-constraint.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-path-constraint.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-path.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-path.h
clutter-private.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-profile.c profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +01:00
clutter-profile.h profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +01:00
clutter-rectangle.c clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-rectangle.h
clutter-score.c More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-score.h More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-script-parser.c script: Allow warping to states 2011-06-13 13:47:09 +01:00
clutter-script-private.h script: Allow warping to states 2011-06-13 13:47:09 +01:00
clutter-script.c docs: Update missing documentation 2011-06-13 13:47:09 +01:00
clutter-script.h script: Rename "state" → "states" 2011-06-13 13:47:08 +01:00
clutter-scriptable.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-scriptable.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-settings.c settings: Add the :long-press-duration 2011-06-09 14:43:34 +01:00
clutter-settings.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-shader-effect.c shader-effect: Allow instantiating ShaderEffect 2011-06-07 14:09:53 +01:00
clutter-shader-effect.h shader-effect: Allow instantiating ShaderEffect 2011-06-07 14:09:53 +01:00
clutter-shader-types.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-shader-types.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-shader.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-shader.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-snap-constraint.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-snap-constraint.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-stage-manager-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-stage-manager.c Clean up clutter-private.h/2 2010-10-21 11:30:19 +01:00
clutter-stage-manager.h Miscellaneous documentation fixes 2010-05-19 16:10:05 +01:00
clutter-stage-private.h Make the pick id pool per Stage 2011-05-06 17:47:41 +01:00
clutter-stage-window.c make some parts of the stage-window interface optional 2011-06-15 15:46:38 +01:00
clutter-stage-window.h stage: adds internal_get_active_framebuffer API 2011-04-11 15:28:53 +01:00
clutter-stage.c clutter-stage: Allow a wider range of visible z values 2011-06-15 18:17:06 +01:00
clutter-stage.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-state.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-state.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-swipe-action.c swipe-action: Remove the required devices call 2011-06-10 15:15:15 +01:00
clutter-swipe-action.h swipe-action: Clean up 2011-06-10 15:15:15 +01:00
clutter-table-layout.c clutter: Remove unused variables 2011-02-19 16:47:20 +00:00
clutter-table-layout.h table-layout: Invert row/column in arguments 2010-09-23 15:17:58 +01:00
clutter-text.c clutter-text: new clutter_text_get_layout_offsets API 2011-06-13 16:15:22 +01:00
clutter-text.h clutter-text: new clutter_text_get_layout_offsets API 2011-06-13 16:15:22 +01:00
clutter-texture.c clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-texture.h build: Re-arrange headers 2010-11-18 18:23:49 +00:00
clutter-timeline.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-timeline.h ClutterTimeline: Fix the 'msecs' parameter for the new-frame signal 2011-01-24 11:52:47 +00:00
clutter-timeout-interval.c Start using the monotonic API in GLib ≥ 2.27 2010-11-17 16:19:10 +00:00
clutter-timeout-interval.h Move away from GTimeVal 2010-11-17 16:19:10 +00:00
clutter-timeout-pool.c More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-timeout-pool.h More ISO C90 warning fixes in Clutter 2011-02-15 12:40:11 +00:00
clutter-types.h ClutterModifierType: Port fix from GDK to clutter's GDK copy 2011-06-14 00:05:33 +01:00
clutter-units.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-units.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-util.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-util.h Deprecate clutter_util_next_p2() 2010-02-06 10:49:33 +00:00
clutter-version.h.in docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter.h Add ClutterSwipeAction and ClutterGestureAction 2011-06-10 14:02:17 +01:00
clutter.pc.in build: Start moving to a non-recursive layout 2010-09-29 14:40:15 +01:00
Makefile.am unify egl and glx backends as "cogl" backend 2011-06-14 20:35:18 +01:00