| OLD | NEW | 
|     1 // Copyright 2015 The Chromium Authors. All rights reserved. |     1 // Copyright 2015 The Chromium Authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #include "modules/webgl/WebGL2RenderingContextBase.h" |     5 #include "modules/webgl/WebGL2RenderingContextBase.h" | 
|     6  |     6  | 
|     7 #include "bindings/modules/v8/WebGLAny.h" |     7 #include "bindings/modules/v8/WebGLAny.h" | 
|     8 #include "core/frame/ImageBitmap.h" |     8 #include "core/frame/ImageBitmap.h" | 
|     9 #include "core/html/HTMLCanvasElement.h" |     9 #include "core/html/HTMLCanvasElement.h" | 
|    10 #include "core/html/HTMLImageElement.h" |    10 #include "core/html/HTMLImageElement.h" | 
| (...skipping 834 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   845 { |   845 { | 
|   846     if (isContextLost()) |   846     if (isContextLost()) | 
|   847         return; |   847         return; | 
|   848     if (!validateTexture2DBinding("texImage2D", target)) |   848     if (!validateTexture2DBinding("texImage2D", target)) | 
|   849         return; |   849         return; | 
|   850     if (!validateTexFunc("texImage2D", TexImage, SourceUnpackBuffer, target, lev
      el, internalformat, width, height, 1, border, format, type, 0, 0, 0)) |   850     if (!validateTexFunc("texImage2D", TexImage, SourceUnpackBuffer, target, lev
      el, internalformat, width, height, 1, border, format, type, 0, 0, 0)) | 
|   851         return; |   851         return; | 
|   852     if (!validateValueFitNonNegInt32("texImage2D", "offset", offset)) |   852     if (!validateValueFitNonNegInt32("texImage2D", "offset", offset)) | 
|   853         return; |   853         return; | 
|   854  |   854  | 
|   855     webContext()->texImage2D(target, level, convertTexInternalFormat(internalfor
      mat, type), width, height, border, format, type, reinterpret_cast<const void *>(
      offset)); |   855     contextGL()->TexImage2D(target, level, convertTexInternalFormat(internalform
      at, type), width, height, border, format, type, reinterpret_cast<const void *>(o
      ffset)); | 
|   856 } |   856 } | 
|   857  |   857  | 
|   858 void WebGL2RenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint
       xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum ty
      pe, GLintptr offset) |   858 void WebGL2RenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint
       xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum ty
      pe, GLintptr offset) | 
|   859 { |   859 { | 
|   860     if (isContextLost()) |   860     if (isContextLost()) | 
|   861         return; |   861         return; | 
|   862     if (!validateTexture2DBinding("texSubImage2D", target)) |   862     if (!validateTexture2DBinding("texSubImage2D", target)) | 
|   863         return; |   863         return; | 
|   864     if (!validateTexFunc("texSubImage2D", TexSubImage, SourceUnpackBuffer, targe
      t, level, 0, width, height, 1, 0, format, type, xoffset, yoffset, 0)) |   864     if (!validateTexFunc("texSubImage2D", TexSubImage, SourceUnpackBuffer, targe
      t, level, 0, width, height, 1, 0, format, type, xoffset, yoffset, 0)) | 
|   865         return; |   865         return; | 
|   866     if (!validateValueFitNonNegInt32("texSubImage2D", "offset", offset)) |   866     if (!validateValueFitNonNegInt32("texSubImage2D", "offset", offset)) | 
|   867         return; |   867         return; | 
|   868  |   868  | 
|   869     webContext()->texSubImage2D(target, level, xoffset, yoffset, width, height, 
      format, type, reinterpret_cast<const void*>(offset)); |   869     contextGL()->TexSubImage2D(target, level, xoffset, yoffset, width, height, f
      ormat, type, reinterpret_cast<const void*>(offset)); | 
|   870 } |   870 } | 
|   871  |   871  | 
|   872 void WebGL2RenderingContextBase::texImage2D(GLenum target, GLint level, GLint in
      ternalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum
       type, DOMArrayBufferView* data) |   872 void WebGL2RenderingContextBase::texImage2D(GLenum target, GLint level, GLint in
      ternalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum
       type, DOMArrayBufferView* data) | 
|   873 { |   873 { | 
|   874     WebGLRenderingContextBase::texImage2D(target, level, internalformat, width, 
      height, border, format, type, data); |   874     WebGLRenderingContextBase::texImage2D(target, level, internalformat, width, 
      height, border, format, type, data); | 
|   875 } |   875 } | 
|   876  |   876  | 
|   877 void WebGL2RenderingContextBase::texImage2D(GLenum target, GLint level, GLint in
      ternalformat, GLenum format, GLenum type, ImageData* imageData) |   877 void WebGL2RenderingContextBase::texImage2D(GLenum target, GLint level, GLint in
      ternalformat, GLenum format, GLenum type, ImageData* imageData) | 
|   878 { |   878 { | 
|   879     WebGLRenderingContextBase::texImage2D(target, level, internalformat, format,
       type, imageData); |   879     WebGLRenderingContextBase::texImage2D(target, level, internalformat, format,
       type, imageData); | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   933     GLenum format, GLenum type, PassRefPtrWillBeRawPtr<ImageBitmap> bitmap, Exce
      ptionState& exceptionState) |   933     GLenum format, GLenum type, PassRefPtrWillBeRawPtr<ImageBitmap> bitmap, Exce
      ptionState& exceptionState) | 
|   934 { |   934 { | 
|   935     WebGLRenderingContextBase::texSubImage2D(target, level, xoffset, yoffset, fo
      rmat, type, bitmap, exceptionState); |   935     WebGLRenderingContextBase::texSubImage2D(target, level, xoffset, yoffset, fo
      rmat, type, bitmap, exceptionState); | 
|   936 } |   936 } | 
|   937  |   937  | 
|   938 void WebGL2RenderingContextBase::texStorage2D(GLenum target, GLsizei levels, GLe
      num internalformat, GLsizei width, GLsizei height) |   938 void WebGL2RenderingContextBase::texStorage2D(GLenum target, GLsizei levels, GLe
      num internalformat, GLsizei width, GLsizei height) | 
|   939 { |   939 { | 
|   940     if (isContextLost() || !validateTexStorage("texStorage2D", target, levels, i
      nternalformat, width, height, 1, TexStorageType2D)) |   940     if (isContextLost() || !validateTexStorage("texStorage2D", target, levels, i
      nternalformat, width, height, 1, TexStorageType2D)) | 
|   941         return; |   941         return; | 
|   942  |   942  | 
|   943     webContext()->texStorage2DEXT(target, levels, internalformat, width, height)
      ; |   943     contextGL()->TexStorage2DEXT(target, levels, internalformat, width, height); | 
|   944 } |   944 } | 
|   945  |   945  | 
|   946 void WebGL2RenderingContextBase::texStorage3D(GLenum target, GLsizei levels, GLe
      num internalformat, GLsizei width, GLsizei height, GLsizei depth) |   946 void WebGL2RenderingContextBase::texStorage3D(GLenum target, GLsizei levels, GLe
      num internalformat, GLsizei width, GLsizei height, GLsizei depth) | 
|   947 { |   947 { | 
|   948     if (isContextLost() || !validateTexStorage("texStorage3D", target, levels, i
      nternalformat, width, height, depth, TexStorageType3D)) |   948     if (isContextLost() || !validateTexStorage("texStorage3D", target, levels, i
      nternalformat, width, height, depth, TexStorageType3D)) | 
|   949         return; |   949         return; | 
|   950  |   950  | 
|   951     webContext()->texStorage3D(target, levels, internalformat, width, height, de
      pth); |   951     contextGL()->TexStorage3D(target, levels, internalformat, width, height, dep
      th); | 
|   952 } |   952 } | 
|   953  |   953  | 
|   954 void WebGL2RenderingContextBase::texImage3D(GLenum target, GLint level, GLint in
      ternalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum
       format, GLenum type, DOMArrayBufferView* pixels) |   954 void WebGL2RenderingContextBase::texImage3D(GLenum target, GLint level, GLint in
      ternalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum
       format, GLenum type, DOMArrayBufferView* pixels) | 
