---
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev