1
0
Fork 0
mutter-performance-source/clutter
Neil Roberts d03fbf9f64 cogl-pango: Use a CoglAtlas to maintain the glyph cache
The glyph cache is now stored in a CoglAtlas structure instead of the
custom atlasing code. This has the advantage that it can share code
with the main texture atlas and that it supports reorganizing the
atlas when it becomes full. Unlike the texture atlas, the glyph cache
can use multiple atlases which would be neccessary if the maximum
texture size is reached and we need to create a second
texture. Whenever a display list is created it now has to register a
callback with the glyph cache so that the display list can be
recreated whenever any of the atlases are reorganized. This is needed
because the display list directly stores texture coordinates within
the atlas texture and they would become invalid when the texture is
moved.

The ensure_glyphs_for_layout now works in two steps. First it reserves
space in the atlas for all of the glyphs. The atlas is created with
the DISABLE_MIGRATION flag so that it won't actually copy any textures
if any rearranging is needed. Whenever the position is updated for a
glyph then it is marked as dirty. After space for all of the glyphs
has been reserved it will iterate over all dirty glyphs and redraw
them using Cairo. The rendered glyph is then stored in the texture
with a sub texture update.

The glyphs need to all be set at the right location before starting to
create the display list because the display list stores the texture
coordinates of the glyph. If any of the glyphs were moved around then
the parts of the display list that was created already would become
invalid. To make this work, ensure_glyphs_for_layout is now always
called before rendering a layout or a layout line.
2010-08-12 11:56:59 +01:00
..
cally build: Distcheck fixes after the Cally merge 2010-07-07 16:30:31 +01:00
cogl cogl-pango: Use a CoglAtlas to maintain the glyph cache 2010-08-12 11:56:59 +01:00
egl Clean up the private flags for ClutterActor 2010-07-21 16:10:46 +01:00
fruity Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
glx glx: Depend on libdrm 2010-08-09 11:29:03 +01:00
json build: Make the introspection generation quiet (again) 2010-08-12 09:03:58 +01:00
osx osx: Fixed stage resize policy 2010-08-04 15:13:12 +01:00
win32 Clean up the private flags for ClutterActor 2010-07-21 16:10:46 +01:00
x11 Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +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-meta-private.h actor: Add ActorMeta, a base class for actor modifiers 2010-05-17 16:42:10 +01:00
clutter-actor-meta.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-actor-meta.h actor: Add ActorMeta, a base class for actor modifiers 2010-05-17 16:42:10 +01:00
clutter-actor.c actor: Use box origin instead of direct access 2010-08-11 11:39:24 +01:00
clutter-actor.h actor: Add allocate_align_fill() 2010-08-10 22:25:11 +01:00
clutter-align-constraint.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-align-constraint.h docs: Various fixes 2010-06-30 11:32:15 +01:00
clutter-alpha.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-alpha.h
clutter-animatable.c animatable: Allow passing a NULL animation 2010-07-31 10:56:09 +01:00
clutter-animatable.h animatable: Allow passing a NULL animation 2010-07-31 10:56:09 +01:00
clutter-animation.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-animation.h animation: Use 'guint' for set_duration() parameter 2010-05-05 11:32:39 +01:00
clutter-animator.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-animator.h animator,state: Mark variadic functions that ends with NULL 2010-06-07 14:22:26 +01:00
clutter-backend.c Clean up the private flags for ClutterActor 2010-07-21 16:10:46 +01:00
clutter-backend.h events: Add platform-data to allocated Events 2010-07-13 08:27:48 +01:00
clutter-behaviour-depth.c Mark property strings for translation 2010-07-15 14:07:07 +01:00
clutter-behaviour-depth.h
clutter-behaviour-ellipse.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-behaviour-ellipse.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour-opacity.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-behaviour-opacity.h docs: Fix gtk-doc warnings 2010-04-22 16:39:18 +01:00
clutter-behaviour-path.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-behaviour-path.h docs: Fix the 'Since' annotation for some functions 2009-11-19 11:51:21 +00:00
clutter-behaviour-rotate.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-behaviour-rotate.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour-scale.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-behaviour-scale.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-behaviour.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-behaviour.h
clutter-bezier.c analysis: Use static functions when possible 2010-06-01 12:08:18 +01:00
clutter-bezier.h
clutter-bin-layout.c Merge branch 'wip/table-layout' 2010-08-11 11:32:44 +01:00
clutter-bin-layout.h [layout, docs] Clean up BinLayout documentation 2009-10-14 11:31:29 +01:00
clutter-bind-constraint.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-bind-constraint.h docs: Various fixes 2010-06-30 11:32:15 +01:00
clutter-binding-pool.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-binding-pool.h
clutter-blur-effect.c effects: Check before using the cogl_shader_* API 2010-08-11 17:25:17 +01:00
clutter-blur-effect.h effect: Add BlurEffect 2010-06-03 14:10:55 +01:00
clutter-box-layout.c box-layout: Use allocate_align_fill() 2010-08-10 22:25:12 +01:00
clutter-box-layout.h Add "homogeneous" mode to ClutterBoxLayout. 2010-03-25 09:41:54 +00:00
clutter-box.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-box.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-cairo-texture.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-cairo-texture.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-child-meta.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-child-meta.h
clutter-click-action.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-click-action.h action: Add ClickAction 2010-05-25 11:13:03 +01:00
clutter-clone.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-clone.h
clutter-color.c clutter-color: Don't directly read the contents of GValue structs 2010-05-05 18:49:09 +01:00
clutter-color.h [misc] Update headers #endif comments 2009-06-29 21:37:02 +02:00
clutter-colorize-effect.c colorize-effect: Do not inherit from ShaderEffect 2010-08-11 17:43:15 +01:00
clutter-colorize-effect.h effect: Add ColorizeEffect 2010-06-03 14:10:55 +01:00
clutter-constraint.c docs: Description fixes for Action and Constraint 2010-05-26 14:09:24 +01:00
clutter-constraint.h Add named modifiers for Action and Constraint 2010-05-20 11:19:51 +01:00
clutter-container.c Hide the marshallers 2010-06-11 16:09:36 +01:00
clutter-container.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-debug.h debug: Use G_UNLIKELY in the tests 2010-05-04 17:01:14 +01:00
clutter-deform-effect.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-deform-effect.h effect: Add DeformEffect 2010-06-10 18:40:29 +01:00
clutter-deprecated.h Fix copy-and-paste errors in the deprecation macros 2009-07-21 09:22:38 +01:00
clutter-desaturate-effect.c effects: Check before using the cogl_shader_* API 2010-08-11 17:25:17 +01:00
clutter-desaturate-effect.h effect: Add DesaturateEffect 2010-06-03 14:10:55 +01:00
clutter-device-manager.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-device-manager.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-drag-action.c drag-action: Capture ENTER when dragging 2010-08-12 08:53:06 +01:00
clutter-drag-action.h drag-action: Remove the press event button 2010-06-12 17:45:54 +01:00
clutter-effect.c docs: Fix Effect subclassing section 2010-06-10 17:34:48 +01:00
clutter-effect.h docs: Effects fixes for the API reference 2010-06-03 14:34:41 +01:00
clutter-enum-types.c.in Use g_once when registering enumeration types 2009-05-29 12:40:23 +01:00
clutter-enum-types.h.in
clutter-event.c events: Add platform-data to allocated Events 2010-07-13 08:27:48 +01:00
clutter-event.h Miscellaneous documentation fixes 2010-05-19 16:10:05 +01:00
clutter-feature.c Emit a critical warning if features are not initialized 2010-03-18 14:15:33 +00: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 [layout, docs] Document FixedLayout 2009-10-14 11:31:29 +01:00
clutter-fixed.c Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-fixed.h
clutter-flow-layout.c Mark property strings for translation 2010-07-15 14:07:07 +01:00
clutter-flow-layout.h [layout] Remove FlowLayout:wrap 2009-10-14 11:31:30 +01:00
clutter-frame-source.c g_source_set_name on custom sources (if available) 2010-06-07 12:05:24 +01:00
clutter-frame-source.h
clutter-group.c Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-group.h
clutter-id-pool.c Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-id-pool.h
clutter-input-device.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-input-device.h device: Allow updating devices from embedding toolkits 2010-02-17 18:21:50 +00:00
clutter-interval.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-interval.h interval: Add a pointer variant to compute_value() 2010-05-24 15:06:14 +01:00
clutter-json.h.in [json] Include only json-glib.h 2009-08-12 15:31:16 +01:00
clutter-keysyms-table.h
clutter-keysyms.h Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-layout-manager.c layout-manager: Do not emit layout-changed on thaw 2010-08-09 11:06:44 +01:00
clutter-layout-manager.h layout: Let begin_animation() return the Alpha 2009-12-13 01:23:54 +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 Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-list-model.h
clutter-main.c Clean up the private flags for ClutterActor 2010-07-21 16:10:46 +01:00
clutter-main.h Initialize accessibility support on clutter_init 2010-07-05 16:45:43 +01:00
clutter-marshal.list drag-action: Remove the press event button 2010-06-12 17:45:54 +01:00
clutter-master-clock.c g_source_set_name on custom sources (if available) 2010-06-07 12:05:24 +01:00
clutter-master-clock.h ensure next iteration 2009-07-10 11:38:42 +01:00
clutter-media.c Mark property strings for translation 2010-07-15 14:07:07 +01:00
clutter-media.h Miscellaneous documentation fixes 2010-05-19 16:10:05 +01:00
clutter-model-private.h
clutter-model.c Hide the marshallers 2010-06-11 16:09:36 +01:00
clutter-model.h Add more padding in Model and ModelIter classes 2009-05-20 16:06:09 +01:00
clutter-offscreen-effect.c offscreen-effect: Traslate the modelview with the offsets 2010-06-10 18:40:24 +01:00
clutter-offscreen-effect.h effect: Rework the OffscreenEffect painting 2010-06-03 14:10:55 +01:00
clutter-page-turn-effect.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-page-turn-effect.h effect: Add PageTurnEffect 2010-06-10 18:40:29 +01:00
clutter-path.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-path.h [path] MOVE_TO and LINE_TO only use a pair of coordinates 2009-10-06 10:43:41 +01:00
clutter-private.h Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-profile.c profile: Fix the report generation 2010-04-22 17:52:13 +01:00
clutter-profile.h profiling: Allow limiting statisics just to picking 2010-01-08 20:19:50 +00:00
clutter-rectangle.c Mark property strings for translation 2010-07-15 14:07:07 +01:00
clutter-rectangle.h
clutter-score.c Hide the marshallers 2010-06-11 16:09:36 +01:00
clutter-score.h
clutter-script-parser.c script: Let ClutterActor parse behaviours 2010-07-09 14:59:32 +01:00
clutter-script-private.h script: Let ClutterActor parse behaviours 2010-07-09 14:59:32 +01:00
clutter-script.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-script.h
clutter-scriptable.c Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-scriptable.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-settings.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-settings.h settings: Migrate Backend settings to a new object 2010-06-21 15:55:36 +01:00
clutter-shader-effect.c shader-effect: Attach the program to the target material 2010-08-11 14:21:23 +01:00
clutter-shader-effect.h docs: Effects fixes for the API reference 2010-06-03 14:34:41 +01:00
clutter-shader-types.c shader-types: Check the size of the values 2010-06-16 17:14:57 +01:00
clutter-shader-types.h
clutter-shader.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-shader.h
clutter-stage-manager.c Hide the marshallers 2010-06-11 16:09:36 +01:00
clutter-stage-manager.h Miscellaneous documentation fixes 2010-05-19 16:10:05 +01:00
clutter-stage-window.c stage-window: Add argument guards 2010-07-20 14:39:01 +01:00
clutter-stage-window.h Adds initial clipped redraw support to Clutter 2010-03-02 17:19:11 +00:00
clutter-stage.c stage: Fix the user-resizable property enumeration id 2010-08-11 12:40:22 +01:00
clutter-stage.h stage: Add the NO_CLEAR_ON_PAINT hint 2010-07-13 14:57:48 +01:00
clutter-state.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-state.h state: Return a boolean when getting the key value 2010-08-08 19:17:14 +01:00
clutter-table-layout.c Add ClutterTableLayout, a layout showing children in rows and columns 2010-08-10 23:20:06 +01:00
clutter-table-layout.h Add ClutterTableLayout, a layout showing children in rows and columns 2010-08-10 23:20:06 +01:00
clutter-text.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-text.h text: Add :font-description 2010-02-03 14:38:13 +00:00
clutter-texture.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-texture.h [texture] Support picking textures according to their alpha channel 2010-05-28 16:07:17 +01:00
clutter-timeline.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-timeline.h Remove the last few fixed-point entry points 2009-06-19 16:38:35 +01:00
clutter-timeout-interval.c Whitespace fixes 2010-02-01 10:40:34 +00:00
clutter-timeout-interval.h
clutter-timeout-pool.c g_source_set_name on custom sources (if available) 2010-06-07 12:05:24 +01:00
clutter-timeout-pool.h
clutter-types.h shader-effect: Allow creating vertex shaders 2010-06-11 14:47:48 +01:00
clutter-units.c docs: Avoid warnings from the g-ir-scanner 2010-06-30 15:51:12 +01:00
clutter-units.h units: Cache the pixels value inside Units 2009-10-16 15:25:37 +01:00
clutter-util.c Add P_() macro for translating property strings 2010-07-15 12:09:01 +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 ClutterTableLayout, a layout showing children in rows and columns 2010-08-10 23:20:06 +01:00
Makefile.am build: Make the introspection generation quiet (again) 2010-08-12 09:03:58 +01:00