|   955 { |   955 { | 
|   956     if (isContextLost()) |   956     if (isContextLost()) | 
|   957         return; |   957         return; | 
|   958     if (!validateTexture3DBinding("texImage3D", target)) |   958     if (!validateTexture3DBinding("texImage3D", target)) | 
|   959         return; |   959         return; | 
|   960     if (!validateTexFunc("texImage3D", TexImage, SourceArrayBufferView, target, 
      level, internalformat, width, height, depth, border, format, type, 0, 0, 0)) |   960     if (!validateTexFunc("texImage3D", TexImage, SourceArrayBufferView, target, 
      level, internalformat, width, height, depth, border, format, type, 0, 0, 0)) | 
|   961         return; |   961         return; | 
|   962     if (!validateTexFuncData("texImage3D", Tex3D, level, width, height, depth, f
      ormat, type, pixels, NullAllowed)) |   962     if (!validateTexFuncData("texImage3D", Tex3D, level, width, height, depth, f
      ormat, type, pixels, NullAllowed)) | 
|   963         return; |   963         return; | 
|   964  |   964  | 
|   965     void* data = pixels ? pixels->baseAddress() : 0; |   965     void* data = pixels ? pixels->baseAddress() : 0; | 
|   966     Vector<uint8_t> tempData; |   966     Vector<uint8_t> tempData; | 
|   967     if (data && (m_unpackFlipY || m_unpackPremultiplyAlpha)) { |   967     if (data && (m_unpackFlipY || m_unpackPremultiplyAlpha)) { | 
|   968         // FIXME: WebGLImageConversion needs to be updated to accept image depth
      . |   968         // FIXME: WebGLImageConversion needs to be updated to accept image depth
      . | 
|   969         notImplemented(); |   969         notImplemented(); | 
|   970         return; |   970         return; | 
|   971     } |   971     } | 
|   972  |   972  | 
|   973     webContext()->texImage3D(target, level, convertTexInternalFormat(internalfor
      mat, type), width, height, depth, border, format, type, data); |   973     contextGL()->TexImage3D(target, level, convertTexInternalFormat(internalform
      at, type), width, height, depth, border, format, type, data); | 
|   974 } |   974 } | 
|   975  |   975  | 
|   976 void WebGL2RenderingContextBase::texImage3D(GLenum target, GLint level, GLint in
      ternalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum
       format, GLenum type, GLintptr offset) |   976 void WebGL2RenderingContextBase::texImage3D(GLenum target, GLint level, GLint in
      ternalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum
       format, GLenum type, GLintptr offset) | 
|   977 { |   977 { | 
|   978     if (isContextLost()) |   978     if (isContextLost()) | 
|   979         return; |   979         return; | 
|   980     if (!validateTexture3DBinding("texImage3D", target)) |   980     if (!validateTexture3DBinding("texImage3D", target)) | 
|   981         return; |   981         return; | 
|   982     if (!validateTexFunc("texImage3D", TexImage, SourceUnpackBuffer, target, lev
      el, internalformat, width, height, depth, border, format, type, 0, 0, 0)) |   982     if (!validateTexFunc("texImage3D", TexImage, SourceUnpackBuffer, target, lev
      el, internalformat, width, height, depth, border, format, type, 0, 0, 0)) | 
|   983         return; |   983         return; | 
|   984     if (!validateValueFitNonNegInt32("texImage3D", "offset", offset)) |   984     if (!validateValueFitNonNegInt32("texImage3D", "offset", offset)) | 
|   985         return; |   985         return; | 
|   986  |   986  | 
|   987     webContext()->texImage3D(target, level, convertTexInternalFormat(internalfor
      mat, type), width, height, depth, border, format, type, reinterpret_cast<const v
      oid *>(offset)); |   987     contextGL()->TexImage3D(target, level, convertTexInternalFormat(internalform
      at, type), width, height, depth, border, format, type, reinterpret_cast<const vo
      id *>(offset)); | 
|   988 } |   988 } | 
|   989  |   989  | 
|   990 void WebGL2RenderingContextBase::texSubImage3DImpl(GLenum target, GLint level, G
      Lint xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, Image* i
      mage, WebGLImageConversion::ImageHtmlDomSource domSource, bool flipY, bool premu
      ltiplyAlpha) |   990 void WebGL2RenderingContextBase::texSubImage3DImpl(GLenum target, GLint level, G
      Lint xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, Image* i
      mage, WebGLImageConversion::ImageHtmlDomSource domSource, bool flipY, bool premu
      ltiplyAlpha) | 
|   991 { |   991 { | 
|   992     // All calling functions check isContextLost, so a duplicate check is not ne
      eded here. |   992     // All calling functions check isContextLost, so a duplicate check is not ne
      eded here. | 
|   993     if (type == GL_UNSIGNED_INT_10F_11F_11F_REV) { |   993     if (type == GL_UNSIGNED_INT_10F_11F_11F_REV) { | 
|   994         // The UNSIGNED_INT_10F_11F_11F_REV type pack/unpack isn't implemented. |   994         // The UNSIGNED_INT_10F_11F_11F_REV type pack/unpack isn't implemented. | 
|   995         type = GL_FLOAT; |   995         type = GL_FLOAT; | 
|   996     } |   996     } | 
|   997     Vector<uint8_t> data; |   997     Vector<uint8_t> data; | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
|  1008     if (type == GL_UNSIGNED_BYTE && sourceDataFormat == WebGLImageConversion::Da
      taFormatRGBA8 && format == GL_RGBA && alphaOp == WebGLImageConversion::AlphaDoNo
      thing && !flipY) { |  1008     if (type == GL_UNSIGNED_BYTE && sourceDataFormat == WebGLImageConversion::Da
      taFormatRGBA8 && format == GL_RGBA && alphaOp == WebGLImageConversion::AlphaDoNo
      thing && !flipY) { | 
|  1009         needConversion = false; |  1009         needConversion = false; | 
|  1010     } else { |  1010     } else { | 
|  1011         if (!WebGLImageConversion::packImageData(image, imagePixelData, format, 
      type, flipY, alphaOp, sourceDataFormat, imageExtractor.imageWidth(), imageExtrac
      tor.imageHeight(), imageExtractor.imageSourceUnpackAlignment(), data)) { |  1011         if (!WebGLImageConversion::packImageData(image, imagePixelData, format, 
      type, flipY, alphaOp, sourceDataFormat, imageExtractor.imageWidth(), imageExtrac
      tor.imageHeight(), imageExtractor.imageSourceUnpackAlignment(), data)) { | 
|  1012             synthesizeGLError(GL_INVALID_VALUE, "texSubImage3D", "bad image data
      "); |  1012             synthesizeGLError(GL_INVALID_VALUE, "texSubImage3D", "bad image data
      "); | 
|  1013             return; |  1013             return; | 
|  1014         } |  1014         } | 
|  1015     } |  1015     } | 
|  1016  |  1016  | 
|  1017     resetUnpackParameters(); |  1017     resetUnpackParameters(); | 
|  1018     webContext()->texSubImage3D(target, level, xoffset, yoffset, zoffset, imageE
      xtractor.imageWidth(), imageExtractor.imageHeight(), 1, format, type, needConver
      sion ? data.data() : imagePixelData); |  1018     contextGL()->TexSubImage3D(target, level, xoffset, yoffset, zoffset, imageEx
      tractor.imageWidth(), imageExtractor.imageHeight(), 1, format, type, needConvers
      ion ? data.data() : imagePixelData); | 
|  1019     restoreUnpackParameters(); |  1019     restoreUnpackParameters(); | 
|  1020 } |  1020 } | 
|  1021  |  1021  | 
|  1022 void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint
       xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei d
      epth, GLenum format, GLenum type, DOMArrayBufferView* pixels) |  1022 void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint
       xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei d
      epth, GLenum format, GLenum type, DOMArrayBufferView* pixels) | 
|  1023 { |  1023 { | 
|  1024     if (isContextLost()) |  1024     if (isContextLost()) | 
|  1025         return; |  1025         return; | 
|  1026     if (!validateTexture3DBinding("texSubImage3D", target)) |  1026     if (!validateTexture3DBinding("texSubImage3D", target)) | 
|  1027         return; |  1027         return; | 
|  1028     if (!validateTexFunc("texSubImage3D", TexSubImage, SourceArrayBufferView, ta
      rget, level, 0, width, height, depth, 0, format, type, xoffset, yoffset, zoffset
      )) |  1028     if (!validateTexFunc("texSubImage3D", TexSubImage, SourceArrayBufferView, ta
      rget, level, 0, width, height, depth, 0, format, type, xoffset, yoffset, zoffset
      )) | 
|  1029         return; |  1029         return; | 
|  1030     if (!validateTexFuncData("texSubImage3D", Tex3D, level, width, height, depth
      , format, type, pixels, NullNotAllowed)) |  1030     if (!validateTexFuncData("texSubImage3D", Tex3D, level, width, height, depth
      , format, type, pixels, NullNotAllowed)) | 
|  1031         return; |  1031         return; | 
|  1032  |  1032  | 
|  1033     void* data = pixels->baseAddress(); |  1033     void* data = pixels->baseAddress(); | 
|  1034     Vector<uint8_t> tempData; |  1034     Vector<uint8_t> tempData; | 
|  1035     bool changeUnpackParameters = false; |  1035     bool changeUnpackParameters = false; | 
|  1036     if (data && (m_unpackFlipY || m_unpackPremultiplyAlpha)) { |  1036     if (data && (m_unpackFlipY || m_unpackPremultiplyAlpha)) { | 
|  1037         // FIXME: WebGLImageConversion needs to be updated to accept image depth
      . |  1037         // FIXME: WebGLImageConversion needs to be updated to accept image depth
      . | 
|  1038         notImplemented(); |  1038         notImplemented(); | 
|  1039         changeUnpackParameters = true; |  1039         changeUnpackParameters = true; | 
|  1040     } |  1040     } | 
|  1041     if (changeUnpackParameters) |  1041     if (changeUnpackParameters) | 
|  1042         resetUnpackParameters(); |  1042         resetUnpackParameters(); | 
|  1043     webContext()->texSubImage3D(target, level, xoffset, yoffset, zoffset, width,
       height, depth, format, type, data); |  1043     contextGL()->TexSubImage3D(target, level, xoffset, yoffset, zoffset, width, 
      height, depth, format, type, data); | 
|  1044     if (changeUnpackParameters) |  1044     if (changeUnpackParameters) | 
|  1045         restoreUnpackParameters(); |  1045         restoreUnpackParameters(); | 
|  1046 } |  1046 } | 
|  1047  |  1047  | 
|  1048 void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint
       xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei d
      epth, GLenum format, GLenum type, GLintptr offset) |  1048 void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint
       xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei d
      epth, GLenum format, GLenum type, GLintptr offset) | 
