Mesa (master): readpix: allow implementation format/type

Matt Turner mattst88 at kemper.freedesktop.org
Mon Jan 21 03:58:45 UTC 2013


Module: Mesa
Branch: master
Commit: ffdffd834a9b0bc6866331e7ecca995d0eb1c041
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffdffd834a9b0bc6866331e7ecca995d0eb1c041

Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Sat Jan 12 01:05:44 2013 -0800

readpix: allow implementation format/type

For GLES2/3 allow reading of pixels with format/type based on:
 * GL_IMPLEMENTATION_COLOR_READ_FORMAT
 * GL_IMPLEMENTATION_COLOR_READ_TYPE

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>

---

 src/mesa/main/readpix.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c
index 994e589..6b07563 100644
--- a/src/mesa/main/readpix.c
+++ b/src/mesa/main/readpix.c
@@ -773,7 +773,12 @@ _mesa_ReadnPixelsARB( GLint x, GLint y, GLsizei width, GLsizei height,
     * combination is, and Mesa can handle anything valid.  Just work instead.
     */
    if (_mesa_is_gles(ctx)) {
-      if (ctx->Version < 30) {
+      if (ctx->API == API_OPENGLES2 &&
+          _mesa_is_color_format(format) &&
+          _mesa_get_color_read_format(ctx) == format &&
+          _mesa_get_color_read_type(ctx) == type) {
+         err = GL_NO_ERROR;
+      } else if (ctx->Version < 30) {
          err = _mesa_es_error_check_format_and_type(format, type, 2);
          if (err == GL_NO_ERROR) {
             if (type == GL_FLOAT || type == GL_HALF_FLOAT_OES) {




More information about the mesa-commit mailing list