-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Eric Anholt wrote:
> ---
> 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;
> + }
> + }
After hacking around with FBOs and MESA_FORMAT_* all day long (my patch
series is coming soon!), I think this should go in a utility function
somewhere... perhaps in fbobject.c. For a given format, I *think* the
preferred read format / type will be the same everywhere. Does that
sound right?
> }
>
>
> 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 }
> };
I'd cut this. We don't list other extensions that are always enabled.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAksfU+sACgkQX1gOwKyEAw/HVQCfYls0DTN7eNkMEUTFb5scpdAN
LkAAn3K7kn+JNnNc0hZWnAsYJ/UrGXm1
=9Oup
-----END PGP SIGNATURE-----
------------------------------------------------------------------------------
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