|  1049 { |  1049 { | 
|  1050     if (isContextLost()) |  1050     if (isContextLost()) | 
|  1051         return; |  1051         return; | 
|  1052     if (!validateTexture3DBinding("texSubImage3D", target)) |  1052     if (!validateTexture3DBinding("texSubImage3D", target)) | 
|  1053         return; |  1053         return; | 
|  1054     if (!validateTexFunc("texSubImage3D", TexSubImage, SourceUnpackBuffer, targe
      t, level, 0, width, height, depth, 0, format, type, xoffset, yoffset, zoffset)) |  1054     if (!validateTexFunc("texSubImage3D", TexSubImage, SourceUnpackBuffer, targe
      t, level, 0, width, height, depth, 0, format, type, xoffset, yoffset, zoffset)) | 
|  1055         return; |  1055         return; | 
|  1056     if (!validateValueFitNonNegInt32("texSubImage3D", "offset", offset)) |  1056     if (!validateValueFitNonNegInt32("texSubImage3D", "offset", offset)) | 
|  1057         return; |  1057         return; | 
|  1058  |  1058  | 
|  1059     webContext()->texSubImage3D(target, level, xoffset, yoffset, zoffset, width,
       height, depth, format, type, reinterpret_cast<const void*>(offset)); |  1059     contextGL()->TexSubImage3D(target, level, xoffset, yoffset, zoffset, width, 
      height, depth, format, type, reinterpret_cast<const void*>(offset)); | 
|  1060 } |  1060 } | 
|  1061  |  1061  | 
|  1062 void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint
       xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, ImageData* p
      ixels) |  1062 void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint
       xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, ImageData* p
      ixels) | 
|  1063 { |  1063 { | 
|  1064     if (isContextLost()) |  1064     if (isContextLost()) | 
|  1065         return; |  1065         return; | 
|  1066     if (!pixels) { |  1066     if (!pixels) { | 
|  1067         synthesizeGLError(GL_INVALID_VALUE, "texSubImage3D", "no image data"); |  1067         synthesizeGLError(GL_INVALID_VALUE, "texSubImage3D", "no image data"); | 
|  1068         return; |  1068         return; | 
|  1069     } |  1069     } | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
|  1086     // No conversion is needed if destination format is RGBA and type is USIGNED
      _BYTE and no Flip or Premultiply operation is required. |  1086     // No conversion is needed if destination format is RGBA and type is USIGNED
      _BYTE and no Flip or Premultiply operation is required. | 
|  1087     if (format == GL_RGBA && type == GL_UNSIGNED_BYTE && !m_unpackFlipY && !m_un
      packPremultiplyAlpha) { |  1087     if (format == GL_RGBA && type == GL_UNSIGNED_BYTE && !m_unpackFlipY && !m_un
      packPremultiplyAlpha) { | 
|  1088         needConversion = false; |  1088         needConversion = false; | 
|  1089     } else { |  1089     } else { | 
|  1090         if (!WebGLImageConversion::extractImageData(pixels->data()->data(), pixe
      ls->size(), format, type, m_unpackFlipY, m_unpackPremultiplyAlpha, data)) { |  1090         if (!WebGLImageConversion::extractImageData(pixels->data()->data(), pixe
      ls->size(), format, type, m_unpackFlipY, m_unpackPremultiplyAlpha, data)) { | 
|  1091             synthesizeGLError(GL_INVALID_VALUE, "texSubImage3D", "bad image data
      "); |  1091             synthesizeGLError(GL_INVALID_VALUE, "texSubImage3D", "bad image data
      "); | 
|  1092             return; |  1092             return; | 
|  1093         } |  1093         } | 
|  1094     } |  1094     } | 
|  1095     resetUnpackParameters(); |  1095     resetUnpackParameters(); | 
|  1096     webContext()->texSubImage3D(target, level, xoffset, yoffset, zoffset, pixels
      ->width(), pixels->height(), 1, format, type, needConversion ? data.data() : pix
      els->data()->data()); |  1096     contextGL()->TexSubImage3D(target, level, xoffset, yoffset, zoffset, pixels-
      >width(), pixels->height(), 1, format, type, needConversion ? data.data() : pixe
      ls->data()->data()); | 
|  1097     restoreUnpackParameters(); |  1097     restoreUnpackParameters(); | 
|  1098 } |  1098 } | 
|  1099  |  1099  | 
|  1100 void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint
       xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, HTMLImageEle
      ment* image, ExceptionState& exceptionState) |  1100 void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint
       xoffset, GLint yoffset, GLint zoffset, GLenum format, GLenum type, HTMLImageEle
      ment* image, ExceptionState& exceptionState) | 
