The spec quite reasonably says it's dependent on the current read surface,
so it doesn't look like a Const.
---
 src/mesa/main/context.c            |    4 ----
 src/mesa/main/framebuffer.c        |    5 +++++
 src/mesa/main/get.c                |   16 ++++++++--------
 src/mesa/main/get_gen.py           |    4 ++--
 src/mesa/main/mtypes.h             |    6 +++---
 src/mesa/state_tracker/st_cb_get.c |    4 ++--
 6 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 03fc57e..5c20ce0 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -564,10 +564,6 @@ _mesa_init_constants(GLcontext *ctx)
    /* GL_ARB_draw_buffers */
    ctx->Const.MaxDrawBuffers = MAX_DRAW_BUFFERS;
 
-   /* GL_OES_read_format */
-   ctx->Const.ColorReadFormat = GL_RGBA;
-   ctx->Const.ColorReadType = GL_UNSIGNED_BYTE;
-
 #if FEATURE_EXT_framebuffer_object
    ctx->Const.MaxColorAttachments = MAX_COLOR_ATTACHMENTS;
    ctx->Const.MaxRenderbufferSize = MAX_WIDTH;
diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c
index 154deda..c9b4290 100644
--- a/src/mesa/main/framebuffer.c
+++ b/src/mesa/main/framebuffer.c
@@ -159,6 +159,11 @@ _mesa_initialize_framebuffer(struct gl_framebuffer *fb, 
const GLvisual *visual)
       fb->_ColorReadBufferIndex = BUFFER_FRONT_LEFT;
    }
 
+
+   /* GL_OES_read_format */
+   fb->ColorReadFormat = GL_RGBA;
+   fb->ColorReadType = GL_UNSIGNED_BYTE;
+
    fb->Delete = _mesa_destroy_framebuffer;
    fb->_Status = GL_FRAMEBUFFER_COMPLETE_EXT;
 
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index e8932f8..8ddd3ae 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1767,11 +1767,11 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
          break;
       case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
          CHECK_EXT1(OES_read_format, "GetBooleanv");
-         params[0] = INT_TO_BOOLEAN(ctx->Const.ColorReadType);
+         params[0] = INT_TO_BOOLEAN(ctx->ReadBuffer->ColorReadType);
          break;
       case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
          CHECK_EXT1(OES_read_format, "GetBooleanv");
-         params[0] = INT_TO_BOOLEAN(ctx->Const.ColorReadFormat);
+         params[0] = INT_TO_BOOLEAN(ctx->ReadBuffer->ColorReadFormat);
          break;
       case GL_NUM_FRAGMENT_REGISTERS_ATI:
          CHECK_EXT1(ATI_fragment_shader, "GetBooleanv");
@@ -3602,11 +3602,11 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
          break;
       case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
          CHECK_EXT1(OES_read_format, "GetFloatv");
-         params[0] = (GLfloat)(ctx->Const.ColorReadType);
+         params[0] = (GLfloat)(ctx->ReadBuffer->ColorReadType);
          break;
       case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
          CHECK_EXT1(OES_read_format, "GetFloatv");
-         params[0] = (GLfloat)(ctx->Const.ColorReadFormat);
+         params[0] = (GLfloat)(ctx->ReadBuffer->ColorReadFormat);
          break;
       case GL_NUM_FRAGMENT_REGISTERS_ATI:
          CHECK_EXT1(ATI_fragment_shader, "GetFloatv");
@@ -5437,11 +5437,11 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
          break;
       case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
          CHECK_EXT1(OES_read_format, "GetIntegerv");
-         params[0] = ctx->Const.ColorReadType;
+         params[0] = ctx->ReadBuffer->ColorReadType;
          break;
       case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
          CHECK_EXT1(OES_read_format, "GetIntegerv");
-         params[0] = ctx->Const.ColorReadFormat;
+         params[0] = ctx->ReadBuffer->ColorReadFormat;
          break;
       case GL_NUM_FRAGMENT_REGISTERS_ATI:
          CHECK_EXT1(ATI_fragment_shader, "GetIntegerv");
