mutter/clutter
Robert Bragg 5f30835eae cogl-shader: Prepend boilerplate for portable shaders
We now prepend a set of defines to any given GLSL shader so that we can
define builtin uniforms/attributes within the "cogl" namespace that we
can use to provide compatibility across a range of the earlier versions
of GLSL.

This updates test-cogl-shader-glsl.c and test-shader.c so they no longer
needs to special case GLES vs GL when splicing together its shaders as
well as the blur, colorize and desaturate effects.

To get a feel for the new, portable uniform/attribute names here are the
defines for OpenGL vertex shaders:

 #define cogl_position_in gl_Vertex
 #define cogl_color_in gl_Color
 #define cogl_tex_coord_in  gl_MultiTexCoord0
 #define cogl_tex_coord0_in gl_MultiTexCoord0
 #define cogl_tex_coord1_in gl_MultiTexCoord1
 #define cogl_tex_coord2_in gl_MultiTexCoord2
 #define cogl_tex_coord3_in gl_MultiTexCoord3
 #define cogl_tex_coord4_in gl_MultiTexCoord4
 #define cogl_tex_coord5_in gl_MultiTexCoord5
 #define cogl_tex_coord6_in gl_MultiTexCoord6
 #define cogl_tex_coord7_in gl_MultiTexCoord7
 #define cogl_normal_in gl_Normal

 #define cogl_position_out gl_Position
 #define cogl_point_size_out gl_PointSize
 #define cogl_color_out gl_FrontColor
 #define cogl_tex_coord_out gl_TexCoord

 #define cogl_modelview_matrix gl_ModelViewMatrix
 #define cogl_modelview_projection_matrix gl_ModelViewProjectionMatrix
 #define cogl_projection_matrix gl_ProjectionMatrix
 #define cogl_texture_matrix gl_TextureMatrix

And for fragment shaders we have:

 #define cogl_color_in gl_Color
 #define cogl_tex_coord_in gl_TexCoord

 #define cogl_color_out gl_FragColor
 #define cogl_depth_out gl_FragDepth

 #define cogl_front_facing gl_FrontFacing