|  1101 { |  1101 { | 
|  1102     if (isContextLost()) |  1102     if (isContextLost()) | 
|  1103         return; |  1103         return; | 
|  1104     if (!validateHTMLImageElement("texSubImage3D", image, exceptionState)) |  1104     if (!validateHTMLImageElement("texSubImage3D", image, exceptionState)) | 
|  1105         return; |  1105         return; | 
|  1106     if (!validateTexture3DBinding("texSubImage3D", target)) |  1106     if (!validateTexture3DBinding("texSubImage3D", target)) | 
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1170     if (format == GL_RGBA && type == GL_UNSIGNED_BYTE) { |  1170     if (format == GL_RGBA && type == GL_UNSIGNED_BYTE) { | 
|  1171         needConversion = false; |  1171         needConversion = false; | 
|  1172     } else { |  1172     } else { | 
|  1173         // In the case of ImageBitmap, we do not need to apply flipY or premulti
      plyAlpha. |  1173         // In the case of ImageBitmap, we do not need to apply flipY or premulti
      plyAlpha. | 
|  1174         if (!WebGLImageConversion::extractImageData(pixelData.get(), bitmap->siz
      e(), format, type, false, false, data)) { |  1174         if (!WebGLImageConversion::extractImageData(pixelData.get(), bitmap->siz
      e(), format, type, false, false, data)) { | 
|  1175             synthesizeGLError(GL_INVALID_VALUE, "texSubImage3D", "bad image data
      "); |  1175             synthesizeGLError(GL_INVALID_VALUE, "texSubImage3D", "bad image data
      "); | 
|  1176             return; |  1176             return; | 
|  1177         } |  1177         } | 
|  1178     } |  1178     } | 
|  1179     resetUnpackParameters(); |  1179     resetUnpackParameters(); | 
|  1180     webContext()->texSubImage3D(target, level, xoffset, yoffset, zoffset, bitmap
      ->width(), bitmap->height(), 1, format, type, needConversion ? data.data() : pix
      elData.get()); |  1180     contextGL()->TexSubImage3D(target, level, xoffset, yoffset, zoffset, bitmap-
      >width(), bitmap->height(), 1, format, type, needConversion ? data.data() : pixe
      lData.get()); | 
|  1181     restoreUnpackParameters(); |  1181     restoreUnpackParameters(); | 
|  1182 } |  1182 } | 
|  1183  |  1183  | 
|  1184 void WebGL2RenderingContextBase::copyTexSubImage3D(GLenum target, GLint level, G
      Lint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLs
      izei height) |  1184 void WebGL2RenderingContextBase::copyTexSubImage3D(GLenum target, GLint level, G
      Lint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLs
      izei height) | 
|  1185 { |  1185 { | 
|  1186     if (isContextLost()) |  1186     if (isContextLost()) | 
|  1187         return; |  1187         return; | 
|  1188     if (!validateTexture3DBinding("copyTexSubImage3D", target)) |  1188     if (!validateTexture3DBinding("copyTexSubImage3D", target)) | 
|  1189         return; |  1189         return; | 
|  1190     WebGLFramebuffer* readFramebufferBinding = nullptr; |  1190     WebGLFramebuffer* readFramebufferBinding = nullptr; | 
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1229 void WebGL2RenderingContextBase::uniform1ui(const WebGLUniformLocation* location
      , GLuint v0) |  1229 void WebGL2RenderingContextBase::uniform1ui(const WebGLUniformLocation* location
      , GLuint v0) | 
|  1230 { |  1230 { | 
|  1231     if (isContextLost() || !location) |  1231     if (isContextLost() || !location) | 
|  1232         return; |  1232         return; | 
|  1233  |  1233  | 
|  1234     if (location->program() != m_currentProgram) { |  1234     if (location->program() != m_currentProgram) { | 
|  1235         synthesizeGLError(GL_INVALID_OPERATION, "uniform1ui", "location not for 
      current program"); |  1235         synthesizeGLError(GL_INVALID_OPERATION, "uniform1ui", "location not for 
      current program"); | 
|  1236         return; |  1236         return; | 
|  1237     } |  1237     } | 
|  1238  |  1238  | 
|  1239     webContext()->uniform1ui(location->location(), v0); |  1239     contextGL()->Uniform1ui(location->location(), v0); | 
|  1240 } |  1240 } | 
|  1241  |  1241  | 
|  1242 void WebGL2RenderingContextBase::uniform2ui(const WebGLUniformLocation* location
      , GLuint v0, GLuint v1) |  1242 void WebGL2RenderingContextBase::uniform2ui(const WebGLUniformLocation* location
      , GLuint v0, GLuint v1) | 
|  1243 { |  1243 { | 
|  1244     if (isContextLost() || !location) |  1244     if (isContextLost() || !location) | 
|  1245         return; |  1245         return; | 
|  1246  |  1246  | 
|  1247     if (location->program() != m_currentProgram) { |  1247     if (location->program() != m_currentProgram) { | 
|  1248         synthesizeGLError(GL_INVALID_OPERATION, "uniform2ui", "location not for 
      current program"); |  1248         synthesizeGLError(GL_INVALID_OPERATION, "uniform2ui", "location not for 
      current program"); | 
|  1249         return; |  1249         return; | 
|  1250     } |  1250     } | 
|  1251  |  1251  | 
|  1252     webContext()->uniform2ui(location->location(), v0, v1); |  1252     contextGL()->Uniform2ui(location->location(), v0, v1); | 
|  1253 } |  1253 } | 
|  1254  |  1254  | 
|  1255 void WebGL2RenderingContextBase::uniform3ui(const WebGLUniformLocation* location
      , GLuint v0, GLuint v1, GLuint v2) |  1255 void WebGL2RenderingContextBase::uniform3ui(const WebGLUniformLocation* location
      , GLuint v0, GLuint v1, GLuint v2) | 
|  1256 { |  1256 { | 
|  1257     if (isContextLost() || !location) |  1257     if (isContextLost() || !location) | 
|  1258         return; |  1258         return; | 
|  1259  |  1259  | 
|  1260     if (location->program() != m_currentProgram) { |  1260     if (location->program() != m_currentProgram) { | 
|  1261         synthesizeGLError(GL_INVALID_OPERATION, "uniform3ui", "location not for 
      current program"); |  1261         synthesizeGLError(GL_INVALID_OPERATION, "uniform3ui", "location not for 
      current program"); | 
|  1262         return; |  1262         return; | 
|  1263     } |  1263     } | 
|  1264  |  1264  | 
|  1265     webContext()->uniform3ui(location->location(), v0, v1, v2); |  1265     contextGL()->Uniform3ui(location->location(), v0, v1, v2); | 
|  1266 } |  1266 } | 
|  1267  |  1267  | 
|  1268 void WebGL2RenderingContextBase::uniform4ui(const WebGLUniformLocation* location
      , GLuint v0, GLuint v1, GLuint v2, GLuint v3) |  1268 void WebGL2RenderingContextBase::uniform4ui(const WebGLUniformLocation* location
      , GLuint v0, GLuint v1, GLuint v2, GLuint v3) | 
|  1269 { |  1269 { | 
|  1270     if (isContextLost() || !location) |  1270     if (isContextLost() || !location) | 
|  1271         return; |  1271         return; | 
|  1272  |  1272  | 
|  1273     if (location->program() != m_currentProgram) { |  1273     if (location->program() != m_currentProgram) { | 
|  1274         synthesizeGLError(GL_INVALID_OPERATION, "uniform4ui", "location not for 
      current program"); |  1274         synthesizeGLError(GL_INVALID_OPERATION, "uniform4ui", "location not for 
      current program"); | 
|  1275         return; |  1275         return; | 
|  1276     } |  1276     } | 
|  1277  |  1277  | 
|  1278     webContext()->uniform4ui(location->location(), v0, v1, v2, v3); |  1278     contextGL()->Uniform4ui(location->location(), v0, v1, v2, v3); | 
|  1279 } |  1279 } | 
|  1280  |  1280  | 
|  1281 void WebGL2RenderingContextBase::uniform1uiv(const WebGLUniformLocation* locatio
      n, const FlexibleUint32ArrayView& v) |  1281 void WebGL2RenderingContextBase::uniform1uiv(const WebGLUniformLocation* locatio
      n, const FlexibleUint32ArrayView& v) | 
|  1282 { |  1282 { | 
|  1283     if (isContextLost() || !validateUniformParameters<WTF::Uint32Array>("uniform
      1uiv", location, v, 1)) |  1283     if (isContextLost() || !validateUniformParameters<WTF::Uint32Array>("uniform
      1uiv", location, v, 1)) | 
|  1284         return; |  1284         return; | 
|  1285  |  1285  | 
|  1286     webContext()->uniform1uiv(location->location(), v.length(), v.dataMaybeOnSta
      ck()); |  1286     contextGL()->Uniform1uiv(location->location(), v.length(), v.dataMaybeOnStac
      k()); | 
|  1287 } |  1287 } | 
|  1288  |  1288  | 
|  1289 void WebGL2RenderingContextBase::uniform1uiv(const WebGLUniformLocation* locatio
      n, Vector<GLuint>& value) |  1289 void WebGL2RenderingContextBase::uniform1uiv(const WebGLUniformLocation* locatio
      n, Vector<GLuint>& value) | 
|  1290 { |  1290 { | 
|  1291     if (isContextLost() || !validateUniformParameters("uniform1uiv", location, v
      alue.data(), value.size(), 1)) |  1291     if (isContextLost() || !validateUniformParameters("uniform1uiv", location, v
      alue.data(), value.size(), 1)) | 
|  1292         return; |  1292         return; | 
|  1293  |  1293  | 
|  1294     webContext()->uniform1uiv(location->location(), value.size(), value.data()); |  1294     contextGL()->Uniform1uiv(location->location(), value.size(), value.data()); | 
|  1295 } |  1295 } | 
|  1296  |  1296  | 
|  1297 void WebGL2RenderingContextBase::uniform2uiv(const WebGLUniformLocation* locatio
      n, const FlexibleUint32ArrayView& v) |  1297 void WebGL2RenderingContextBase::uniform2uiv(const WebGLUniformLocation* locatio
      n, const FlexibleUint32ArrayView& v) | 
|  1298 { |  1298 { | 
|  1299     if (isContextLost() || !validateUniformParameters<WTF::Uint32Array>("uniform
      2uiv", location, v, 2)) |  1299     if (isContextLost() || !validateUniformParameters<WTF::Uint32Array>("uniform
      2uiv", location, v, 2)) | 
|  1300         return; |  1300         return; | 
|  1301  |  1301  | 
|  1302     webContext()->uniform2uiv(location->location(), v.length() >> 1, v.dataMaybe
      OnStack()); |  1302     contextGL()->Uniform2uiv(location->location(), v.length() >> 1, v.dataMaybeO
      nStack()); | 
|  1303 } |  1303 } | 
|  1304  |  1304  | 
|  1305 void WebGL2RenderingContextBase::uniform2uiv(const WebGLUniformLocation* locatio
      n, Vector<GLuint>& value) |  1305 void WebGL2RenderingContextBase::uniform2uiv(const WebGLUniformLocation* locatio
      n, Vector<GLuint>& value) | 
|  1306 { |  1306 { | 
|  1307     if (isContextLost() || !validateUniformParameters("uniform2uiv", location, v
      alue.data(), value.size(), 2)) |  1307     if (isContextLost() || !validateUniformParameters("uniform2uiv", location, v
      alue.data(), value.size(), 2)) | 
|  1308         return; |  1308         return; | 
|  1309  |  1309  | 
|  1310     webContext()->uniform2uiv(location->location(), value.size() / 2, value.data
      ()); |  1310     contextGL()->Uniform2uiv(location->location(), value.size() / 2, value.data(
      )); | 
|  1311 } |  1311 } | 
|  1312  |  1312  | 
|  1313 void WebGL2RenderingContextBase::uniform3uiv(const WebGLUniformLocation* locatio
      n, const FlexibleUint32ArrayView& v) |  1313 void WebGL2RenderingContextBase::uniform3uiv(const WebGLUniformLocation* locatio
      n, const FlexibleUint32ArrayView& v) | 
|  1314 { |  1314 { | 
|  1315     if (isContextLost() || !validateUniformParameters<WTF::Uint32Array>("uniform
      3uiv", location, v, 3)) |  1315     if (isContextLost() || !validateUniformParameters<WTF::Uint32Array>("uniform
      3uiv", location, v, 3)) | 
|  1316         return; |  1316         return; | 
|  1317  |  1317  | 
|  1318     webContext()->uniform3uiv(location->location(), v.length() / 3, v.dataMaybeO
      nStack()); |  1318     contextGL()->Uniform3uiv(location->location(), v.length() / 3, v.dataMaybeOn
      Stack()); | 
|  1319 } |  1319 } | 
|  1320  |  1320  | 
|  1321 void WebGL2RenderingContextBase::uniform3uiv(const WebGLUniformLocation* locatio
      n, Vector<GLuint>& value) |  1321 void WebGL2RenderingContextBase::uniform3uiv(const WebGLUniformLocation* locatio
      n, Vector<GLuint>& value) | 
|  1322 { |  1322 { | 
|  1323     if (isContextLost() || !validateUniformParameters("uniform3uiv", location, v
      alue.data(), value.size(), 3)) |  1323     if (isContextLost() || !validateUniformParameters("uniform3uiv", location, v
      alue.data(), value.size(), 3)) | 
|  1324         return; |  1324         return; | 
|  1325  |  1325  | 
|  1326     webContext()->uniform3uiv(location->location(), value.size() / 3, value.data
      ()); |  1326     contextGL()->Uniform3uiv(location->location(), value.size() / 3, value.data(
      )); | 
|  1327 } |  1327 } | 
|  1328  |  1328  | 
|  1329 void WebGL2RenderingContextBase::uniform4uiv(const WebGLUniformLocation* locatio
      n, const FlexibleUint32ArrayView& v) |  1329 void WebGL2RenderingContextBase::uniform4uiv(const WebGLUniformLocation* locatio
      n, const FlexibleUint32ArrayView& v) | 
|  1330 { |  1330 { | 
|  1331     if (isContextLost() || !validateUniformParameters<WTF::Uint32Array>("uniform
      4uiv", location, v, 4)) |  1331     if (isContextLost() || !validateUniformParameters<WTF::Uint32Array>("uniform
      4uiv", location, v, 4)) | 
|  1332         return; |  1332         return; | 
|  1333  |  1333  | 
|  1334     webContext()->uniform4uiv(location->location(), v.length() >> 2, v.dataMaybe
      OnStack()); |  1334     contextGL()->Uniform4uiv(location->location(), v.length() >> 2, v.dataMaybeO
      nStack()); | 
|  1335 } |  1335 } | 
|  1336  |  1336  | 
|  1337 void WebGL2RenderingContextBase::uniform4uiv(const WebGLUniformLocation* locatio
      n, Vector<GLuint>& value) |  1337 void WebGL2RenderingContextBase::uniform4uiv(const WebGLUniformLocation* locatio
      n, Vector<GLuint>& value) | 
|  1338 { |  1338 { | 
|  1339     if (isContextLost() || !validateUniformParameters("uniform4uiv", location, v
      alue.data(), value.size(), 4)) |  1339     if (isContextLost() || !validateUniformParameters("uniform4uiv", location, v
      alue.data(), value.size(), 4)) | 
|  1340         return; |  1340         return; | 
|  1341  |  1341  | 
|  1342     webContext()->uniform4uiv(location->location(), value.size() / 4, value.data
      ()); |  1342     contextGL()->Uniform4uiv(location->location(), value.size() / 4, value.data(
      )); | 
|  1343 } |  1343 } | 
|  1344  |  1344  | 
|  1345 void WebGL2RenderingContextBase::uniformMatrix2x3fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) |  1345 void WebGL2RenderingContextBase::uniformMatrix2x3fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) | 
|  1346 { |  1346 { | 
|  1347     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2x3fv"
      , location, transpose, value, 6)) |  1347     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2x3fv"
      , location, transpose, value, 6)) | 
|  1348         return; |  1348         return; | 
|  1349     webContext()->uniformMatrix2x3fv(location->location(), value->length() / 6, 
      transpose, value->data()); |  1349     contextGL()->UniformMatrix2x3fv(location->location(), value->length() / 6, t
      ranspose, value->data()); | 
|  1350 } |  1350 } | 
|  1351  |  1351  | 
|  1352 void WebGL2RenderingContextBase::uniformMatrix2x3fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) |  1352 void WebGL2RenderingContextBase::uniformMatrix2x3fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) | 
|  1353 { |  1353 { | 
|  1354     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2x3fv"
      , location, transpose, value.data(), value.size(), 6)) |  1354     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2x3fv"
      , location, transpose, value.data(), value.size(), 6)) | 
|  1355         return; |  1355         return; | 
|  1356     webContext()->uniformMatrix2x3fv(location->location(), value.size() / 6, tra
      nspose, value.data()); |  1356     contextGL()->UniformMatrix2x3fv(location->location(), value.size() / 6, tran
      spose, value.data()); | 
|  1357 } |  1357 } | 
|  1358  |  1358  | 
|  1359 void WebGL2RenderingContextBase::uniformMatrix3x2fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) |  1359 void WebGL2RenderingContextBase::uniformMatrix3x2fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) | 
|  1360 { |  1360 { | 
|  1361     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3x2fv"
      , location, transpose, value, 6)) |  1361     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3x2fv"
      , location, transpose, value, 6)) | 
