diff --git a/ChangeLog b/ChangeLog index 7ab5578cf..252465d71 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-05-28 Neil Roberts + + * clutter/cogl/gles/cogl-gles2-wrapper.c (cogl_wrap_glGetFixedv): + Filled in the wrapper for glGetFixedv + 2008-05-28 Neil Roberts * clutter/cogl/gles/cogl-texture.c: Use the wrapper for diff --git a/clutter/cogl/gles/cogl-gles2-wrapper.c b/clutter/cogl/gles/cogl-gles2-wrapper.c index 267528cba..f7df08801 100644 --- a/clutter/cogl/gles/cogl-gles2-wrapper.c +++ b/clutter/cogl/gles/cogl-gles2-wrapper.c @@ -613,10 +613,42 @@ cogl_wrap_glClipPlanex (GLenum plane, GLfixed *equation) /* FIXME */ } +static void +cogl_gles2_float_array_to_fixed (int size, const GLfloat *floats, + GLfixed *fixeds) +{ + while (size-- > 0) + *(fixeds++) = CLUTTER_FLOAT_TO_FIXED (*(floats++)); +} + void cogl_wrap_glGetFixedv (GLenum pname, GLfixed *params) { - /* FIXME */ + _COGL_GET_GLES2_WRAPPER (w, NO_RETVAL); + + switch (pname) + { + case GL_MODELVIEW_MATRIX: + cogl_gles2_float_array_to_fixed (16, w->modelview_stack + + w->modelview_stack_pos * 16, + params); + break; + + case GL_PROJECTION_MATRIX: + cogl_gles2_float_array_to_fixed (16, w->projection_stack + + w->projection_stack_pos * 16, + params); + break; + + case GL_VIEWPORT: + { + GLfloat v[4]; + + glGetFloatv (GL_VIEWPORT, v); + cogl_gles2_float_array_to_fixed (4, v, params); + } + break; + } } void