2010-11-10 14:24:52 +00:00
..
cally Avoid mixing declarations and code 2010-10-25 13:18:25 +01:00
cogl cogl-shader: Prepend boilerplate for portable shaders 2010-11-10 14:24:52 +00:00
egl Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
fruity Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
glx Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
osx Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
wayland Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
win32 win32: Fix a couple of build warnings 2010-11-01 15:21:04 +00:00
x11 Merge branch 'private-cleanup' 2010-10-25 23:44:53 +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 Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-actor-meta.c Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-actor-meta.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-actor-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-actor.c actor: Check "paint" handlers in _get_paint_volume 2010-11-05 17:22:05 +00:00
clutter-actor.h docs: Fix the annotations of ActorClass 2010-10-04 11:26:46 +01:00
clutter-align-constraint.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-align-constraint.h Remove trailin enum commas, avoiding C++ warnings. 2010-09-13 15:45:55 +01:00
clutter-alpha.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-alpha.h Merge branch 'cogl-float' 2009-01-20 18:47:50 +00:00
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 Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-animation.h animation: Allow detaching an animation from an actor 2010-09-10 11:18:53 +01:00
clutter-animator.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-animator.h animator,state: Mark variadic functions that ends with NULL 2010-06-07 14:22:26 +01:00
clutter-backend-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-backend.c Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-backend.h Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-behaviour-depth.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-depth.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-behaviour-ellipse.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +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 Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-opacity.h docs: Fix gtk-doc warnings 2010-04-22 16:39:18 +01:00
clutter-behaviour-path.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +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 Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +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 Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +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 Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-behaviour.h [animation] Move the alpha value to floating point 2009-01-20 16:42:49 +00:00
clutter-bezier.c analysis: Use static functions when possible 2010-06-01 12:08:18 +01:00
clutter-bezier.h Bug 1252 - Merge ClutterBehaviourPath and ClutterBehaviourBspline 2008-12-05 13:13:37 +00:00
clutter-bin-layout.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-bin-layout.h [layout, docs] Clean up BinLayout documentation 2009-10-14 11:31:29 +01:00
clutter-bind-constraint.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-bind-constraint.h constraint: Re-implement using update_allocation() 2010-09-17 12:17:50 +01:00
clutter-binding-pool.c binding-pool: Use the correct marshaller 2010-10-25 00:39:13 +01:00
clutter-binding-pool.h Add declaration of clutter_binding_pool_get_type() 2009-01-14 15:03:30 +00:00
clutter-blur-effect.c cogl-shader: Prepend boilerplate for portable shaders 2010-11-10 14:24:52 +00:00
clutter-blur-effect.h effect: Add BlurEffect 2010-06-03 14:10:55 +01:00
clutter-box-layout.c box-layout: Plug a memory leak 2010-10-08 13:29:49 +01:00
clutter-box-layout.h Add "homogeneous" mode to ClutterBoxLayout. 2010-03-25 09:41:54 +00:00
clutter-box.c Remove unnecessary GLib version checks 2010-10-18 11:26:45 +01:00
clutter-box.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-cairo-texture.c gtk-doc: Fixes for the API references 2010-11-08 16:01:19 +00:00
clutter-cairo-texture.h gtk-doc: Fixes for the API references 2010-11-08 16:01:19 +00:00
clutter-child-meta.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-child-meta.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-click-action.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-click-action.h click-action: Add get_button() 2010-08-26 16:39:39 +01:00
clutter-clone.c clone: Remove checks in set_source_internal() 2010-11-01 12:16:53 +00:00
clutter-clone.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-color.c Use G_DEFINE_BOXED_TYPE for all boxed types 2010-10-18 11:26:45 +01:00
clutter-color.h color: Add Color.interpolate() method 2010-10-11 15:39:19 +01:00
clutter-colorize-effect.c cogl-shader: Prepend boilerplate for portable shaders 2010-11-10 14:24:52 +00:00
clutter-colorize-effect.h effect: Add ColorizeEffect 2010-06-03 14:10:55 +01:00
clutter-constraint.c docs: Add sub-classing notes on ActorMeta and Constraint 2010-09-17 14:54:31 +01:00
clutter-constraint.h constraint: Add ::update_allocation() 2010-09-17 12:17:50 +01:00
clutter-container.c Remove unnecessary GLib version checks 2010-10-18 11:26:45 +01:00
clutter-container.h container: Add child_notify() wrapper 2010-09-30 14:58:23 +01:00
clutter-debug.h debug: Do not use '&' in the messages 2010-10-19 01:42:19 +01:00
clutter-deform-effect.c Move more classes to install_properties() 2010-10-18 11:26:45 +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 cogl-shader: Prepend boilerplate for portable shaders 2010-11-10 14:24:52 +00:00
clutter-desaturate-effect.h effect: Add DesaturateEffect 2010-06-03 14:10:55 +01:00
clutter-device-manager-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-device-manager.c Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-device-manager.h docs: Documentation fixes 2010-03-02 11:12:32 +00:00
clutter-drag-action.c Remove conditional wrappers for property installation/notification 2010-10-18 11:26:45 +01:00
clutter-drag-action.h drag-action: Added x-drag-threshold and y-drag-threshold properties 2010-09-07 10:40:49 +01:00
clutter-effect.c paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-effect.h effect: Fix up the class ABI 2010-10-04 11:30:32 +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 2007-08-20 Emmanuele Bassi <ebassi@openedhand.com> 2007-08-20 20:16:15 +00:00
clutter-event.c Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-event.h Remove trailin enum commas, avoiding C++ warnings. 2010-09-13 15:45:55 +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 [layout, docs] Document FixedLayout 2009-10-14 11:31:29 +01:00
clutter-fixed.c Add caller-allocates annotations 2010-09-08 17:04:21 +01:00
clutter-fixed.h [fixed] Remove ClutterFixed API 2009-03-10 12:38:04 +00:00
clutter-flow-layout.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-flow-layout.h [layout] Remove FlowLayout:wrap 2009-10-14 11:31:30 +01:00
clutter-frame-source.c Deprecate ClutterFrameSource 2010-11-06 20:11:16 +00:00
clutter-frame-source.h Deprecate ClutterFrameSource 2010-11-06 20:11:16 +00:00
clutter-group.c paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-group.h [group] avoid double evaluation of arguments in clutter_group_add 2009-04-08 18:19:46 +01:00
clutter-id-pool.c Remove mentions of the FSF address 2010-03-01 12:56:10 +00:00
clutter-id-pool.h 2008-10-30 Emmanuele Bassi <ebassi@linux.intel.com> 2008-10-30 17:04:34 +00:00
clutter-input-device.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-input-device.h device: Allow updating devices from embedding toolkits 2010-02-17 18:21:50 +00:00
clutter-interval.c interval: Remember to chain up to parent in finalize() 2010-10-25 00:31:36 +01:00
clutter-interval.h interval: Add a pointer variant to compute_value() 2010-05-24 15:06:14 +01:00
clutter-keysyms-compat.h keysyms: Update the macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-keysyms-table.h 7 small miscellaneous fixes 2008-06-10 06:37:46 +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 macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-layout-manager.c Remove unnecessary GLib version checks 2010-10-18 11:26:45 +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 Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-list-model.h [list-model] Make ClutterListModel subclassable 2009-02-14 11:31:00 +00:00
clutter-main.c Discard the current pick buffer... 2010-11-08 16:45:15 +00:00
clutter-main.h Deprecate ClutterFrameSource 2010-11-06 20:11:16 +00:00
clutter-marshal.list path-constraint: Add a ::node-reached signal 2010-11-07 21:35:40 +00:00
clutter-master-clock.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-master-clock.h ensure next iteration 2009-07-10 11:38:42 +01:00
clutter-media.c Use G_DEFINE_INTERFACE 2010-10-18 11:26:44 +01:00
clutter-media.h Miscellaneous documentation fixes 2010-05-19 16:10:05 +01:00
clutter-model-private.h [model] Add a private row mutator to ClutterModelIter 2009-05-05 20:18:28 +01:00
clutter-model.c Further annotation fixes 2010-09-08 16:41:47 +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 Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-offscreen-effect.h offscreen-effect: Rename create_target to create_buffer 2010-09-01 18:05:53 +01:00
clutter-page-turn-effect.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-page-turn-effect.h effect: Add PageTurnEffect 2010-06-10 18:40:29 +01:00
clutter-paint-volume-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-paint-volume.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-path-constraint.c path-constraint: Add a ::node-reached signal 2010-11-07 21:35:40 +00:00
clutter-path-constraint.h docs: Add PathConstraint 2010-10-25 16:09:40 +01:00
clutter-path.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +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 Deprecate ClutterFrameSource 2010-11-06 20:11:16 +00: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 Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-rectangle.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-score.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-score.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-script-parser.c script: Fix the memory management 2010-10-19 01:42:19 +01:00
clutter-script-private.h script: Fix the memory management 2010-10-19 01:42:19 +01:00
clutter-script.c script: Fix the memory management 2010-10-19 01:42:19 +01:00
clutter-script.h [docs] Bring down the undocumented symbols to 2% 2009-03-16 15:00:55 +00:00
clutter-scriptable.c Use G_DEFINE_INTERFACE 2010-10-18 11:26:44 +01:00
clutter-scriptable.h Remove the internal copy of JSON-GLib 2010-09-29 15:57:28 +01: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 Remove unused variables 2010-10-19 01:42:19 +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 [cogl] Remove the COGL{enum,int,uint} typedefs 2009-05-12 14:53:44 +01:00
clutter-shader.c introspection: Add annotations 2010-09-03 12:14:50 +01:00
clutter-shader.h [shader] Remove deprecated set_uniform_1f() 2009-04-03 12:47:21 +01: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 Discard the current pick buffer... 2010-11-08 16:45:15 +00:00
clutter-stage-window.c Use G_DEFINE_INTERFACE 2010-10-18 11:26:44 +01:00
clutter-stage-window.h Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-stage.c Discard the current pick buffer... 2010-11-08 16:45:15 +00:00
clutter-stage.h stage: Add the NO_CLEAR_ON_PAINT hint 2010-07-13 14:57:48 +01:00
clutter-state.c state: Correct the documentation 2010-10-25 17:21:20 +01:00
clutter-state.h Use G_DEFINE_BOXED_TYPE for all boxed types 2010-10-18 11:26:45 +01:00
clutter-table-layout.c Plug a memory leak in clutter-table-layout 2010-10-08 12:11:39 +01:00
clutter-table-layout.h table-layout: Invert row/column in arguments 2010-09-23 15:17:58 +01:00
clutter-text.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-text.h text: Add :font-description 2010-02-03 14:38:13 +00:00
clutter-texture.c texture: Warn when the file loaded from a ClutterScript can't be found 2010-11-01 11:43:35 +00:00
clutter-texture.h [texture] Support picking textures according to their alpha channel 2010-05-28 16:07:17 +01:00
clutter-timeline.c Move more classes to install_properties() 2010-10-18 11:26:45 +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 Count timeline frames using the FPS instead of an integer interval 2009-03-16 15:40:18 +00:00
clutter-timeout-pool.c timeout-pool: Deprecate the structure too 2010-11-08 15:52:17 +00:00
clutter-timeout-pool.h timeout-pool: Deprecate the structure too 2010-11-08 15:52:17 +00:00
clutter-types.h actor-box: Add setters for origin and size 2010-10-25 15:45:35 +01:00
clutter-units.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-units.h units: Cache the pixels value inside Units 2009-10-16 15:25:37 +01:00
clutter-util.c paint_volume: Splits out clutter_paint_volume code 2010-09-29 15:13:00 +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 ClutterPathConstraint 2010-10-25 15:46:04 +01:00
clutter.pc.in build: Start moving to a non-recursive layout 2010-09-29 14:40:15 +01:00
Makefile.am build: Re-instate profile builds 2010-11-07 15:27:17 +00:00