|  1362         return; |  1362         return; | 
|  1363     webContext()->uniformMatrix3x2fv(location->location(), value->length() / 6, 
      transpose, value->data()); |  1363     contextGL()->UniformMatrix3x2fv(location->location(), value->length() / 6, t
      ranspose, value->data()); | 
|  1364 } |  1364 } | 
|  1365  |  1365  | 
|  1366 void WebGL2RenderingContextBase::uniformMatrix3x2fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) |  1366 void WebGL2RenderingContextBase::uniformMatrix3x2fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) | 
|  1367 { |  1367 { | 
|  1368     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3x2fv"
      , location, transpose, value.data(), value.size(), 6)) |  1368     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3x2fv"
      , location, transpose, value.data(), value.size(), 6)) | 
|  1369         return; |  1369         return; | 
|  1370     webContext()->uniformMatrix3x2fv(location->location(), value.size() / 6, tra
      nspose, value.data()); |  1370     contextGL()->UniformMatrix3x2fv(location->location(), value.size() / 6, tran
      spose, value.data()); | 
|  1371 } |  1371 } | 
|  1372  |  1372  | 
|  1373 void WebGL2RenderingContextBase::uniformMatrix2x4fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) |  1373 void WebGL2RenderingContextBase::uniformMatrix2x4fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) | 
|  1374 { |  1374 { | 
|  1375     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2x4fv"
      , location, transpose, value, 8)) |  1375     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2x4fv"
      , location, transpose, value, 8)) | 
|  1376         return; |  1376         return; | 
|  1377     webContext()->uniformMatrix2x4fv(location->location(), value->length() / 8, 
      transpose, value->data()); |  1377     contextGL()->UniformMatrix2x4fv(location->location(), value->length() / 8, t
      ranspose, value->data()); | 
|  1378 } |  1378 } | 
|  1379  |  1379  | 
|  1380 void WebGL2RenderingContextBase::uniformMatrix2x4fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) |  1380 void WebGL2RenderingContextBase::uniformMatrix2x4fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) | 
|  1381 { |  1381 { | 
|  1382     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2x4fv"
      , location, transpose, value.data(), value.size(), 8)) |  1382     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2x4fv"
      , location, transpose, value.data(), value.size(), 8)) | 
|  1383         return; |  1383         return; | 
|  1384     webContext()->uniformMatrix2x4fv(location->location(), value.size() / 8, tra
      nspose, value.data()); |  1384     contextGL()->UniformMatrix2x4fv(location->location(), value.size() / 8, tran
      spose, value.data()); | 
|  1385 } |  1385 } | 
|  1386  |  1386  | 
|  1387 void WebGL2RenderingContextBase::uniformMatrix4x2fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) |  1387 void WebGL2RenderingContextBase::uniformMatrix4x2fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) | 
|  1388 { |  1388 { | 
|  1389     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4x2fv"
      , location, transpose, value, 8)) |  1389     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4x2fv"
      , location, transpose, value, 8)) | 