@@ -7273,11 +7273,11 @@ _mesa_GetInteger64v( GLenum pname, GLint64 *params )
          break;
       case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
          CHECK_EXT1(OES_read_format, "GetInteger64v");
-         params[0] = (GLint64)(ctx->Const.ColorReadType);
+         params[0] = (GLint64)(ctx->ReadBuffer->ColorReadType);
          break;
       case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
          CHECK_EXT1(OES_read_format, "GetInteger64v");
-         params[0] = (GLint64)(ctx->Const.ColorReadFormat);
+         params[0] = (GLint64)(ctx->ReadBuffer->ColorReadFormat);
          break;
       case GL_NUM_FRAGMENT_REGISTERS_ATI:
          CHECK_EXT1(ATI_fragment_shader, "GetInteger64v");
diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py
index a29962d..370e473 100644
--- a/src/mesa/main/get_gen.py
+++ b/src/mesa/main/get_gen.py
@@ -942,9 +942,9 @@ StateVars = [
 
        # GL_OES_read_format
        ( "GL_IMPLEMENTATION_COLOR_READ_TYPE_OES", GLint,
-         ["ctx->Const.ColorReadType"], "", ["OES_read_format"] ),
+         ["ctx->ReadBuffer->ColorReadType"], "", ["OES_read_format"] ),
        ( "GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES", GLint,
-         ["ctx->Const.ColorReadFormat"], "", ["OES_read_format"] ),
+         ["ctx->ReadBuffer->ColorReadFormat"], "", ["OES_read_format"] ),
 
        # GL_ATI_fragment_shader
        ( "GL_NUM_FRAGMENT_REGISTERS_ATI", GLint, ["6"], "", 
["ATI_fragment_shader"] ),
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 5f01244..0f797b1 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2265,6 +2265,9 @@ struct gl_framebuffer
    struct gl_renderbuffer *_ColorDrawBuffers[MAX_DRAW_BUFFERS];
    struct gl_renderbuffer *_ColorReadBuffer;
 
+   GLenum ColorReadFormat;   /**< GL_OES_read_format */
+   GLenum ColorReadType;     /**< GL_OES_read_format */
+
    /** The Actual depth/stencil buffers to use.  May be wrappers around the
     * depth/stencil buffers attached above. */
    struct gl_renderbuffer *_DepthBuffer;
@@ -2356,9 +2359,6 @@ struct gl_constants
 
    GLuint MaxDrawBuffers;    /**< GL_ARB_draw_buffers */
 
-   GLenum ColorReadFormat;   /**< GL_OES_read_format */
-   GLenum ColorReadType;     /**< GL_OES_read_format */
-
    GLuint MaxColorAttachments;   /**< GL_EXT_framebuffer_object */
    GLuint MaxRenderbufferSize;   /**< GL_EXT_framebuffer_object */
    GLuint MaxSamples;            /**< GL_ARB_framebuffer_object */
diff --git a/src/mesa/state_tracker/st_cb_get.c 
b/src/mesa/state_tracker/st_cb_get.c
index e7d7f03..54c4f5a 100644
--- a/src/mesa/state_tracker/st_cb_get.c
+++ b/src/mesa/state_tracker/st_cb_get.c
@@ -53,8 +53,8 @@ get_preferred_read_format_type(GLcontext *ctx, GLint *format, 
GLint *type)
    struct st_renderbuffer *strb = st_renderbuffer(fb->_ColorReadBuffer);
 
    /* defaults */
-   *format = ctx->Const.ColorReadFormat;
-   *type = ctx->Const.ColorReadType;
+   *format = ctx->ReadBuffer->ColorReadFormat;
+   *type = ctx->ReadBuffer->ColorReadType;
 
    if (strb) {
       /* XXX could add more cases here... */
-- 
1.6.5.4


------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to