--- src/mesa/drivers/dri/intel/intel_buffers.c | 21 +++++++++++++++++++++ src/mesa/drivers/dri/intel/intel_extensions.c | 1 + 2 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_buffers.c b/src/mesa/drivers/dri/intel/intel_buffers.c index 6b12d48..cee5cf6 100644 --- a/src/mesa/drivers/dri/intel/intel_buffers.c +++ b/src/mesa/drivers/dri/intel/intel_buffers.c @@ -362,6 +362,8 @@ intelDrawBuffer(GLcontext * ctx, GLenum mode) static void intelReadBuffer(GLcontext * ctx, GLenum mode) { + struct intel_renderbuffer *irb; + if ((ctx->DrawBuffer != NULL) && (ctx->DrawBuffer->Name == 0)) { struct intel_context *const intel = intel_context(ctx); const GLboolean was_front_buffer_reading = @@ -390,6 +392,25 @@ intelReadBuffer(GLcontext * ctx, GLenum mode) /* Generally, functions which read pixels (glReadPixels, glCopyPixels, etc) * reference ctx->ReadBuffer and do appropriate state checks. */ + + /* GL_OES_read_format */ + irb = intel_renderbuffer(ctx->ReadBuffer->_ColorReadBuffer); + if (irb) { + switch (irb->texformat) { + case MESA_FORMAT_ARGB8888: + ctx->ReadBuffer->ColorReadFormat = GL_BGRA; + ctx->ReadBuffer->ColorReadType = GL_UNSIGNED_BYTE; + break; + case MESA_FORMAT_RGB565: + ctx->ReadBuffer->ColorReadFormat = GL_BGR; + ctx->ReadBuffer->ColorReadType = GL_UNSIGNED_SHORT_5_6_5_REV; + break; + default: + ctx->ReadBuffer->ColorReadFormat = GL_RGBA; + ctx->ReadBuffer->ColorReadType = GL_UNSIGNED_BYTE; + break; + } + } } diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c index 86dc42c..b403bb5 100644 --- a/src/mesa/drivers/dri/intel/intel_extensions.c +++ b/src/mesa/drivers/dri/intel/intel_extensions.c @@ -126,6 +126,7 @@ static const struct dri_extension card_extensions[] = { { "GL_NV_blend_square", NULL }, { "GL_NV_vertex_program", GL_NV_vertex_program_functions }, { "GL_NV_vertex_program1_1", NULL }, + { "GL_OES_read_format", NULL }, { "GL_SGIS_generate_mipmap", NULL }, { NULL, NULL } }; -- 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