From 37af2da4100a353d550e9a760e0f5adbd61cf5f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=98yvind=20Kol=C3=A5s?= <pippin@openedhand.com>
Date: Thu, 10 Jan 2008 09:55:44 +0000
Subject: [PATCH] Added COGLhandleARB since the underlying type on OSX is
 void*, patch from Tommi Komulainen <tommi.komulainen@iki.fi>, (#694) *
 clutter/cogl/gl/cogl-defines.h.in: Added COGLhandleARB typedef. *
 clutter/cogl/cogl.h: * clutter/cogl/gl/cogl.c: * clutter/clutter-shader.c:
 Use COGLhandleARB instead of COGLint when referring to program or shader
 handles.

---
 cogl.h               | 38 +++++++++++++++++++-------------------
 gl/cogl-defines.h.in |  1 +
 gl/cogl.c            | 40 ++++++++++++++++++++--------------------
 3 files changed, 40 insertions(+), 39 deletions(-)

diff --git a/cogl.h b/cogl.h
index 7bc5d0dc9..fe2bbe2a6 100644
--- a/cogl.h
+++ b/cogl.h
@@ -214,50 +214,50 @@ cogl_fog_set (const ClutterColor *fog_color,
               ClutterFixed        z_far);
 
 
-COGLint
+COGLhandleARB
 cogl_create_shader               (COGLenum     shaderType);
 
 void
-cogl_shader_destroy              (COGLint      handle);
+cogl_shader_destroy              (COGLhandleARB handle);
 
 
 void
-cogl_shader_source               (COGLint      shader,
-                                  const gchar *source);
+cogl_shader_source               (COGLhandleARB  shader,
+                                  const gchar   *source);
 void
-cogl_shader_compile               (COGLint      shader_handle);
+cogl_shader_compile               (COGLhandleARB shader_handle);
 
 void
-cogl_shader_get_info_log          (COGLint      handle,
-                                   guint        size,
-                                   gchar       *buffer);
+cogl_shader_get_info_log          (COGLhandleARB handle,
+                                   guint         size,
+                                   gchar        *buffer);
 
 void
-cogl_shader_get_parameteriv       (COGLint      handle,
-                                   COGLenum     pname,
-                                   COGLint     *dest);
+cogl_shader_get_parameteriv       (COGLhandleARB handle,
+                                   COGLenum      pname,
+                                   COGLint      *dest);
 
 
-COGLint
+COGLhandleARB
 cogl_create_program               (void);
 
 void
-cogl_program_destroy              (COGLint      handle);
+cogl_program_destroy              (COGLhandleARB handle);
 
 void
-cogl_program_attach_shader        (COGLint      program_handle,
-                                   COGLint      shader_handle);
+cogl_program_attach_shader        (COGLhandleARB program_handle,
+                                   COGLhandleARB shader_handle);
 
 /* 0 to use none */
 void
-cogl_program_link                 (COGLint      program_handle);
+cogl_program_link                 (COGLhandleARB program_handle);
 
 void
-cogl_program_use                  (COGLint      program_handle);
+cogl_program_use                  (COGLhandleARB program_handle);
 
 COGLint
-cogl_program_get_uniform_location (COGLint      program_int,
-                                   const gchar *uniform_name);
+cogl_program_get_uniform_location (COGLhandleARB  program_int,
+                                   const gchar   *uniform_name);
 
 
 void
diff --git a/gl/cogl-defines.h.in b/gl/cogl-defines.h.in
index b3a61e1a0..dd7e4ef4d 100644
--- a/gl/cogl-defines.h.in
+++ b/gl/cogl-defines.h.in
@@ -42,6 +42,7 @@ G_BEGIN_DECLS
 typedef GLenum COGLenum;
 typedef GLint COGLint;
 typedef GLuint COGLuint;
+typedef GLhandleARB COGLhandleARB;
 
 /* FIXME + DOCUMENT */
 
diff --git a/gl/cogl.c b/gl/cogl.c
index 7cf7b1f15..222e74258 100644
--- a/gl/cogl.c
+++ b/gl/cogl.c
@@ -785,14 +785,14 @@ cogl_fog_set (const ClutterColor *fog_color,
 
 #endif
 
-COGLint
+COGLhandleARB
 cogl_create_program (void)
 {
   PROC (GLhandleARB, 0, glCreateProgramObjectARB, void);
   return proc ();
 }
 
-COGLint
+COGLhandleARB
 cogl_create_shader (COGLenum shaderType)
 {
   PROC (GLhandleARB, 0, glCreateShaderObjectARB, GLenum);
@@ -800,79 +800,79 @@ cogl_create_shader (COGLenum shaderType)
 }
 
 void
-cogl_shader_source (COGLint      shader,
-                    const gchar *source)
+cogl_shader_source (COGLhandleARB  shader,
+                    const gchar   *source)
 {
   PROC (GLvoid,, glShaderSourceARB, GLhandleARB, GLsizei, const GLcharARB **, const GLint *)
   proc (shader, 1, &source, NULL);
 }
 
 void
-cogl_shader_compile (COGLint shader_handle)
+cogl_shader_compile (COGLhandleARB shader_handle)
 {
   PROC (GLvoid,, glCompileShaderARB, GLhandleARB);
   proc (shader_handle);
 }
 
 void
-cogl_program_attach_shader (COGLint program_handle,
-                            COGLint shader_handle)
+cogl_program_attach_shader (COGLhandleARB program_handle,
+                            COGLhandleARB shader_handle)
 {
   PROC (GLvoid,, glAttachObjectARB, GLhandleARB, GLhandleARB);
   proc (program_handle, shader_handle);
 }
 
 void
-cogl_program_link (COGLint program_handle)
+cogl_program_link (COGLhandleARB program_handle)
 {
   PROC (GLvoid,, glLinkProgramARB, GLhandleARB);
   proc (program_handle);
 }
 
 void
-cogl_program_use (COGLint program_handle)
+cogl_program_use (COGLhandleARB program_handle)
 {
   PROC (GLvoid,, glUseProgramObjectARB, GLhandleARB);
   proc (program_handle);
 }
 
 COGLint
-cogl_program_get_uniform_location (COGLint      program_handle,
-                                   const gchar *uniform_name)
+cogl_program_get_uniform_location (COGLhandleARB  program_handle,
+                                   const gchar   *uniform_name)
 {
   PROC (GLint,0, glGetUniformLocationARB, GLhandleARB, const GLcharARB *)
   return proc (program_handle, uniform_name);
 }
 
 void
-cogl_program_destroy (COGLint      handle)
+cogl_program_destroy (COGLhandleARB handle)
 {
   PROC (GLvoid,, glDeleteObjectARB, GLhandleARB);
   proc (handle);
 }
 
 void
-cogl_shader_destroy (COGLint handle)
+cogl_shader_destroy (COGLhandleARB handle)
 {
   PROC (GLvoid,, glDeleteObjectARB, GLhandleARB);
   proc (handle);
 }
 
 void
-cogl_shader_get_info_log (COGLint      handle,
-                          guint        size,
-                          gchar       *buffer)
+cogl_shader_get_info_log (COGLhandleARB handle,
+                          guint         size,
+                          gchar        *buffer)
 {
-  gint len;
+  COGLint len;
   PROC (GLvoid,, glGetInfoLogARB, GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
   proc (handle, size-1, &len, buffer);
   buffer[len]='\0';
 }
 
 void
-cogl_shader_get_parameteriv (COGLint      handle,
-                             COGLenum     pname,
-                             COGLint     *dest)
+cogl_shader_get_parameteriv (COGLhandleARB handle,
+                             COGLenum      pname,
+                             COGLint      *dest)
 {
   PROC (GLvoid,, glGetObjectParameterivARB, GLhandleARB, GLenum, GLint*)
   proc (handle, pname, dest);