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

Matt Turner mattst88 at kemper.freedesktop.org
Wed Jan 16 02:13:42 UTC 2013


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

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

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