Bug 1303879 - fb->ReadBuffer(BACK) is INVALID_OP. - r=mtseng draft
authorJeff Gilbert <jgilbert@mozilla.com>
Thu, 01 Sep 2016 13:53:51 -0700
changeset 415742 402774b640b48e6bb59abf9f16fac5268028f6e1
parent 415741 9d087a768ec052f35b593befe802fadf229d2a88
child 415743 4f35f8de28e20d45283fd8712150c8ed28976ab0
push id29953
push userbmo:jgilbert@mozilla.com
push dateTue, 20 Sep 2016 23:29:17 +0000
reviewersmtseng
bugs1303879
milestone51.0a1
Bug 1303879 - fb->ReadBuffer(BACK) is INVALID_OP. - r=mtseng MozReview-Commit-ID: F3T4qZcETr5
dom/canvas/WebGLFramebuffer.cpp
--- a/dom/canvas/WebGLFramebuffer.cpp
+++ b/dom/canvas/WebGLFramebuffer.cpp
@@ -1230,18 +1230,23 @@ WebGLFramebuffer::DrawBuffers(const char
     mContext->gl->fDrawBuffers(buffers.Length(), buffers.Elements());
 }
 
 void
 WebGLFramebuffer::ReadBuffer(const char* funcName, GLenum attachPoint)
 {
     const auto& maybeAttach = GetColorAttachPoint(attachPoint);
     if (!maybeAttach) {
-        mContext->ErrorInvalidValue("%s: `mode` must be a COLOR_ATTACHMENTi, for "
-                                    " 0 <= i < MAX_DRAW_BUFFERS.", funcName);
+        const char text[] = "%s: `mode` must be a COLOR_ATTACHMENTi, for 0 <= i <"
+                            " MAX_DRAW_BUFFERS.";
+        if (attachPoint == LOCAL_GL_BACK) {
+            mContext->ErrorInvalidOperation(text, funcName);
+        } else {
+            mContext->ErrorInvalidEnum(text, funcName);
+        }
         return;
     }
     const auto& attach = maybeAttach.value();
 
     // Record it.
     mColorReadBuffer = attach;
     RecacheResolvedData();