mutter/clutter
Robert Bragg 3183240fef Provide stable paint-boxes for fixed sized actors
This updates _clutter_paint_volume_get_stage_paint_box to try and
calculate more stable paint-box sizes for fixed sized paint-volumes by
not basing the size on the volume's sub-pixel position.

So the aim is that for a given rectangle defined with floating point
coordinates we want to determine a stable quantized size in pixels that
doesn't vary due to the original box's sub-pixel position.

The reason this is important is because effects will use this API to
determine the size of offscreen framebuffers and so for a fixed-size
object that may be animated across the screen we want to make sure that
the stage paint-box has an equally stable size so that effects aren't
made to continuously re-allocate a corresponding fbo.

The other thing we consider is that the calculation of this box is
subject to floating point precision issues that might be slightly
different to the precision issues involved with actually painting the
actor, which might result in painting slightly leaking outside the
user's calculated paint-volume. This patch now adds padding to consider
this too.

Signed-off-by: Neil Roberts <neil@linux.intel.com>
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
2011-07-14 13:54:12 +01:00
..
cally a11y: cally-text get_offset_at_point implementation 2011-07-06 17:05:49 +02:00
cogl clutter-stage: Add clutter_stage_get_redraw_clip_bounds 2011-07-13 13:54:50 +01:00
evdev evdev: Remove unused variable 2011-04-18 16:24:27 +01:00
osx osx: Code style cleanups 2011-07-13 19:33:11 +01:00
wayland Removes Cogl from the repository 2011-05-06 15:44:08 +01:00
win32 don't call cogl_set_default_context since it's been removed 2011-07-11 16:59:26 +01:00
x11 Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-action.c
clutter-action.h
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 actor: documents _get/apply_relative_transform_matrix 2011-06-17 18:38:29 +01:00
clutter-actor.c actor: improve rounding in get_allocation_geometry 2011-07-14 13:54:09 +01:00
clutter-actor.h Revert "build: Detect the appropriate default flavour" 2011-07-13 14:26:05 +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 docs: Add the Deprecate tag to Behaviours 2011-06-20 18:46:48 +01:00
clutter-behaviour-depth.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-ellipse.c docs: Add the Deprecate tag to Behaviours 2011-06-20 18:46:48 +01:00
clutter-behaviour-ellipse.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-opacity.c docs: Add the Deprecate tag to Behaviours 2011-06-20 18:46:48 +01:00
clutter-behaviour-opacity.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-path.c docs: Add the Deprecate tag to Behaviours 2011-06-20 18:46:48 +01:00
clutter-behaviour-path.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-rotate.c docs: Add the Deprecate tag to Behaviours 2011-06-20 18:46:48 +01:00
clutter-behaviour-rotate.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour-scale.c docs: Add the Deprecate tag to Behaviours 2011-06-20 18:46:48 +01:00
clutter-behaviour-scale.h Expose deprecated symbols whilst building Clutter 2011-01-20 13:29:37 +00:00
clutter-behaviour.c docs: Fix deprecation notice for ClutterBehaviour 2011-06-20 19:44:55 +01: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 Fixed typo of bidng to bind 2011-07-13 15:19:22 +01: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
clutter-box.c box: Implement the correct paint volume 2011-03-08 19:27:07 +00:00
clutter-box.h
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 clutter-actor: Add a debug flag for disabling offscreen redirect 2011-06-17 12:15:19 +01: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 stage: Make per-actor motion event delivery accessors public 2011-06-20 11:41:28 +01: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 Support multiple pointers in ClutterDragAction. 2011-06-21 18:29:01 +01:00
clutter-drag-action.h drag-action: Allow using settings for the drag threshold 2011-03-09 14:21:01 +00:00
clutter-drop-action.c docs: Document ClutterDropAction 2011-06-20 15:25:54 +01:00
clutter-drop-action.h docs: Document ClutterDropAction 2011-06-20 15:25:54 +01: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 docs: Fix up the API reference 2011-06-20 14:26:57 +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
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 Make sure the gesture is cancelled even if we miss the release event 2011-07-14 13:11:12 +02:00
clutter-gesture-action.h docs: Fix Clutter API reference 2011-06-13 15:36:07 +01:00
clutter-group.c group: Handle list modification while destroying children 2011-06-17 17:23:32 +01:00
clutter-group.h Deprecate mallum's add() macros for Group and Stage 2011-07-04 15:58:08 +01:00
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 key symbols 2011-06-17 12:14:15 +01: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 key symbols 2011-06-17 12:14:15 +01: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
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 stage: Maintain the motion event delivery invariants 2011-06-20 13:53:09 +01:00
clutter-main.h stage: Make per-actor motion event delivery accessors public 2011-06-20 11:41:28 +01:00
clutter-marshal.list Add ClutterDropAction 2011-06-20 15:25:53 +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 clutter-media: mention the asynchronous behavior of set_playing() in the doc. 2011-07-04 15:58:08 +01:00
clutter-media.h
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 Provide stable paint-boxes for fixed sized actors 2011-07-14 13:54:12 +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 Adds a CLUTTER_NEARBYINT macro for float rounding 2011-07-14 13:54:05 +01:00
clutter-profile.c uprof: Add the units in the name of the "Per Frame" timer attribute 2011-07-12 10:57:18 +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 Deprecate ClutterScore 2011-07-08 12:01:08 +01:00
clutter-score.h Deprecate ClutterScore 2011-07-08 12:01:08 +01: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
clutter-stage-private.h stage: Allow tracking dragged actors 2011-06-20 14:31:07 +01:00
clutter-stage-window.c clutter-stage: Add clutter_stage_get_redraw_clip_bounds 2011-07-13 13:54:50 +01:00
clutter-stage-window.h clutter-stage: Add clutter_stage_get_redraw_clip_bounds 2011-07-13 13:54:50 +01:00
clutter-stage.c clutter-stage: Add clutter_stage_get_redraw_clip_bounds 2011-07-13 13:54:50 +01:00
clutter-stage.h clutter-stage: Add clutter_stage_get_redraw_clip_bounds 2011-07-13 13:54:50 +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 text: Make sure that the selection box is big enough 2011-07-10 10:24:40 +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 texture: Deprecate the new_from_actor() function 2011-07-08 12:08:19 +01:00
clutter-texture.h texture: Deprecate the new_from_actor() function 2011-07-08 12:08:19 +01: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 docs: Fix up the API reference 2011-06-20 14:26:57 +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
clutter-version.h.in
clutter.h Add ClutterDropAction 2011-06-20 15:25:53 +01:00
clutter.pc.in build: Start moving to a non-recursive layout 2010-09-29 14:40:15 +01:00
Makefile.am build: Fix the path to the tslib event source 2011-07-04 16:09:41 +01:00