|  1390         return; |  1390         return; | 
|  1391     webContext()->uniformMatrix4x2fv(location->location(), value->length() / 8, 
      transpose, value->data()); |  1391     contextGL()->UniformMatrix4x2fv(location->location(), value->length() / 8, t
      ranspose, value->data()); | 
|  1392 } |  1392 } | 
|  1393  |  1393  | 
|  1394 void WebGL2RenderingContextBase::uniformMatrix4x2fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) |  1394 void WebGL2RenderingContextBase::uniformMatrix4x2fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) | 
|  1395 { |  1395 { | 
|  1396     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4x2fv"
      , location, transpose, value.data(), value.size(), 8)) |  1396     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4x2fv"
      , location, transpose, value.data(), value.size(), 8)) | 
|  1397         return; |  1397         return; | 
|  1398     webContext()->uniformMatrix4x2fv(location->location(), value.size() / 8, tra
      nspose, value.data()); |  1398     contextGL()->UniformMatrix4x2fv(location->location(), value.size() / 8, tran
      spose, value.data()); | 
|  1399 } |  1399 } | 
|  1400  |  1400  | 
|  1401 void WebGL2RenderingContextBase::uniformMatrix3x4fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) |  1401 void WebGL2RenderingContextBase::uniformMatrix3x4fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) | 
|  1402 { |  1402 { | 
|  1403     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3x4fv"
      , location, transpose, value, 12)) |  1403     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3x4fv"
      , location, transpose, value, 12)) | 
|  1404         return; |  1404         return; | 
|  1405     webContext()->uniformMatrix3x4fv(location->location(), value->length() / 12,
       transpose, value->data()); |  1405     contextGL()->UniformMatrix3x4fv(location->location(), value->length() / 12, 
      transpose, value->data()); | 
|  1406 } |  1406 } | 
|  1407  |  1407  | 
|  1408 void WebGL2RenderingContextBase::uniformMatrix3x4fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) |  1408 void WebGL2RenderingContextBase::uniformMatrix3x4fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) | 
|  1409 { |  1409 { | 
|  1410     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3x4fv"
      , location, transpose, value.data(), value.size(), 12)) |  1410     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3x4fv"
      , location, transpose, value.data(), value.size(), 12)) | 
|  1411         return; |  1411         return; | 
|  1412     webContext()->uniformMatrix3x4fv(location->location(), value.size() / 12, tr
      anspose, value.data()); |  1412     contextGL()->UniformMatrix3x4fv(location->location(), value.size() / 12, tra
      nspose, value.data()); | 
|  1413 } |  1413 } | 
|  1414  |  1414  | 
|  1415 void WebGL2RenderingContextBase::uniformMatrix4x3fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) |  1415 void WebGL2RenderingContextBase::uniformMatrix4x3fv(const WebGLUniformLocation* 
      location, GLboolean transpose, DOMFloat32Array* value) | 
|  1416 { |  1416 { | 
|  1417     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4x3fv"
      , location, transpose, value, 12)) |  1417     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4x3fv"
      , location, transpose, value, 12)) | 
|  1418         return; |  1418         return; | 
|  1419     webContext()->uniformMatrix4x3fv(location->location(), value->length() / 12,
       transpose, value->data()); |  1419     contextGL()->UniformMatrix4x3fv(location->location(), value->length() / 12, 
      transpose, value->data()); | 
|  1420 } |  1420 } | 
|  1421  |  1421  | 
|  1422 void WebGL2RenderingContextBase::uniformMatrix4x3fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) |  1422 void WebGL2RenderingContextBase::uniformMatrix4x3fv(const WebGLUniformLocation* 
      location, GLboolean transpose, Vector<GLfloat>& value) | 
|  1423 { |  1423 { | 
|  1424     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4x3fv"
      , location, transpose, value.data(), value.size(), 12)) |  1424     if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4x3fv"
      , location, transpose, value.data(), value.size(), 12)) | 
|  1425         return; |  1425         return; | 
|  1426     webContext()->uniformMatrix4x3fv(location->location(), value.size() / 12, tr
      anspose, value.data()); |  1426     contextGL()->UniformMatrix4x3fv(location->location(), value.size() / 12, tra
      nspose, value.data()); | 
|  1427 } |  1427 } | 
|  1428  |  1428  | 
|  1429 void WebGL2RenderingContextBase::vertexAttribI4i(GLuint index, GLint x, GLint y,
       GLint z, GLint w) |  1429 void WebGL2RenderingContextBase::vertexAttribI4i(GLuint index, GLint x, GLint y,
       GLint z, GLint w) | 
|  1430 { |  1430 { | 
|  1431     if (isContextLost()) |  1431     if (isContextLost()) | 
|  1432         return; |  1432         return; | 
|  1433     webContext()->vertexAttribI4i(index, x, y, z, w); |  1433     contextGL()->VertexAttribI4i(index, x, y, z, w); | 
|  1434     setVertexAttribType(index, Int32ArrayType); |  1434     setVertexAttribType(index, Int32ArrayType); | 
|  1435 } |  1435 } | 
|  1436  |  1436  | 
|  1437 void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index, const DOMInt32Ar
      ray* v) |  1437 void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index, const DOMInt32Ar
      ray* v) | 
|  1438 { |  1438 { | 
|  1439     if (isContextLost()) |  1439     if (isContextLost()) | 
|  1440         return; |  1440         return; | 
|  1441     if (!v || v->length() < 4) { |  1441     if (!v || v->length() < 4) { | 
|  1442         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array")
      ; |  1442         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array")
      ; | 
|  1443         return; |  1443         return; | 
|  1444     } |  1444     } | 
|  1445     webContext()->vertexAttribI4iv(index, v->data()); |  1445     contextGL()->VertexAttribI4iv(index, v->data()); | 
|  1446     setVertexAttribType(index, Int32ArrayType); |  1446     setVertexAttribType(index, Int32ArrayType); | 
|  1447 } |  1447 } | 
|  1448  |  1448  | 
|  1449 void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index, const Vector<GLi
      nt>& v) |  1449 void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index, const Vector<GLi
      nt>& v) | 
|  1450 { |  1450 { | 
|  1451     if (isContextLost()) |  1451     if (isContextLost()) | 
|  1452         return; |  1452         return; | 
|  1453     if (v.size() < 4) { |  1453     if (v.size() < 4) { | 
|  1454         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array")
      ; |  1454         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array")
      ; | 
|  1455         return; |  1455         return; | 
|  1456     } |  1456     } | 
|  1457     webContext()->vertexAttribI4iv(index, v.data()); |  1457     contextGL()->VertexAttribI4iv(index, v.data()); | 
|  1458     setVertexAttribType(index, Int32ArrayType); |  1458     setVertexAttribType(index, Int32ArrayType); | 
|  1459 } |  1459 } | 
|  1460  |  1460  | 
|  1461 void WebGL2RenderingContextBase::vertexAttribI4ui(GLuint index, GLuint x, GLuint
       y, GLuint z, GLuint w) |  1461 void WebGL2RenderingContextBase::vertexAttribI4ui(GLuint index, GLuint x, GLuint
       y, GLuint z, GLuint w) | 
|  1462 { |  1462 { | 
|  1463     if (isContextLost()) |  1463     if (isContextLost()) | 
|  1464         return; |  1464         return; | 
|  1465     webContext()->vertexAttribI4ui(index, x, y, z, w); |  1465     contextGL()->VertexAttribI4ui(index, x, y, z, w); | 
|  1466     setVertexAttribType(index, Uint32ArrayType); |  1466     setVertexAttribType(index, Uint32ArrayType); | 
|  1467 } |  1467 } | 
|  1468  |  1468  | 
|  1469 void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index, const DOMUint32
      Array* v) |  1469 void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index, const DOMUint32
      Array* v) | 
|  1470 { |  1470 { | 
|  1471     if (isContextLost()) |  1471     if (isContextLost()) | 
|  1472         return; |  1472         return; | 
|  1473     if (!v || v->length() < 4) { |  1473     if (!v || v->length() < 4) { | 
|  1474         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array"
      ); |  1474         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array"
      ); | 
|  1475         return; |  1475         return; | 
|  1476     } |  1476     } | 
|  1477     webContext()->vertexAttribI4uiv(index, v->data()); |  1477     contextGL()->VertexAttribI4uiv(index, v->data()); | 
|  1478     setVertexAttribType(index, Uint32ArrayType); |  1478     setVertexAttribType(index, Uint32ArrayType); | 
|  1479 } |  1479 } | 
|  1480  |  1480  | 
|  1481 void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index, const Vector<GL
      uint>& v) |  1481 void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index, const Vector<GL
      uint>& v) | 
