[Cogl] [PATCH] Fixes for --disable-glib

Robert Bragg robert at sixbynine.org
Mon Nov 26 09:28:11 PST 2012


This looks good to land to me:

Reviewed-by: Robert Bragg <robert at linux.intel.com>

thanks,
- Robert


On Thu, Nov 22, 2012 at 6:01 PM, Neil Roberts <neil at linux.intel.com> wrote:

> This fixes some problems which were stopping --disable-glib from
> working properly:
>
> • A lot of the public headers were including glib.h. This shouldn't be
>   necessary because the API doesn't expose any glib types. Otherwise
>   any apps would require glib in order to get the header.
>
> • The public headers were using G_BEGIN_DECLS. There is now a
>   replacement macro called COGL_BEGIN_DECLS which is defined in
>   cogl-types.h.
>
> • A similar fix has been done for G_GNUC_NULL_TERMINATED and
>   G_GNUC_DEPRECATED.
>
> • The CFLAGS were not including $(builddir)/deps/glib which was
>   preventing it finding the generated glibconfig.h when building out
>   of tree.
> ---
>  cogl-pango/cogl-pango-display-list.h   |  4 ++--
>  cogl-pango/cogl-pango-glyph-cache.h    |  4 ++--
>  cogl-pango/cogl-pango-pipeline-cache.h |  4 ++--
>  cogl-pango/cogl-pango-private.h        |  4 ++--
>  cogl-pango/cogl-pango.h                |  4 ++--
>  cogl/cogl-attribute-buffer.h           |  4 ++--
>  cogl/cogl-attribute.h                  |  4 ++--
>  cogl/cogl-bitmap.h                     |  4 ++--
>  cogl/cogl-bitmask.h                    |  4 ++--
>  cogl/cogl-buffer-private.h             |  4 ++--
>  cogl/cogl-buffer.h                     |  5 ++---
>  cogl/cogl-clip-state.h                 |  4 ++--
>  cogl/cogl-clutter-xlib.h               |  4 ++--
>  cogl/cogl-clutter.h                    |  4 ++--
>  cogl/cogl-color.h                      |  4 ++--
>  cogl/cogl-context.h                    |  4 ++--
>  cogl/cogl-debug.h                      |  4 ++--
>  cogl/cogl-defines.h.in                 |  6 ------
>  cogl/cogl-depth-state.h                |  4 ++--
>  cogl/cogl-display.h                    |  4 ++--
>  cogl/cogl-egl.h                        |  4 ++--
>  cogl/cogl-euler.h                      |  6 ++----
>  cogl/cogl-flags.h                      |  4 ++--
>  cogl/cogl-framebuffer.h                | 10 ++++------
>  cogl/cogl-gles2.h                      |  4 ++--
>  cogl/cogl-index-buffer.h               |  4 ++--
>  cogl/cogl-indices.h                    |  4 ++--
>  cogl/cogl-kms-display.h                |  4 ++--
>  cogl/cogl-kms-renderer.h               |  4 ++--
>  cogl/cogl-magazine-private.h           |  8 --------
>  cogl/cogl-matrix-private.h             |  4 ++--
>  cogl/cogl-matrix.h                     |  9 ++++++---
>  cogl/cogl-memory-stack-private.h       | 10 +---------
>  cogl/cogl-meta-texture.h               |  5 ++---
>  cogl/cogl-offscreen.h                  |  4 ++--
>  cogl/cogl-onscreen-template.h          |  4 ++--
>  cogl/cogl-onscreen.h                   |  5 ++---
>  cogl/cogl-path.h                       |  4 ++--
>  cogl/cogl-pipeline-layer-state.h       |  5 ++---
>  cogl/cogl-pipeline-snippet-private.h   |  2 ++
>  cogl/cogl-pipeline-state.h             |  5 ++---
>  cogl/cogl-pipeline.h                   |  4 ++--
>  cogl/cogl-pixel-buffer-private.h       |  4 ++--
>  cogl/cogl-pixel-buffer.h               |  5 ++---
>  cogl/cogl-point-in-poly-private.h      |  4 ++--
>  cogl/cogl-poll.h                       |  5 ++---
>  cogl/cogl-primitive-texture.h          |  4 ++--
>  cogl/cogl-primitive.h                  |  4 ++--
>  cogl/cogl-primitives-private.h         |  4 ++--
>  cogl/cogl-private.h                    |  4 ++--
>  cogl/cogl-quaternion.h                 |  4 ++--
>  cogl/cogl-rectangle-map.h              |  1 +
>  cogl/cogl-renderer.h                   |  6 ++----
>  cogl/cogl-sdl.h                        |  4 ++--
>  cogl/cogl-snippet.h                    |  6 ++----
>  cogl/cogl-sub-texture.h                |  6 ++----
>  cogl/cogl-swap-chain.h                 |  4 ++--
>  cogl/cogl-texture-2d-gl.h              |  6 ++----
>  cogl/cogl-texture-2d-sliced.h          |  2 --
>  cogl/cogl-texture-2d.h                 |  6 ++----
>  cogl/cogl-texture-3d.h                 |  6 ++----
>  cogl/cogl-texture-rectangle.h          |  4 ++--
>  cogl/cogl-texture.h                    |  4 ++--
>  cogl/cogl-types.h                      | 28 +++++++++++++++++++++++++---
>  cogl/cogl-vector.h                     |  6 ++----
>  cogl/cogl-wayland-client.h             |  2 --
>  cogl/cogl-wayland-renderer.h           |  4 ++--
>  cogl/cogl-wayland-server.h             |  6 ++----
>  cogl/cogl-win32-renderer.h             |  4 ++--
>  cogl/cogl-xlib-renderer.h              |  5 ++---
>  cogl/cogl-xlib.h                       |  6 +++---
>  cogl/cogl.h                            |  2 --
>  cogl/cogl1-context.h                   | 10 ++++------
>  cogl/winsys/cogl-texture-pixmap-x11.h  |  6 ++----
>  configure.ac                           |  3 +++
>  tests/conform/test-utils.h             |  2 ++
>  76 files changed, 173 insertions(+), 200 deletions(-)
>
> diff --git a/cogl-pango/cogl-pango-display-list.h
> b/cogl-pango/cogl-pango-display-list.h
> index 762fdef..28ac4fd 100644
> --- a/cogl-pango/cogl-pango-display-list.h
> +++ b/cogl-pango/cogl-pango-display-list.h
> @@ -28,7 +28,7 @@
>  #include <cogl/cogl.h>
>  #include "cogl-pango-pipeline-cache.h"
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  typedef struct _CoglPangoDisplayList CoglPangoDisplayList;
>
> @@ -75,6 +75,6 @@ _cogl_pango_display_list_clear (CoglPangoDisplayList
> *dl);
>  void
>  _cogl_pango_display_list_free (CoglPangoDisplayList *dl);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PANGO_DISPLAY_LIST_H__ */
> diff --git a/cogl-pango/cogl-pango-glyph-cache.h
> b/cogl-pango/cogl-pango-glyph-cache.h
> index ba0f0de..5ab0572 100644
> --- a/cogl-pango/cogl-pango-glyph-cache.h
> +++ b/cogl-pango/cogl-pango-glyph-cache.h
> @@ -28,7 +28,7 @@
>  #include <cogl/cogl.h>
>  #include <pango/pango-font.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  typedef struct _CoglPangoGlyphCache      CoglPangoGlyphCache;
>  typedef struct _CoglPangoGlyphCacheValue CoglPangoGlyphCacheValue;
> @@ -88,6 +88,6 @@ void
>  _cogl_pango_glyph_cache_set_dirty_glyphs (CoglPangoGlyphCache *cache,
>                                            CoglPangoGlyphCacheDirtyFunc
> func);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PANGO_GLYPH_CACHE_H__ */
> diff --git a/cogl-pango/cogl-pango-pipeline-cache.h
> b/cogl-pango/cogl-pango-pipeline-cache.h
> index da30c75..615eaf9 100644
> --- a/cogl-pango/cogl-pango-pipeline-cache.h
> +++ b/cogl-pango/cogl-pango-pipeline-cache.h
> @@ -31,7 +31,7 @@
>  #include <glib.h>
>  #include <cogl/cogl.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  typedef struct _CoglPangoPipelineCache CoglPangoPipelineCache;
>
> @@ -49,6 +49,6 @@ _cogl_pango_pipeline_cache_get (CoglPangoPipelineCache
> *cache,
>  void
>  _cogl_pango_pipeline_cache_free (CoglPangoPipelineCache *cache);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PANGO_PIPELINE_CACHE_H__ */
> diff --git a/cogl-pango/cogl-pango-private.h
> b/cogl-pango/cogl-pango-private.h
> index 1095221..91285ec 100644
> --- a/cogl-pango/cogl-pango-private.h
> +++ b/cogl-pango/cogl-pango-private.h
> @@ -32,7 +32,7 @@
>
>  #include "cogl-pango.h"
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  #define COGL_PANGO_TYPE_RENDERER
>  (_cogl_pango_renderer_get_type ())
>  #define COGL_PANGO_RENDERER(obj)
> (G_TYPE_CHECK_INSTANCE_CAST ((obj), COGL_PANGO_TYPE_RENDERER,
> CoglPangoRenderer))
> @@ -68,6 +68,6 @@ _cogl_pango_font_map_get_cogl_context (CoglPangoFontMap
> *fm);
>  PangoRenderer *
>  _cogl_pango_font_map_get_renderer (CoglPangoFontMap *fm);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PANGO_PRIVATE_H__ */
> diff --git a/cogl-pango/cogl-pango.h b/cogl-pango/cogl-pango.h
> index 6d82dc5..9feff0c 100644
> --- a/cogl-pango/cogl-pango.h
> +++ b/cogl-pango/cogl-pango.h
> @@ -34,7 +34,7 @@
>  #include <pango/pangocairo.h>
>  #include <cogl/cogl.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /* It's too difficult to actually subclass the pango cairo font
>   * map. Instead we just make a fake set of macros that actually just
> @@ -172,6 +172,6 @@ cogl_pango_show_layout_line (CoglFramebuffer
> *framebuffer,
>                               float y,
>                               const CoglColor *color);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PANGO_H__ */
> diff --git a/cogl/cogl-attribute-buffer.h b/cogl/cogl-attribute-buffer.h
> index bb69063..7b593e5 100644
> --- a/cogl/cogl-attribute-buffer.h
> +++ b/cogl/cogl-attribute-buffer.h
> @@ -38,7 +38,7 @@ typedef struct _CoglAttributeBuffer CoglAttributeBuffer;
>
>  #include <cogl/cogl-context.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-attribute-buffer
> @@ -86,7 +86,7 @@ cogl_attribute_buffer_new (CoglContext *context,
>  CoglBool
>  cogl_is_attribute_buffer (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_ATTRIBUTE_BUFFER_H__ */
>
> diff --git a/cogl/cogl-attribute.h b/cogl/cogl-attribute.h
> index 1fd3649..580446e 100644
> --- a/cogl/cogl-attribute.h
> +++ b/cogl/cogl-attribute.h
> @@ -39,7 +39,7 @@ typedef struct _CoglAttribute CoglAttribute;
>  #include <cogl/cogl-attribute-buffer.h>
>  #include <cogl/cogl-indices.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-attribute
> @@ -526,7 +526,7 @@ cogl_attribute_set_buffer (CoglAttribute *attribute,
>  CoglBool
>  cogl_is_attribute (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_ATTRIBUTE_H__ */
>
> diff --git a/cogl/cogl-bitmap.h b/cogl/cogl-bitmap.h
> index 9aeaeb4..e26aa0d 100644
> --- a/cogl/cogl-bitmap.h
> +++ b/cogl/cogl-bitmap.h
> @@ -37,7 +37,7 @@
>  #include <android/asset_manager.h>
>  #endif
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  typedef struct _CoglBitmap CoglBitmap;
>
> @@ -307,6 +307,6 @@ typedef enum {
>
>  uint32_t cogl_bitmap_error_domain (void);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_BITMAP_H__ */
> diff --git a/cogl/cogl-bitmask.h b/cogl/cogl-bitmask.h
> index dd238e7..78f6fa6 100644
> --- a/cogl/cogl-bitmask.h
> +++ b/cogl/cogl-bitmask.h
> @@ -30,7 +30,7 @@
>  #include <glib.h>
>  #include "cogl-util.h"
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /*
>   * CoglBitmask implements a growable array of bits. A CoglBitmask can
> @@ -302,6 +302,6 @@ _cogl_bitmask_popcount_upto (const CoglBitmask
> *bitmask,
>                                   ((1UL << upto) - 1));
>  }
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_BITMASK_H */
> diff --git a/cogl/cogl-buffer-private.h b/cogl/cogl-buffer-private.h
> index 4b21fa3..07a1490 100644
> --- a/cogl/cogl-buffer-private.h
> +++ b/cogl/cogl-buffer-private.h
> @@ -35,7 +35,7 @@
>  #include "cogl-context.h"
>  #include "cogl-gl-header.h"
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  typedef struct _CoglBufferVtable CoglBufferVtable;
>
> @@ -153,6 +153,6 @@ _cogl_buffer_map_for_fill_or_fallback (CoglBuffer
> *buffer);
>  void
>  _cogl_buffer_unmap_for_fill_or_fallback (CoglBuffer *buffer);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_BUFFER_PRIVATE_H__ */
> diff --git a/cogl/cogl-buffer.h b/cogl/cogl-buffer.h
> index 217de11..54c15af 100644
> --- a/cogl/cogl-buffer.h
> +++ b/cogl/cogl-buffer.h
> @@ -32,10 +32,9 @@
>  #ifndef __COGL_BUFFER_H__
>  #define __COGL_BUFFER_H__
>
> -#include <glib.h>
>  #include <cogl/cogl-types.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-buffer
> @@ -283,6 +282,6 @@ cogl_buffer_set_data (CoglBuffer *buffer,
>                        const void *data,
>                        size_t size);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_BUFFER_H__ */
> diff --git a/cogl/cogl-clip-state.h b/cogl/cogl-clip-state.h
> index 256c8c0..2d71fbf 100644
> --- a/cogl/cogl-clip-state.h
> +++ b/cogl/cogl-clip-state.h
> @@ -30,8 +30,8 @@
>
>  #include <cogl/cogl-types.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_CLIP_STATE_H */
> diff --git a/cogl/cogl-clutter-xlib.h b/cogl/cogl-clutter-xlib.h
> index 6c08f58..67c27b6 100644
> --- a/cogl/cogl-clutter-xlib.h
> +++ b/cogl/cogl-clutter-xlib.h
> @@ -30,12 +30,12 @@
>
>  #include <X11/Xutil.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  #define cogl_clutter_winsys_xlib_get_visual_info
> cogl_clutter_winsys_xlib_get_visual_info_CLUTTER
>  XVisualInfo *
>  cogl_clutter_winsys_xlib_get_visual_info (void);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_CLUTTER_XLIB_H__ */
> diff --git a/cogl/cogl-clutter.h b/cogl/cogl-clutter.h
> index 2673888..c3dfbe6 100644
> --- a/cogl/cogl-clutter.h
> +++ b/cogl/cogl-clutter.h
> @@ -28,7 +28,7 @@
>  #ifndef __COGL_CLUTTER_H__
>  #define __COGL_CLUTTER_H__
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  #define cogl_clutter_check_extension cogl_clutter_check_extension_CLUTTER
>  CoglBool
> @@ -42,6 +42,6 @@ cogl_clutter_winsys_has_feature (CoglWinsysFeature
> feature);
>  void
>  cogl_onscreen_clutter_backend_set_size (int width, int height);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_CLUTTER_H__ */
> diff --git a/cogl/cogl-color.h b/cogl/cogl-color.h
> index 3c2dd66..0a41cca 100644
> --- a/cogl/cogl-color.h
> +++ b/cogl/cogl-color.h
> @@ -40,7 +40,7 @@
>
>  #include <cogl/cogl-types.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * cogl_color_init_from_4ub:
> @@ -485,6 +485,6 @@ cogl_color_copy (const CoglColor *color);
>  void
>  cogl_color_free (CoglColor *color);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_COLOR_H__ */
> diff --git a/cogl/cogl-context.h b/cogl/cogl-context.h
> index 71904c4..587dff7 100644
> --- a/cogl/cogl-context.h
> +++ b/cogl/cogl-context.h
> @@ -43,7 +43,7 @@ typedef struct _CoglContext CoglContext;
>  #include <android/native_window.h>
>  #endif
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-context
> @@ -310,7 +310,7 @@ cogl_foreach_feature (CoglContext *context,
>                        CoglFeatureCallback callback,
>                        void *user_data);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_CONTEXT_H__ */
>
> diff --git a/cogl/cogl-debug.h b/cogl/cogl-debug.h
> index a7ac616..7c39ba3 100644
> --- a/cogl/cogl-debug.h
> +++ b/cogl/cogl-debug.h
> @@ -30,7 +30,7 @@
>
>  #include <glib.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  typedef enum {
>    COGL_DEBUG_SLICING,
> @@ -113,7 +113,7 @@ _cogl_parse_debug_string (const char *value,
>                            CoglBool enable,
>                            CoglBool ignore_help);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_DEBUG_H__ */
>
> diff --git a/cogl/cogl-defines.h.in b/cogl/cogl-defines.h.in
> index a8765d8..6e40212 100644
> --- a/cogl/cogl-defines.h.in
> +++ b/cogl/cogl-defines.h.in
> @@ -28,10 +28,6 @@
>  #ifndef __COGL_DEFINES_H__
>  #define __COGL_DEFINES_H__
>
> -#include <glib.h>
> -
> -G_BEGIN_DECLS
> -
>  @COGL_DEFINES@
>
>  #define COGL_VERSION_MAJOR_INTERNAL @COGL_MAJOR_VERSION@
> @@ -39,6 +35,4 @@ G_BEGIN_DECLS
>  #define COGL_VERSION_MICRO_INTERNAL @COGL_MICRO_VERSION@
>  #define COGL_VERSION_STRING_INTERNAL "@COGL_VERSION@"
>
> -G_END_DECLS
> -
>  #endif
> diff --git a/cogl/cogl-depth-state.h b/cogl/cogl-depth-state.h
> index 072c6b0..f9ecded 100644
> --- a/cogl/cogl-depth-state.h
> +++ b/cogl/cogl-depth-state.h
> @@ -31,7 +31,7 @@
>  #ifndef __COGL_DEPTH_STATE_H__
>  #define __COGL_DEPTH_STATE_H__
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-depth-state
> @@ -255,6 +255,6 @@ cogl_depth_state_get_range (CoglDepthState *state,
>                              float *near_val,
>                              float *far_val);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_DEPTH_STATE_H__ */
> diff --git a/cogl/cogl-display.h b/cogl/cogl-display.h
> index 62d5ee5..75a8678 100644
> --- a/cogl/cogl-display.h
> +++ b/cogl/cogl-display.h
> @@ -34,7 +34,7 @@
>  #include <cogl/cogl-renderer.h>
>  #include <cogl/cogl-onscreen-template.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  #ifdef COGL_HAS_EGL_PLATFORM_GDL_SUPPORT
>  #include <libgdl.h>
> @@ -185,7 +185,7 @@ cogl_gdl_display_set_plane (CoglDisplay *display,
>  CoglBool
>  cogl_is_display (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_DISPLAY_H__ */
>
> diff --git a/cogl/cogl-egl.h b/cogl/cogl-egl.h
> index c9ca786..420a99e 100644
> --- a/cogl/cogl-egl.h
> +++ b/cogl/cogl-egl.h
> @@ -28,7 +28,7 @@
>
>  #include "cogl-egl-defines.h"
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  #define NativeDisplayType EGLNativeDisplayType
>  #define NativeWindowType EGLNativeWindowType
> @@ -53,7 +53,7 @@ G_BEGIN_DECLS
>  EGLDisplay
>  cogl_egl_context_get_egl_display (CoglContext *context);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* COGL_HAS_EGL_SUPPORT */
>
> diff --git a/cogl/cogl-euler.h b/cogl/cogl-euler.h
> index a4c988d..c936dca 100644
> --- a/cogl/cogl-euler.h
> +++ b/cogl/cogl-euler.h
> @@ -33,9 +33,7 @@
>
>  #include <cogl/cogl-types.h>
>
> -#include <glib.h>
> -
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-euler
> @@ -247,7 +245,7 @@ cogl_euler_copy (const CoglEuler *src);
>  void
>  cogl_euler_free (CoglEuler *euler);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_EULER_H */
>
> diff --git a/cogl/cogl-flags.h b/cogl/cogl-flags.h
> index d62294a..f2178d7 100644
> --- a/cogl/cogl-flags.h
> +++ b/cogl/cogl-flags.h
> @@ -31,7 +31,7 @@
>
>  #include "cogl-util.h"
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /* These are macros used to implement a fixed-size array of bits. This
>     should be used instead of CoglBitmask when the maximum bit number
> @@ -119,7 +119,7 @@ G_BEGIN_DECLS
>  #define COGL_FLAGS_FOREACH_END \
>    } } } G_STMT_END
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_FLAGS_H */
>
> diff --git a/cogl/cogl-framebuffer.h b/cogl/cogl-framebuffer.h
> index c1295b8..0855d0f 100644
> --- a/cogl/cogl-framebuffer.h
> +++ b/cogl/cogl-framebuffer.h
> @@ -28,8 +28,6 @@
>  #ifndef __COGL_FRAMEBUFFER_H
>  #define __COGL_FRAMEBUFFER_H
>
> -#include <glib.h>
> -
>  #ifdef COGL_HAS_WIN32_SUPPORT
>  #include <windows.h>
>  #endif /* COGL_HAS_WIN32_SUPPORT */
> @@ -42,7 +40,7 @@
>  #include <cogl/cogl-quaternion.h>
>  #include <cogl/cogl-euler.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-framebuffer
> @@ -1121,7 +1119,7 @@ cogl_framebuffer_vdraw_attributes (CoglFramebuffer
> *framebuffer,
>                                     CoglVerticesMode mode,
>                                     int first_vertex,
>                                     int n_vertices,
> -                                   ...) G_GNUC_NULL_TERMINATED;
> +                                   ...) COGL_GNUC_NULL_TERMINATED;
>
>  /**
>   * cogl_framebuffer_draw_attributes:
> @@ -1221,7 +1219,7 @@ cogl_framebuffer_vdraw_indexed_attributes
> (CoglFramebuffer *framebuffer,
>                                             int first_vertex,
>                                             int n_vertices,
>                                             CoglIndices *indices,
> -                                           ...) G_GNUC_NULL_TERMINATED;
> +                                           ...) COGL_GNUC_NULL_TERMINATED;
>
>  /**
>   * cogl_framebuffer_draw_indexed_attributes:
> @@ -1774,7 +1772,7 @@ typedef enum { /*< prefix=COGL_FRAMEBUFFER_ERROR >*/
>  CoglBool
>  cogl_is_framebuffer (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_FRAMEBUFFER_H */
>
> diff --git a/cogl/cogl-gles2.h b/cogl/cogl-gles2.h
> index cbcea8b..004e132 100644
> --- a/cogl/cogl-gles2.h
> +++ b/cogl/cogl-gles2.h
> @@ -49,7 +49,7 @@
>  #include <cogl/cogl-gles2-types.h>
>  #endif
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-gles2
> @@ -362,7 +362,7 @@ cogl_gles2_texture_get_handle (CoglTexture *texture,
>  CoglBool
>  cogl_is_gles2_context (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_GLES2_H__ */
>
> diff --git a/cogl/cogl-index-buffer.h b/cogl/cogl-index-buffer.h
> index 663e066..074452c 100644
> --- a/cogl/cogl-index-buffer.h
> +++ b/cogl/cogl-index-buffer.h
> @@ -33,7 +33,7 @@
>
>  #include <cogl/cogl-context.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-index-buffer
> @@ -79,7 +79,7 @@ cogl_index_buffer_new (CoglContext *context,
>  CoglBool
>  cogl_is_index_buffer (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_INDEX_BUFFER_H__ */
>
> diff --git a/cogl/cogl-indices.h b/cogl/cogl-indices.h
> index c13e425..d56348b 100644
> --- a/cogl/cogl-indices.h
> +++ b/cogl/cogl-indices.h
> @@ -38,7 +38,7 @@ typedef struct _CoglIndices CoglIndices;
>
>  #include <cogl/cogl-index-buffer.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-index-range
> @@ -140,7 +140,7 @@ cogl_get_rectangle_indices (CoglContext *context, int
> n_rectangles);
>  CoglBool
>  cogl_is_indices (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_INDICES_H__ */
>
> diff --git a/cogl/cogl-kms-display.h b/cogl/cogl-kms-display.h
> index 85ecc72..d8bfd9e 100644
> --- a/cogl/cogl-kms-display.h
> +++ b/cogl/cogl-kms-display.h
> @@ -32,7 +32,7 @@
>  #include <cogl/cogl-types.h>
>  #include <cogl/cogl-display.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * cogl_kms_display_queue_modes_reset:
> @@ -54,5 +54,5 @@ G_BEGIN_DECLS
>  void
>  cogl_kms_display_queue_modes_reset (CoglDisplay *display);
>
> -G_END_DECLS
> +COGL_END_DECLS
>  #endif /* __COGL_KMS_DISPLAY_H__ */
> diff --git a/cogl/cogl-kms-renderer.h b/cogl/cogl-kms-renderer.h
> index 539fa78..fdd8bdf 100644
> --- a/cogl/cogl-kms-renderer.h
> +++ b/cogl/cogl-kms-renderer.h
> @@ -31,7 +31,7 @@
>  #include <cogl/cogl-types.h>
>  #include <cogl/cogl-renderer.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * cogl_kms_renderer_get_kms_fd:
> @@ -47,5 +47,5 @@ G_BEGIN_DECLS
>  int
>  cogl_kms_renderer_get_kms_fd (CoglRenderer *renderer);
>
> -G_END_DECLS
> +COGL_END_DECLS
>  #endif /* __COGL_KMS_RENDERER_H__ */
> diff --git a/cogl/cogl-magazine-private.h b/cogl/cogl-magazine-private.h
> index 16e5a61..c07e0fe 100644
> --- a/cogl/cogl-magazine-private.h
> +++ b/cogl/cogl-magazine-private.h
> @@ -21,10 +21,6 @@
>   *
>   */
>
> -#if !defined(__COGL_H_INSIDE__) && !defined(COGL_COMPILATION)
> -#error "Only <cogl/cogl.h> can be included directly."
> -#endif
> -
>  #ifndef __COGL_MAGAZINE_PRIVATE_H__
>  #define __COGL_MAGAZINE_PRIVATE_H__
>
> @@ -32,8 +28,6 @@
>
>  #include "cogl-memory-stack-private.h"
>
> -G_BEGIN_DECLS
> -
>  typedef struct _CoglMagazineChunk CoglMagazineChunk;
>
>  struct _CoglMagazineChunk
> @@ -77,6 +71,4 @@ _cogl_magazine_chunk_free (CoglMagazine *magazine, void
> *data)
>  void
>  _cogl_magazine_free (CoglMagazine *magazine);
>
> -G_END_DECLS
> -
>  #endif /* __COGL_MAGAZINE_PRIVATE_H__ */
> diff --git a/cogl/cogl-matrix-private.h b/cogl/cogl-matrix-private.h
> index 0d79564..764d2a6 100644
> --- a/cogl/cogl-matrix-private.h
> +++ b/cogl/cogl-matrix-private.h
> @@ -29,7 +29,7 @@
>
>  #include <glib.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  #define _COGL_MATRIX_DEBUG_PRINT(MATRIX) \
>    if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_MATRICES))) \
> @@ -41,7 +41,7 @@ G_BEGIN_DECLS
>  void
>  _cogl_matrix_prefix_print (const char *prefix, const CoglMatrix *matrix);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_MATRIX_PRIVATE_H */
>
> diff --git a/cogl/cogl-matrix.h b/cogl/cogl-matrix.h
> index 8d85e92..b1935a1 100644
> --- a/cogl/cogl-matrix.h
> +++ b/cogl/cogl-matrix.h
> @@ -27,11 +27,14 @@
>  #ifndef __COGL_MATRIX_H
>  #define __COGL_MATRIX_H
>
> -#include <glib.h>
> +#ifdef COGL_HAS_GTYPE_SUPPORT
> +#include <glib-object.h>
> +#endif /* COGL_HAS_GTYPE_SUPPORT */
> +
>  #include "cogl-types.h"
>  #include "cogl-quaternion.h"
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-matrix
> @@ -770,7 +773,7 @@ cogl_gtype_matrix_get_type (void);
>
>  #endif /* COGL_HAS_GTYPE_SUPPORT */
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_MATRIX_H */
>
> diff --git a/cogl/cogl-memory-stack-private.h
> b/cogl/cogl-memory-stack-private.h
> index d6d5a9c..4e077f2 100644
> --- a/cogl/cogl-memory-stack-private.h
> +++ b/cogl/cogl-memory-stack-private.h
> @@ -21,16 +21,10 @@
>   *
>   */
>
> -#if !defined(__COGL_H_INSIDE__) && !defined(COGL_COMPILATION)
> -#error "Only <cogl/cogl.h> can be included directly."
> -#endif
> -
> -#include <glib.h>
> -
>  #ifndef __COGL_MEMORY_STACK__
>  #define __COGL_MEMORY_STACK__
>
> -G_BEGIN_DECLS
> +#include <glib.h>
>
>  typedef struct _CoglMemoryStack CoglMemoryStack;
>
> @@ -46,6 +40,4 @@ _cogl_memory_stack_rewind (CoglMemoryStack *stack);
>  void
>  _cogl_memory_stack_free (CoglMemoryStack *stack);
>
> -G_END_DECLS
> -
>  #endif /* __COGL_MEMORY_STACK__ */
> diff --git a/cogl/cogl-meta-texture.h b/cogl/cogl-meta-texture.h
> index 06a3088..ed951fa 100644
> --- a/cogl/cogl-meta-texture.h
> +++ b/cogl/cogl-meta-texture.h
> @@ -30,9 +30,8 @@
>  #define __COGL_META_TEXTURE_H__
>
>  #include <cogl/cogl-pipeline-layer-state.h>
> -#include <glib.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-meta-texture
> @@ -178,6 +177,6 @@ cogl_meta_texture_foreach_in_region (CoglMetaTexture
> *meta_texture,
>                                       CoglMetaTextureCallback callback,
>                                       void *user_data);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_META_TEXTURE_H__ */
> diff --git a/cogl/cogl-offscreen.h b/cogl/cogl-offscreen.h
> index 9ce428f..8e228d4 100644
> --- a/cogl/cogl-offscreen.h
> +++ b/cogl/cogl-offscreen.h
> @@ -31,7 +31,7 @@
>  #include <cogl/cogl-types.h>
>  #include <cogl/cogl-texture.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-offscreen
> @@ -82,6 +82,6 @@ cogl_offscreen_new_to_texture (CoglTexture *texture);
>  CoglBool
>  cogl_is_offscreen (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_OFFSCREEN_H__ */
> diff --git a/cogl/cogl-onscreen-template.h b/cogl/cogl-onscreen-template.h
> index 3df8f0f..58d88d4 100644
> --- a/cogl/cogl-onscreen-template.h
> +++ b/cogl/cogl-onscreen-template.h
> @@ -33,7 +33,7 @@
>
>  #include <cogl/cogl-swap-chain.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  typedef struct _CoglOnscreenTemplate         CoglOnscreenTemplate;
>
> @@ -101,6 +101,6 @@ cogl_onscreen_template_set_swap_throttled (
>  CoglBool
>  cogl_is_onscreen_template (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_ONSCREEN_TEMPLATE_H__ */
> diff --git a/cogl/cogl-onscreen.h b/cogl/cogl-onscreen.h
> index 5f443f7..3a1758b 100644
> --- a/cogl/cogl-onscreen.h
> +++ b/cogl/cogl-onscreen.h
> @@ -34,9 +34,8 @@
>
>  #include <cogl/cogl-context.h>
>  #include <cogl/cogl-framebuffer.h>
> -#include <glib.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  typedef struct _CoglOnscreen CoglOnscreen;
>  #define COGL_ONSCREEN(X) ((CoglOnscreen *)(X))
> @@ -555,6 +554,6 @@ cogl_onscreen_remove_resize_handler (CoglOnscreen
> *onscreen,
>  CoglBool
>  cogl_is_onscreen (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_ONSCREEN_H */
> diff --git a/cogl/cogl-path.h b/cogl/cogl-path.h
> index 2947b63..d05ee24 100644
> --- a/cogl/cogl-path.h
> +++ b/cogl/cogl-path.h
> @@ -31,7 +31,7 @@
>  #include <cogl/cogl-types.h>
>  #include <cogl/cogl-context.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-paths
> @@ -450,7 +450,7 @@ cogl_path_set_fill_rule (CoglPath *path,
> CoglPathFillRule fill_rule);
>  CoglPathFillRule
>  cogl_path_get_fill_rule (CoglPath *path);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PATH_H__ */
>
> diff --git a/cogl/cogl-pipeline-layer-state.h
> b/cogl/cogl-pipeline-layer-state.h
> index 9380ddf..c8e0d0e 100644
> --- a/cogl/cogl-pipeline-layer-state.h
> +++ b/cogl/cogl-pipeline-layer-state.h
> @@ -32,9 +32,8 @@
>  #include <cogl/cogl-color.h>
>  #include <cogl/cogl-matrix.h>
>  #include <cogl/cogl-texture.h>
> -#include <glib.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * CoglPipelineFilter:
> @@ -582,6 +581,6 @@ cogl_pipeline_add_layer_snippet (CoglPipeline
> *pipeline,
>                                   int layer,
>                                   CoglSnippet *snippet);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PIPELINE_LAYER_STATE_H__ */
> diff --git a/cogl/cogl-pipeline-snippet-private.h
> b/cogl/cogl-pipeline-snippet-private.h
> index bfc9d5d..b10b6ca 100644
> --- a/cogl/cogl-pipeline-snippet-private.h
> +++ b/cogl/cogl-pipeline-snippet-private.h
> @@ -28,6 +28,8 @@
>  #ifndef __COGL_PIPELINE_SNIPPET_PRIVATE_H
>  #define __COGL_PIPELINE_SNIPPET_PRIVATE_H
>
> +#include <glib.h>
> +
>  #include "cogl-snippet.h"
>  #include "cogl-queue.h"
>
> diff --git a/cogl/cogl-pipeline-state.h b/cogl/cogl-pipeline-state.h
> index c402e6d..97f87e5 100644
> --- a/cogl/cogl-pipeline-state.h
> +++ b/cogl/cogl-pipeline-state.h
> @@ -31,9 +31,8 @@
>  #include <cogl/cogl-pipeline.h>
>  #include <cogl/cogl-color.h>
>  #include <cogl/cogl-depth-state.h>
> -#include <glib.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * cogl_pipeline_set_color:
> @@ -662,6 +661,6 @@ void
>  cogl_pipeline_add_snippet (CoglPipeline *pipeline,
>                             CoglSnippet *snippet);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PIPELINE_STATE_H__ */
> diff --git a/cogl/cogl-pipeline.h b/cogl/cogl-pipeline.h
> index 5cd21d9..647d1dd 100644
> --- a/cogl/cogl-pipeline.h
> +++ b/cogl/cogl-pipeline.h
> @@ -37,7 +37,7 @@ typedef struct _CoglPipeline CoglPipeline;
>  #include <cogl/cogl-context.h>
>  #include <cogl/cogl-snippet.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-pipeline
> @@ -164,6 +164,6 @@ cogl_pipeline_get_uniform_location (CoglPipeline
> *pipeline,
>                                      const char *uniform_name);
>
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PIPELINE_H__ */
> diff --git a/cogl/cogl-pixel-buffer-private.h
> b/cogl/cogl-pixel-buffer-private.h
> index 974afa6..d6ee07b 100644
> --- a/cogl/cogl-pixel-buffer-private.h
> +++ b/cogl/cogl-pixel-buffer-private.h
> @@ -33,13 +33,13 @@
>
>  #include <glib.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  struct _CoglPixelBuffer
>  {
>    CoglBuffer            _parent;
>  };
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PIXEL_BUFFER_PRIVATE_H__ */
> diff --git a/cogl/cogl-pixel-buffer.h b/cogl/cogl-pixel-buffer.h
> index 3934c3a..09ee5e9 100644
> --- a/cogl/cogl-pixel-buffer.h
> +++ b/cogl/cogl-pixel-buffer.h
> @@ -32,11 +32,10 @@
>  #ifndef __COGL_PIXEL_BUFFER_H__
>  #define __COGL_PIXEL_BUFFER_H__
>
> -#include <glib.h>
>  #include <cogl/cogl-types.h>
>  #include <cogl/cogl-context.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  #define COGL_PIXEL_BUFFER(buffer) ((CoglPixelBuffer *)(buffer))
>
> @@ -110,6 +109,6 @@ cogl_pixel_buffer_set_region (CoglPixelBuffer *buffer,
>                                unsigned int dst_y);
>  #endif
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PIXEL_BUFFER_H__ */
> diff --git a/cogl/cogl-point-in-poly-private.h
> b/cogl/cogl-point-in-poly-private.h
> index 6b534b6..1f7f5f6 100644
> --- a/cogl/cogl-point-in-poly-private.h
> +++ b/cogl/cogl-point-in-poly-private.h
> @@ -25,7 +25,7 @@
>
>  #include <glib.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  int
>  _cogl_util_point_in_screen_poly (float point_x,
> @@ -34,7 +34,7 @@ _cogl_util_point_in_screen_poly (float point_x,
>                                   size_t stride,
>                                   int n_vertices);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_POINT_INT_POLYGON_PRIVATE_H */
>
> diff --git a/cogl/cogl-poll.h b/cogl/cogl-poll.h
> index 2a319bd..6496c7d 100644
> --- a/cogl/cogl-poll.h
> +++ b/cogl/cogl-poll.h
> @@ -31,11 +31,10 @@
>  #ifndef __COGL_POLL_H__
>  #define __COGL_POLL_H__
>
> -#include <glib.h>
>  #include <cogl/cogl-defines.h>
>  #include <cogl/cogl-context.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-poll
> @@ -163,6 +162,6 @@ cogl_poll_dispatch (CoglContext *context,
>                      const CoglPollFD *poll_fds,
>                      int n_poll_fds);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_POLL_H__ */
> diff --git a/cogl/cogl-primitive-texture.h b/cogl/cogl-primitive-texture.h
> index 39c3c41..5bd32c7 100644
> --- a/cogl/cogl-primitive-texture.h
> +++ b/cogl/cogl-primitive-texture.h
> @@ -31,7 +31,7 @@
>
>  #include "cogl-types.h"
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-primitive-texture
> @@ -93,6 +93,6 @@ void
>  cogl_primitive_texture_set_auto_mipmap (CoglPrimitiveTexture
> *primitive_texture,
>                                          CoglBool value);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PRIMITIVE_TEXTURE_H__ */
> diff --git a/cogl/cogl-primitive.h b/cogl/cogl-primitive.h
> index e887608..1e97ce0 100644
> --- a/cogl/cogl-primitive.h
> +++ b/cogl/cogl-primitive.h
> @@ -39,7 +39,7 @@ typedef struct _CoglPrimitive CoglPrimitive;
>  #include <cogl/cogl-types.h>
>  #include <cogl/cogl-attribute.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-primitive
> @@ -868,7 +868,7 @@ cogl_primitive_foreach_attribute (CoglPrimitive
> *primitive,
>                                    CoglPrimitiveAttributeCallback callback,
>                                    void *user_data);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PRIMITIVE_H__ */
>
> diff --git a/cogl/cogl-primitives-private.h
> b/cogl/cogl-primitives-private.h
> index f36213c..d42cda7 100644
> --- a/cogl/cogl-primitives-private.h
> +++ b/cogl/cogl-primitives-private.h
> @@ -26,7 +26,7 @@
>
>  #include <glib.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /* Draws a rectangle without going through the journal so that it will
>     be flushed immediately. This should only be used in situations
> @@ -54,6 +54,6 @@ _cogl_framebuffer_draw_multitextured_rectangles (
>                                          CoglMultiTexturedRect *rects,
>                                          int n_rects);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PRIMITIVES_PRIVATE_H */
> diff --git a/cogl/cogl-private.h b/cogl/cogl-private.h
> index a78435b..056d606 100644
> --- a/cogl/cogl-private.h
> +++ b/cogl/cogl-private.h
> @@ -28,7 +28,7 @@
>
>  #include "cogl-context.h"
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  CoglBool
>  _cogl_check_extension (const char *name, char * const *ext);
> @@ -90,6 +90,6 @@ _cogl_pixel_format_is_endian_dependant (CoglPixelFormat
> format);
>  #define COGL_PIXEL_FORMAT_CAN_HAVE_PREMULT(format) \
>    (((format) & COGL_A_BIT) && (format) != COGL_PIXEL_FORMAT_A_8)
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_PRIVATE_H__ */
> diff --git a/cogl/cogl-quaternion.h b/cogl/cogl-quaternion.h
> index 8daf95d..0651840 100644
> --- a/cogl/cogl-quaternion.h
> +++ b/cogl/cogl-quaternion.h
> @@ -34,7 +34,7 @@
>  #include <cogl/cogl-types.h>
>  #include <cogl/cogl-vector.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-quaternion
> @@ -512,7 +512,7 @@ cogl_get_static_identity_quaternion (void);
>  const CoglQuaternion *
>  cogl_get_static_zero_quaternion (void);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_QUATERNION_H__ */
>
> diff --git a/cogl/cogl-rectangle-map.h b/cogl/cogl-rectangle-map.h
> index 0b724fc..06c89af 100644
> --- a/cogl/cogl-rectangle-map.h
> +++ b/cogl/cogl-rectangle-map.h
> @@ -24,6 +24,7 @@
>  #ifndef __COGL_RECTANGLE_MAP_H
>  #define __COGL_RECTANGLE_MAP_H
>
> +#include <glib.h>
>  #include "cogl-types.h"
>
>  typedef struct _CoglRectangleMap      CoglRectangleMap;
> diff --git a/cogl/cogl-renderer.h b/cogl/cogl-renderer.h
> index ebb055e..4596519 100644
> --- a/cogl/cogl-renderer.h
> +++ b/cogl/cogl-renderer.h
> @@ -28,13 +28,11 @@
>  #ifndef __COGL_RENDERER_H__
>  #define __COGL_RENDERER_H__
>
> -#include <glib.h>
> -
>  #include <cogl/cogl-types.h>
>  #include <cogl/cogl-onscreen-template.h>
>  #include <cogl/cogl-error.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-renderer
> @@ -385,7 +383,7 @@ cogl_renderer_set_driver (CoglRenderer *renderer,
>  CoglDriver
>  cogl_renderer_get_driver (CoglRenderer *renderer);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_RENDERER_H__ */
>
> diff --git a/cogl/cogl-sdl.h b/cogl/cogl-sdl.h
> index 05da036..b4f86aa 100644
> --- a/cogl/cogl-sdl.h
> +++ b/cogl/cogl-sdl.h
> @@ -40,7 +40,7 @@
>  #pragma comment (lib, "SDLmain.lib")
>  #endif
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-sdl
> @@ -202,6 +202,6 @@ cogl_sdl_handle_event (CoglContext *context, SDL_Event
> *event);
>  void
>  cogl_sdl_idle (CoglContext *context);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_SDL_H__ */
> diff --git a/cogl/cogl-snippet.h b/cogl/cogl-snippet.h
> index 5348363..fcf9af2 100644
> --- a/cogl/cogl-snippet.h
> +++ b/cogl/cogl-snippet.h
> @@ -32,9 +32,7 @@
>  #ifndef __COGL_SNIPPET_H__
>  #define __COGL_SNIPPET_H__
>
> -#include <glib.h>
> -
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-snippet
> @@ -738,6 +736,6 @@ cogl_snippet_set_post (CoglSnippet *snippet,
>  const char *
>  cogl_snippet_get_post (CoglSnippet *snippet);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_SNIPPET_H__ */
> diff --git a/cogl/cogl-sub-texture.h b/cogl/cogl-sub-texture.h
> index 914b4c5..ac06c01 100644
> --- a/cogl/cogl-sub-texture.h
> +++ b/cogl/cogl-sub-texture.h
> @@ -31,9 +31,7 @@
>  #ifndef __COGL_SUB_TEXTURE_H
>  #define __COGL_SUB_TEXTURE_H
>
> -#include <glib.h>
> -
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-sub-texture
> @@ -119,6 +117,6 @@ cogl_sub_texture_get_parent (CoglSubTexture
> *sub_texture);
>  CoglBool
>  cogl_is_sub_texture (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_SUB_TEXTURE_H */
> diff --git a/cogl/cogl-swap-chain.h b/cogl/cogl-swap-chain.h
> index 21908e9..05596a8 100644
> --- a/cogl/cogl-swap-chain.h
> +++ b/cogl/cogl-swap-chain.h
> @@ -28,7 +28,7 @@
>  #ifndef __COGL_SWAP_CHAIN_H__
>  #define __COGL_SWAP_CHAIN_H__
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  typedef struct _CoglSwapChain CoglSwapChain;
>
> @@ -46,6 +46,6 @@ cogl_swap_chain_set_length (CoglSwapChain *swap_chain,
>  CoglBool
>  cogl_is_swap_chain (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_SWAP_CHAIN_H__ */
> diff --git a/cogl/cogl-texture-2d-gl.h b/cogl/cogl-texture-2d-gl.h
> index 5136a35..6c2c3fa 100644
> --- a/cogl/cogl-texture-2d-gl.h
> +++ b/cogl/cogl-texture-2d-gl.h
> @@ -34,9 +34,7 @@
>  #include "cogl-context.h"
>  #include "cogl-texture-2d.h"
>
> -#include <glib.h>
> -
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * cogl_texture_2d_gl_new_from_foreign:
> @@ -70,6 +68,6 @@ cogl_texture_2d_gl_new_from_foreign (CoglContext *ctx,
>                                       CoglPixelFormat format,
>                                       CoglError **error);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* _COGL_TEXTURE_2D_GL_H_ */
> diff --git a/cogl/cogl-texture-2d-sliced.h b/cogl/cogl-texture-2d-sliced.h
> index 3173d14..363d6d8 100644
> --- a/cogl/cogl-texture-2d-sliced.h
> +++ b/cogl/cogl-texture-2d-sliced.h
> @@ -30,8 +30,6 @@
>  #include "cogl-context.h"
>  #include "cogl-types.h"
>
> -#include <glib.h>
> -
>  /**
>   * SECTION:cogl-texture-2d-sliced
>   * @short_description: Functions for creating and manipulating 2D meta
> diff --git a/cogl/cogl-texture-2d.h b/cogl/cogl-texture-2d.h
> index d07cdef..fcd86f7 100644
> --- a/cogl/cogl-texture-2d.h
> +++ b/cogl/cogl-texture-2d.h
> @@ -34,9 +34,7 @@
>  #include "cogl-context.h"
>  #include "cogl-bitmap.h"
>
> -#include <glib.h>
> -
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-texture-2d
> @@ -187,6 +185,6 @@ cogl_texture_2d_new_from_bitmap (CoglBitmap *bitmap,
>                                   CoglPixelFormat internal_format,
>                                   CoglError **error);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_TEXTURE_2D_H */
> diff --git a/cogl/cogl-texture-3d.h b/cogl/cogl-texture-3d.h
> index 1956b4d..1ddde33 100644
> --- a/cogl/cogl-texture-3d.h
> +++ b/cogl/cogl-texture-3d.h
> @@ -31,9 +31,7 @@
>  #ifndef __COGL_TEXTURE_3D_H
>  #define __COGL_TEXTURE_3D_H
>
> -#include <glib.h>
> -
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-texture-3d
> @@ -180,6 +178,6 @@ cogl_texture_3d_new_from_bitmap (CoglBitmap *bitmap,
>  CoglBool
>  cogl_is_texture_3d (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_TEXTURE_3D_H */
> diff --git a/cogl/cogl-texture-rectangle.h b/cogl/cogl-texture-rectangle.h
> index 20de97d..447866f 100644
> --- a/cogl/cogl-texture-rectangle.h
> +++ b/cogl/cogl-texture-rectangle.h
> @@ -29,7 +29,7 @@
>
>  #include "cogl-context.h"
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-texture-rectangle
> @@ -199,6 +199,6 @@ cogl_texture_rectangle_new_from_foreign (CoglContext
> *ctx,
>                                           CoglPixelFormat format,
>                                           CoglError **error);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_TEXURE_RECTANGLE_H */
> diff --git a/cogl/cogl-texture.h b/cogl/cogl-texture.h
> index 69d6da0..0a61197 100644
> --- a/cogl/cogl-texture.h
> +++ b/cogl/cogl-texture.h
> @@ -38,7 +38,7 @@ typedef struct _CoglTexture CoglTexture;
>  #include <cogl/cogl-pixel-buffer.h>
>  #include <cogl/cogl-bitmap.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-texture
> @@ -421,6 +421,6 @@ cogl_texture_set_region_from_bitmap (CoglTexture
> *texture,
>                                       unsigned int dst_height,
>                                       CoglBitmap *bitmap);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_TEXTURE_H__ */
> diff --git a/cogl/cogl-types.h b/cogl/cogl-types.h
> index 15464f1..690e19c 100644
> --- a/cogl/cogl-types.h
> +++ b/cogl/cogl-types.h
> @@ -29,11 +29,20 @@
>  #define __COGL_TYPES_H__
>
>  #include <stdint.h>
> -#include <glib-object.h>
> +#include <stddef.h>
>
>  #include <cogl/cogl-defines.h>
>
> -G_BEGIN_DECLS
> +/* Guard C code in headers, while including them from C++ */
> +#ifdef  __cplusplus
> +#define COGL_BEGIN_DECLS  extern "C" {
> +#define COGL_END_DECLS    }
> +#else
> +#define COGL_BEGIN_DECLS
> +#define COGL_END_DECLS
> +#endif
> +
> +COGL_BEGIN_DECLS
>
>  /**
>   * CoglBool:
> @@ -73,6 +82,19 @@ typedef int CoglBool;
>  #define FALSE 0
>  #endif
>
> +#if __GNUC__ >= 4
> +#define COGL_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
> +#else
> +#define COGL_GNUC_NULL_TERMINATED
> +#endif
> +
> +#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
> +#define COGL_GNUC_DEPRECATED                       \
> +  __attribute__((__deprecated__))
> +#else
> +#define COGL_GNUC_DEPRECATED
> +#endif /* __GNUC__ */
> +
>  /* Some structures are meant to be opaque but they have public
>     definitions because we want the size to be public so they can be
>     allocated on the stack. This macro is used to ensure that users
> @@ -687,6 +709,6 @@ typedef enum { /*< prefix=COGL_READ_PIXELS >*/
>    COGL_READ_PIXELS_COLOR_BUFFER = 1L << 0
>  } CoglReadPixelsFlags;
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_TYPES_H__ */
> diff --git a/cogl/cogl-vector.h b/cogl/cogl-vector.h
> index 3156b15..81ff473 100644
> --- a/cogl/cogl-vector.h
> +++ b/cogl/cogl-vector.h
> @@ -31,9 +31,7 @@
>  #ifndef __COGL_VECTOR_H
>  #define __COGL_VECTOR_H
>
> -#include <glib.h>
> -
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-vector
> @@ -347,7 +345,7 @@ cogl_vector3_dot_product (const float *a, const float
> *b);
>  float
>  cogl_vector3_distance (const float *a, const float *b);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_VECTOR_H */
>
> diff --git a/cogl/cogl-wayland-client.h b/cogl/cogl-wayland-client.h
> index 3f290dc..610f558 100644
> --- a/cogl/cogl-wayland-client.h
> +++ b/cogl/cogl-wayland-client.h
> @@ -24,8 +24,6 @@
>  #ifndef __COGL_WAYLAND_CLIENT_H
>  #define __COGL_WAYLAND_CLIENT_H
>
> -#include <glib.h>
> -
>  #define __COGL_H_INSIDE__
>  #include <cogl/cogl-wayland-renderer.h>
>
> diff --git a/cogl/cogl-wayland-renderer.h b/cogl/cogl-wayland-renderer.h
> index f5a760f..1d9d5fa 100644
> --- a/cogl/cogl-wayland-renderer.h
> +++ b/cogl/cogl-wayland-renderer.h
> @@ -33,7 +33,7 @@
>
>  #include <wayland-client.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * cogl_wayland_renderer_set_foreign_display:
> @@ -159,6 +159,6 @@ cogl_wayland_renderer_set_foreign_shell (CoglRenderer
> *renderer,
>  struct wl_shell *
>  cogl_wayland_renderer_get_shell (CoglRenderer *renderer);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_WAYLAND_RENDERER_H__ */
> diff --git a/cogl/cogl-wayland-server.h b/cogl/cogl-wayland-server.h
> index 6e66292..567a9f9 100644
> --- a/cogl/cogl-wayland-server.h
> +++ b/cogl/cogl-wayland-server.h
> @@ -24,15 +24,13 @@
>  #ifndef __COGL_WAYLAND_SERVER_H
>  #define __COGL_WAYLAND_SERVER_H
>
> -#include <glib.h>
> -
>  #include <wayland-server.h>
>
>  #define __COGL_H_INSIDE__
>  #include <cogl/cogl-context.h>
>  #include <cogl/cogl-texture-2d.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * cogl_wayland_display_set_compositor_display:
> @@ -79,6 +77,6 @@ cogl_wayland_texture_2d_new_from_buffer (CoglContext
> *ctx,
>                                           struct wl_buffer *buffer,
>                                           CoglError **error);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_WAYLAND_SERVER_H */
> diff --git a/cogl/cogl-win32-renderer.h b/cogl/cogl-win32-renderer.h
> index f05a620..f65bc8f 100644
> --- a/cogl/cogl-win32-renderer.h
> +++ b/cogl/cogl-win32-renderer.h
> @@ -31,7 +31,7 @@
>  #include <cogl/cogl-types.h>
>  #include <cogl/cogl-renderer.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * cogl_win32_renderer_handle_event:
> @@ -87,6 +87,6 @@ cogl_win32_renderer_remove_filter (CoglRenderer
> *renderer,
>                                     CoglWin32FilterFunc func,
>                                     void *data);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_WIN32_RENDERER_H__ */
> diff --git a/cogl/cogl-xlib-renderer.h b/cogl/cogl-xlib-renderer.h
> index 58dc866..a9277c6 100644
> --- a/cogl/cogl-xlib-renderer.h
> +++ b/cogl/cogl-xlib-renderer.h
> @@ -29,12 +29,11 @@
>  #define __COGL_XLIB_RENDERER_H__
>
>  #include <X11/Xlib.h>
> -#include <glib.h>
>
>  #define __COGL_H_INSIDE__
>  #include <cogl/cogl-renderer.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /*
>   * cogl_xlib_renderer_handle_event:
> @@ -140,6 +139,6 @@ cogl_xlib_renderer_set_event_retrieval_enabled
> (CoglRenderer *renderer,
>  Display *
>  cogl_xlib_renderer_get_display (CoglRenderer *renderer);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_XLIB_RENDERER_H__ */
> diff --git a/cogl/cogl-xlib.h b/cogl/cogl-xlib.h
> index 079a322..7a6bc7e 100644
> --- a/cogl/cogl-xlib.h
> +++ b/cogl/cogl-xlib.h
> @@ -24,16 +24,16 @@
>  #ifndef __COGL_XLIB_H__
>  #define __COGL_XLIB_H__
>
> -#include <glib.h>
> -
>  #include <X11/Xlib.h>
>
>  #define __COGL_XLIB_H_INSIDE__
> +#define __COGL_H_INSIDE__
>
> +#include <cogl/cogl-types.h>
>  #include <cogl/cogl-clutter-xlib.h>
>  #include <cogl/cogl-xlib-renderer.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /*
>   * cogl_xlib_get_display:
> diff --git a/cogl/cogl.h b/cogl/cogl.h
> index 875f32a..a5001eb 100644
> --- a/cogl/cogl.h
> +++ b/cogl/cogl.h
> @@ -25,8 +25,6 @@
>  #ifndef __COGL_H__
>  #define __COGL_H__
>
> -#include <glib.h>
> -
>  #define __COGL_H_INSIDE__
>
>  /*
> diff --git a/cogl/cogl1-context.h b/cogl/cogl1-context.h
> index cdf21c2..9ccf74e 100644
> --- a/cogl/cogl1-context.h
> +++ b/cogl/cogl1-context.h
> @@ -31,13 +31,11 @@
>  #ifndef __COGL_1_CONTEXT_H__
>  #define __COGL_1_CONTEXT_H__
>
> -#include <glib.h>
> -
>  #include <cogl/cogl-types.h>
>  #include <cogl/cogl-texture.h>
>  #include <cogl/cogl-framebuffer.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * cogl_set_framebuffer:
> @@ -154,7 +152,7 @@ cogl_pop_framebuffer (void);
>   * Deprecated: 1.2: The draw buffer API was replaced with a framebuffer
> API
>   */
>  void
> -cogl_push_draw_buffer (void) G_GNUC_DEPRECATED;
> +cogl_push_draw_buffer (void) COGL_GNUC_DEPRECATED;
>
>  /**
>   * cogl_pop_draw_buffer:
> @@ -164,7 +162,7 @@ cogl_push_draw_buffer (void) G_GNUC_DEPRECATED;
>   * Deprecated: 1.2: The draw buffer API was replaced with a framebuffer
> API
>   */
>  void
> -cogl_pop_draw_buffer (void) G_GNUC_DEPRECATED;
> +cogl_pop_draw_buffer (void) COGL_GNUC_DEPRECATED;
>
>  #endif /* COGL_DISABLE_DEPRECATED */
>
> @@ -197,6 +195,6 @@ cogl_pop_draw_buffer (void) G_GNUC_DEPRECATED;
>  void
>  cogl_flush (void);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_1_CONTEXT_H__ */
> diff --git a/cogl/winsys/cogl-texture-pixmap-x11.h
> b/cogl/winsys/cogl-texture-pixmap-x11.h
> index 77ff942..eaa743d 100644
> --- a/cogl/winsys/cogl-texture-pixmap-x11.h
> +++ b/cogl/winsys/cogl-texture-pixmap-x11.h
> @@ -26,11 +26,9 @@
>
>  #define __COGL_H_INSIDE__
>
> -#include <glib.h>
> -
>  #include <cogl/cogl-context.h>
>
> -G_BEGIN_DECLS
> +COGL_BEGIN_DECLS
>
>  /**
>   * SECTION:cogl-texture-pixmap-x11
> @@ -183,6 +181,6 @@ cogl_texture_pixmap_x11_set_damage_object
> (CoglTexturePixmapX11 *texture,
>  CoglBool
>  cogl_is_texture_pixmap_x11 (void *object);
>
> -G_END_DECLS
> +COGL_END_DECLS
>
>  #endif /* __COGL_TEXTURE_PIXMAP_X11_H */
> diff --git a/configure.ac b/configure.ac
> index 17d696e..59f5ce7 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -391,8 +391,11 @@ AS_IF([test "x$enable_glib" = "xyes"],
>        [
>          AS_GLIBCONFIG([deps/glib])
>          COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS -I\$(top_srcdir)/deps"
> +        COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS -I\$(top_builddir)/deps"
>          COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS -I\$(top_srcdir)/deps/glib"
> +        COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS
> -I\$(top_builddir)/deps/glib"
>          COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS
> -I\$(top_srcdir)/deps/gmodule"
> +        COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS
> -I\$(top_builddir)/deps/gmodule"
>          EXPERIMENTAL_CONFIG=yes
>          EXPERIMENTAL_OPTIONS="$EXPERIMENTAL_OPTIONS --disable-glib,"
>          enable_nls=no
> diff --git a/tests/conform/test-utils.h b/tests/conform/test-utils.h
> index 265dc32..02af5f4 100644
> --- a/tests/conform/test-utils.h
> +++ b/tests/conform/test-utils.h
> @@ -1,6 +1,8 @@
>  #ifndef _TEST_UTILS_H_
>  #define _TEST_UTILS_H_
>
> +#include <glib.h>
> +
>  /* We don't really care about functions that are defined without a
>     header for the unit tests so we can just disable it here */
>  #ifdef __GNUC__
> --
> 1.7.11.3.g3c3efa5
>
> _______________________________________________
> Cogl mailing list
> Cogl at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/cogl
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/cogl/attachments/20121126/233ef264/attachment-0001.html>


More information about the Cogl mailing list