Contents |
See also: ClutterRoadMap
This is the official road map for Cogl API and features. Please send other suggestions to the Clutter mailinglist or open a feature request bug.
Target date for API freeze: 2010-08-23
N.B.: This is only a preliminary road map for Clutter 1.4
These reflect the main feature requests we have currently so we can aim to keep development focused:
| description | effort | status |
|---|---|---|
| Provide the mechanisms for Clutter to perform scenegraph level re-ordering of primitives to optimize GPU utilization. | ||
| Implement a CoglRenderlist API which should provide a means to maintain a list of retained primitives and help Clutter sort those primitives by state, define barriers according to certain state changes (that don't allow sorting entries across barriers) and to traverse them for painting with a fast index for transparent vs opaque primitives. | 3 weeks | not started |
| Re-work CoglMaterial internals so we track the ancestry of materials (to give a natural state sorting metric); allow sparse tracking of state (for a more scalable design as we plan to track more state in CoglMaterial); allow cheap copying (for fast logging into a journal/renderlist) and allow cheap "linking" (so Clutter can derive the materials for rendering a renderlist but with weaker semantics regarding modification of its ancestors.) | 1 month | rib: pending review |
| Add a fragment processing backend absraction in CoglMaterial so we can have separate fixed, arbfp and glsl backends, continuing the ARBfp work that Damien started. | ~ 1 week more | rib: Done. (merged into master) |
| CoglTexturePixmapX11 so we no longer have Clutter using raw GL. (Also a dependency for cogl-trace) | 3 weeks | bpeel: Done. (merged into master) |
| | 1 week | bpeel: started, but decided not needed |
| Retained Cogl Path handles supporting cheap copy-on-write semantics for fast logging into a journal/renderlist | N/A | bpeel: Done. (merged into master) |
| Retained Clip stack handles supporting cheap copy-on-write semantics for fast logging into a journal/renderlist. | N/A | bpeel: Done. (merged into master) |
| Add cogl_handle_get/set_user_data API so that Clutter can associate private data with the CoglMaterials of renderlist entries. Namely it's own private materials that force the vertex processing to override the z values. | 1 day | rib: Done. (merged into master) |
| _clutter_actor_get_children: We need a reliable way to iterate the children of any actor not just containers. | 1 day more | ebassi: started |
| Formalize the the per-parent state tracking in ClutterActors. To support renderlists we need to associate a list of primitives with a specific parent of a given actor. | 1 day | not started |
| A toolkit hook mechanism for Clutter to hook into cogl_push/pop_framebuffer and cogl_begin/end_gl so Clutter can switch between renderlists or force a flush. | 2 days | not started |
| Modify Cogl primitives so they can be redirected through a CoglRenderlist | 2 weeks | not started |
| Research how best to sort and render renderlists for Gen X vs SGX hardware. | 2 weeks | not started |
| Make cogl material responsible for the depth testing state. Add cogl_material_{get,set}_depth_test_enabled, cogl_material_{get,set}_depth_test_function, cogl_material_{get,set}_depth_writing_enabled, cogl_material_{set,get}_depth_range APIs, write a corresponding unit test and deprecate cogl_set_depth_test_enable | 2 days | rib: Done. (but not merged into master) |
| | 1 day | rib: decided to make it a material API instead |
| Add cogl_material_set_fog API and deprecate cogl_set_fog and cogl_disable_fog | 2 days | not started |
| Add cogl_material_set_backface_culling_enable API and deprecate cogl_set_backface_culling_enable | 1 day | not started |
| Cogl tracing capabilities | 3 weeks more | rib: started (branch wip/cogl-trace) |
| Improve math utilities (Add quaternion + euler APIs) | 2 weeks more | rib: debugging + docs (branch wip/cogl-math) |
| Add cogl_texture_set_purgeable API to support APPLE_object_purgeable extension | 2 days more | ebassi: started (branch wip/object-purgeable) |
| Add cogl_material_set_front_face_order API | 1 day | not started |
| Add cogl_material_set_color_mask API | 1 day | not started |
| Improve introductory documentation, including description of coordinate spaces, transformations and basic GPU principles | not started | |
| Support compressed texture formats | not started | |
| Add cogl_framebuffer_get_{red,green,blue,alpha}_bits API and deprecate cogl_get_bitmasks | N/A | ebassi: done (patch attached to the bug) |