|  1482 { |  1482 { | 
|  1483     if (isContextLost()) |  1483     if (isContextLost()) | 
|  1484         return; |  1484         return; | 
|  1485     if (v.size() < 4) { |  1485     if (v.size() < 4) { | 
|  1486         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array"
      ); |  1486         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array"
      ); | 
|  1487         return; |  1487         return; | 
|  1488     } |  1488     } | 
|  1489     webContext()->vertexAttribI4uiv(index, v.data()); |  1489     contextGL()->VertexAttribI4uiv(index, v.data()); | 
|  1490     setVertexAttribType(index, Uint32ArrayType); |  1490     setVertexAttribType(index, Uint32ArrayType); | 
|  1491 } |  1491 } | 
|  1492  |  1492  | 
|  1493 void WebGL2RenderingContextBase::vertexAttribIPointer(GLuint index, GLint size, 
      GLenum type, GLsizei stride, long long offset) |  1493 void WebGL2RenderingContextBase::vertexAttribIPointer(GLuint index, GLint size, 
      GLenum type, GLsizei stride, long long offset) | 
|  1494 { |  1494 { | 
|  1495     if (isContextLost()) |  1495     if (isContextLost()) | 
|  1496         return; |  1496         return; | 
|  1497     if (index >= m_maxVertexAttribs) { |  1497     if (index >= m_maxVertexAttribs) { | 
|  1498         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribIPointer", "index out o
      f range"); |  1498         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribIPointer", "index out o
      f range"); | 
|  1499         return; |  1499         return; | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
|  1513 void WebGL2RenderingContextBase::vertexAttribDivisor(GLuint index, GLuint diviso
      r) |  1513 void WebGL2RenderingContextBase::vertexAttribDivisor(GLuint index, GLuint diviso
      r) | 
|  1514 { |  1514 { | 
|  1515     if (isContextLost()) |  1515     if (isContextLost()) | 
|  1516         return; |  1516         return; | 
|  1517  |  1517  | 
|  1518     if (index >= m_maxVertexAttribs) { |  1518     if (index >= m_maxVertexAttribs) { | 
|  1519         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribDivisor", "index out of
       range"); |  1519         synthesizeGLError(GL_INVALID_VALUE, "vertexAttribDivisor", "index out of
       range"); | 
|  1520         return; |  1520         return; | 
|  1521     } |  1521     } | 
|  1522  |  1522  | 
|  1523     webContext()->vertexAttribDivisorANGLE(index, divisor); |  1523     contextGL()->VertexAttribDivisorANGLE(index, divisor); | 
|  1524 } |  1524 } | 
|  1525  |  1525  | 
|  1526 void WebGL2RenderingContextBase::drawArraysInstanced(GLenum mode, GLint first, G
      Lsizei count, GLsizei instanceCount) |  1526 void WebGL2RenderingContextBase::drawArraysInstanced(GLenum mode, GLint first, G
      Lsizei count, GLsizei instanceCount) | 
|  1527 { |  1527 { | 
|  1528     if (!validateDrawArrays("drawArraysInstanced")) |  1528     if (!validateDrawArrays("drawArraysInstanced")) | 
|  1529         return; |  1529         return; | 
|  1530  |  1530  | 
|  1531     clearIfComposited(); |  1531     clearIfComposited(); | 
|  1532     webContext()->drawArraysInstancedANGLE(mode, first, count, instanceCount); |  1532     contextGL()->DrawArraysInstancedANGLE(mode, first, count, instanceCount); | 
|  1533     markContextChanged(CanvasChanged); |  1533     markContextChanged(CanvasChanged); | 
|  1534 } |  1534 } | 
|  1535  |  1535  | 
|  1536 void WebGL2RenderingContextBase::drawElementsInstanced(GLenum mode, GLsizei coun
      t, GLenum type, long long offset, GLsizei instanceCount) |  1536 void WebGL2RenderingContextBase::drawElementsInstanced(GLenum mode, GLsizei coun
      t, GLenum type, long long offset, GLsizei instanceCount) | 
|  1537 { |  1537 { | 
|  1538     if (!validateDrawElements("drawElementsInstanced", type, offset)) |  1538     if (!validateDrawElements("drawElementsInstanced", type, offset)) | 
|  1539         return; |  1539         return; | 
|  1540  |  1540  | 
|  1541     if (transformFeedbackActive() && !transformFeedbackPaused()) { |  1541     if (transformFeedbackActive() && !transformFeedbackPaused()) { | 
|  1542         synthesizeGLError(GL_INVALID_OPERATION, "drawElementsInstanced", "transf
      orm feedback is active and not paused"); |  1542         synthesizeGLError(GL_INVALID_OPERATION, "drawElementsInstanced", "transf
      orm feedback is active and not paused"); | 
|  1543         return; |  1543         return; | 
|  1544     } |  1544     } | 
|  1545  |  1545  | 
|  1546     clearIfComposited(); |  1546     clearIfComposited(); | 
|  1547     webContext()->drawElementsInstancedANGLE(mode, count, type, static_cast<GLin
      tptr>(offset), instanceCount); |  1547     contextGL()->DrawElementsInstancedANGLE(mode, count, type, reinterpret_cast<
      void*>(static_cast<intptr_t>(offset)), instanceCount); | 
|  1548     markContextChanged(CanvasChanged); |  1548     markContextChanged(CanvasChanged); | 
|  1549 } |  1549 } | 
|  1550  |  1550  | 
|  1551 void WebGL2RenderingContextBase::drawRangeElements(GLenum mode, GLuint start, GL
      uint end, GLsizei count, GLenum type, long long offset) |  1551 void WebGL2RenderingContextBase::drawRangeElements(GLenum mode, GLuint start, GL
      uint end, GLsizei count, GLenum type, long long offset) | 
|  1552 { |  1552 { | 
|  1553     if (!validateDrawElements("drawRangeElements", type, offset)) |  1553     if (!validateDrawElements("drawRangeElements", type, offset)) | 
|  1554         return; |  1554         return; | 
|  1555  |  1555  | 
|  1556     if (transformFeedbackActive() && !transformFeedbackPaused()) { |  1556     if (transformFeedbackActive() && !transformFeedbackPaused()) { | 
|  1557         synthesizeGLError(GL_INVALID_OPERATION, "drawRangeElements", "transform 
      feedback is active and not paused"); |  1557         synthesizeGLError(GL_INVALID_OPERATION, "drawRangeElements", "transform 
      feedback is active and not paused"); | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
|  1588         if (n != 1) { |  1588         if (n != 1) { | 
|  1589             synthesizeGLError(GL_INVALID_OPERATION, "drawBuffers", "the number o
      f buffers is not 1"); |  1589             synthesizeGLError(GL_INVALID_OPERATION, "drawBuffers", "the number o
      f buffers is not 1"); | 
|  1590             return; |  1590             return; | 
|  1591         } |  1591         } | 
|  1592         if (bufs[0] != GL_BACK && bufs[0] != GL_NONE) { |  1592         if (bufs[0] != GL_BACK && bufs[0] != GL_NONE) { | 
|  1593             synthesizeGLError(GL_INVALID_OPERATION, "drawBuffers", "BACK or NONE
      "); |  1593             synthesizeGLError(GL_INVALID_OPERATION, "drawBuffers", "BACK or NONE
      "); | 
|  1594             return; |  1594             return; | 
|  1595         } |  1595         } | 
|  1596         // Because the backbuffer is simulated on all current WebKit ports, we n
      eed to change BACK to COLOR_ATTACHMENT0. |  1596         // Because the backbuffer is simulated on all current WebKit ports, we n
      eed to change BACK to COLOR_ATTACHMENT0. | 
|  1597         GLenum value = (bufs[0] == GL_BACK) ? GL_COLOR_ATTACHMENT0 : GL_NONE; |  1597         GLenum value = (bufs[0] == GL_BACK) ? GL_COLOR_ATTACHMENT0 : GL_NONE; | 
|  1598         webContext()->drawBuffersEXT(1, &value); |  1598         contextGL()->DrawBuffersEXT(1, &value); | 
|  1599         setBackDrawBuffer(bufs[0]); |  1599         setBackDrawBuffer(bufs[0]); | 
|  1600     } else { |  1600     } else { | 
|  1601         if (n > maxDrawBuffers()) { |  1601         if (n > maxDrawBuffers()) { | 
|  1602             synthesizeGLError(GL_INVALID_VALUE, "drawBuffers", "more than max dr
      aw buffers"); |  1602             synthesizeGLError(GL_INVALID_VALUE, "drawBuffers", "more than max dr
      aw buffers"); | 
|  1603             return; |  1603             return; | 
|  1604         } |  1604         } | 
|  1605         for (GLsizei i = 0; i < n; ++i) { |  1605         for (GLsizei i = 0; i < n; ++i) { | 
|  1606             if (bufs[i] != GL_NONE && bufs[i] != static_cast<GLenum>(GL_COLOR_AT
      TACHMENT0_EXT + i)) { |  1606             if (bufs[i] != GL_NONE && bufs[i] != static_cast<GLenum>(GL_COLOR_AT
      TACHMENT0_EXT + i)) { | 
|  1607                 synthesizeGLError(GL_INVALID_OPERATION, "drawBuffers", "COLOR_AT
      TACHMENTi_EXT or NONE"); |  1607                 synthesizeGLError(GL_INVALID_OPERATION, "drawBuffers", "COLOR_AT
      TACHMENTi_EXT or NONE"); | 
|  1608                 return; |  1608                 return; | 
| (...skipping 1034 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2643 } |  2643 } | 
|  2644  |  2644  | 
|  2645 void WebGL2RenderingContextBase::uniformBlockBinding(WebGLProgram* program, GLui
      nt uniformBlockIndex, GLuint uniformBlockBinding) |  2645 void WebGL2RenderingContextBase::uniformBlockBinding(WebGLProgram* program, GLui
      nt uniformBlockIndex, GLuint uniformBlockBinding) | 
|  2646 { |  2646 { | 
|  2647     if (isContextLost() || !validateWebGLObject("uniformBlockBinding", program)) |  2647     if (isContextLost() || !validateWebGLObject("uniformBlockBinding", program)) | 
|  2648         return; |  2648         return; | 
|  2649  |  2649  | 
|  2650     if (!validateUniformBlockIndex("uniformBlockBinding", program, uniformBlockI
      ndex)) |  2650     if (!validateUniformBlockIndex("uniformBlockBinding", program, uniformBlockI
      ndex)) | 
|  2651         return; |  2651         return; | 
|  2652  |  2652  | 
|  2653     webContext()->uniformBlockBinding(objectOrZero(program), uniformBlockIndex, 
      uniformBlockBinding); |  2653     contextGL()->UniformBlockBinding(objectOrZero(program), uniformBlockIndex, u
      niformBlockBinding); | 
|  2654 } |  2654 } | 
|  2655  |  2655  | 
|  2656 WebGLVertexArrayObject* WebGL2RenderingContextBase::createVertexArray() |  2656 WebGLVertexArrayObject* WebGL2RenderingContextBase::createVertexArray() | 
|  2657 { |  2657 { | 
|  2658     if (isContextLost()) |  2658     if (isContextLost()) | 
|  2659         return nullptr; |  2659         return nullptr; | 
|  2660  |  2660  | 
|  2661     WebGLVertexArrayObject* o = WebGLVertexArrayObject::create(this, WebGLVertex
      ArrayObjectBase::VaoTypeUser); |  2661     WebGLVertexArrayObject* o = WebGLVertexArrayObject::create(this, WebGLVertex
      ArrayObjectBase::VaoTypeUser); | 
|  2662     addContextObject(o); |  2662     addContextObject(o); | 
|  2663     return o; |  2663     return o; | 
|  2664 } |  2664 } | 
|  2665  |  2665  | 
|  2666 void WebGL2RenderingContextBase::deleteVertexArray(ScriptState* scriptState, Web
      GLVertexArrayObject* vertexArray) |  2666 void WebGL2RenderingContextBase::deleteVertexArray(ScriptState* scriptState, Web
      GLVertexArrayObject* vertexArray) | 
|  2667 { |  2667 { | 
|  2668     if (isContextLost() || !vertexArray) |  2668     if (isContextLost() || !vertexArray) | 
|  2669         return; |  2669         return; | 
|  2670  |  2670  | 
|  2671     if (!vertexArray->isDefaultObject() && vertexArray == m_boundVertexArrayObje
      ct) |  2671     if (!vertexArray->isDefaultObject() && vertexArray == m_boundVertexArrayObje
      ct) | 
|  2672         setBoundVertexArrayObject(scriptState, nullptr); |  2672         setBoundVertexArrayObject(scriptState, nullptr); | 
|  2673  |  2673  | 
|  2674     vertexArray->deleteObject(webContext()); |  2674     vertexArray->deleteObject(webContext(), contextGL()); | 
|  2675 } |  2675 } | 
|  2676  |  2676  | 
|  2677 GLboolean WebGL2RenderingContextBase::isVertexArray(WebGLVertexArrayObject* vert
      exArray) |  2677 GLboolean WebGL2RenderingContextBase::isVertexArray(WebGLVertexArrayObject* vert
      exArray) | 
|  2678 { |  2678 { | 
|  2679     if (isContextLost() || !vertexArray) |  2679     if (isContextLost() || !vertexArray) | 
|  2680         return 0; |  2680         return 0; | 
|  2681  |  2681  | 
|  2682     if (!vertexArray->hasEverBeenBound()) |  2682     if (!vertexArray->hasEverBeenBound()) | 
|  2683         return 0; |  2683         return 0; | 
|  2684  |  2684  | 
|  2685     return webContext()->isVertexArrayOES(vertexArray->object()); |  2685     return contextGL()->IsVertexArrayOES(vertexArray->object()); | 
|  2686 } |  2686 } | 
|  2687  |  2687  | 
|  2688 void WebGL2RenderingContextBase::bindVertexArray(ScriptState* scriptState, WebGL
      VertexArrayObject* vertexArray) |  2688 void WebGL2RenderingContextBase::bindVertexArray(ScriptState* scriptState, WebGL
      VertexArrayObject* vertexArray) | 
|  2689 { |  2689 { | 
|  2690     if (isContextLost()) |  2690     if (isContextLost()) | 
|  2691         return; |  2691         return; | 
|  2692  |  2692  | 
|  2693     if (vertexArray && (vertexArray->isDeleted() || !vertexArray->validate(0, th
      is))) { |  2693     if (vertexArray && (vertexArray->isDeleted() || !vertexArray->validate(0, th
      is))) { | 
|  2694         webContext()->synthesizeGLError(GL_INVALID_OPERATION); |  2694         webContext()->synthesizeGLError(GL_INVALID_OPERATION); | 
|  2695         return; |  2695         return; | 
|  2696     } |  2696     } | 
|  2697  |  2697  | 
|  2698     if (vertexArray && !vertexArray->isDefaultObject() && vertexArray->object())
       { |  2698     if (vertexArray && !vertexArray->isDefaultObject() && vertexArray->object())
       { | 
|  2699         webContext()->bindVertexArrayOES(objectOrZero(vertexArray)); |  2699         contextGL()->BindVertexArrayOES(objectOrZero(vertexArray)); | 
|  2700  |  2700  | 
|  2701         vertexArray->setHasEverBeenBound(); |  2701         vertexArray->setHasEverBeenBound(); | 
|  2702         setBoundVertexArrayObject(scriptState, vertexArray); |  2702         setBoundVertexArrayObject(scriptState, vertexArray); | 
|  2703     } else { |  2703     } else { | 
|  2704         webContext()->bindVertexArrayOES(0); |  2704         contextGL()->BindVertexArrayOES(0); | 
|  2705         setBoundVertexArrayObject(scriptState, nullptr); |  2705         setBoundVertexArrayObject(scriptState, nullptr); | 
|  2706     } |  2706     } | 
|  2707 } |  2707 } | 
|  2708  |  2708  | 
|  2709 void WebGL2RenderingContextBase::bindFramebuffer(ScriptState* scriptState, GLenu
      m target, WebGLFramebuffer* buffer) |  2709 void WebGL2RenderingContextBase::bindFramebuffer(ScriptState* scriptState, GLenu
      m target, WebGLFramebuffer* buffer) | 
|  2710 { |  2710 { | 
|  2711     bool deleted; |  2711     bool deleted; | 
|  2712     if (!checkObjectToBeBound("bindFramebuffer", buffer, deleted)) |  2712     if (!checkObjectToBeBound("bindFramebuffer", buffer, deleted)) | 
|  2713         return; |  2713         return; | 
|  2714  |  2714  | 
| (...skipping 877 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3592     params.skipPixels = m_unpackSkipPixels; |  3592     params.skipPixels = m_unpackSkipPixels; | 
|  3593     params.skipRows = m_unpackSkipRows; |  3593     params.skipRows = m_unpackSkipRows; | 
|  3594     if (dimension == Tex3D) { |  3594     if (dimension == Tex3D) { | 
|  3595         params.imageHeight = m_unpackImageHeight; |  3595         params.imageHeight = m_unpackImageHeight; | 
|  3596         params.skipImages = m_unpackSkipImages; |  3596         params.skipImages = m_unpackSkipImages; | 
|  3597     } |  3597     } | 
|  3598     return params; |  3598     return params; | 
|  3599 } |  3599 } | 
|  3600  |  3600  | 
|  3601 } // namespace blink |  3601 } // namespace blink | 
| OLD | NEW |