| Index: third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
|
| diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
|
| index 9fbfb7575463166e0c4a96b0698c43a843b80a94..446acc6cb01257752be610c8474c2c82e79f72a2 100644
|
| --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
|
| +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
|
| @@ -41,36 +41,12 @@ GLsync syncObjectOrZero(const WebGLSync* object)
|
| return object ? object->object() : nullptr;
|
| }
|
|
|
| -size_t getViewTypeSize(WTF::ArrayBufferView::ViewType viewType)
|
| -{
|
| - switch (viewType) {
|
| - case WTF::ArrayBufferView::TypeInt8:
|
| - case WTF::ArrayBufferView::TypeUint8:
|
| - case WTF::ArrayBufferView::TypeUint8Clamped:
|
| - return 1;
|
| - case WTF::ArrayBufferView::TypeInt16:
|
| - case WTF::ArrayBufferView::TypeUint16:
|
| - return 2;
|
| - case WTF::ArrayBufferView::TypeInt32:
|
| - case WTF::ArrayBufferView::TypeUint32:
|
| - case WTF::ArrayBufferView::TypeFloat32:
|
| - return 4;
|
| - case WTF::ArrayBufferView::TypeFloat64:
|
| - return 8;
|
| - case WTF::ArrayBufferView::TypeDataView:
|
| - return 1;
|
| - default:
|
| - NOTREACHED();
|
| - return 0;
|
| - }
|
| -}
|
| -
|
| bool validateSubSourceAndGetData(DOMArrayBufferView* view, GLuint subOffset, GLuint subLength, void** outBaseAddress, long long* outByteLength)
|
| {
|
| // This is guaranteed to be non-null by DOM.
|
| DCHECK(view);
|
|
|
| - size_t typeSize = getViewTypeSize(view->type());
|
| + size_t typeSize = view->typeSize();
|
| DCHECK_GE(8u, typeSize);
|
| long long byteLength = 0;
|
| if (subLength) {
|
| @@ -993,7 +969,8 @@ void WebGL2RenderingContextBase::texImage2D(GLenum target, GLint level, GLint in
|
| void WebGL2RenderingContextBase::texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
|
| GLint border, GLenum format, GLenum type, DOMArrayBufferView* data, GLuint srcOffset)
|
| {
|
| - // TODO(zmo): To be implemented.
|
| + texImageHelperDOMArrayBufferView(TexImage2D, target, level, internalformat, width, height, 1, border,
|
| + format, type, 0, 0, 0, data, NullNotReachable, srcOffset);
|
| }
|
|
|
| void WebGL2RenderingContextBase::texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
|
| @@ -1060,7 +1037,8 @@ void WebGL2RenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint
|
| void WebGL2RenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
|
| GLsizei width, GLsizei height, GLenum format, GLenum type, DOMArrayBufferView* pixels, GLuint srcOffset)
|
| {
|
| - // TODO(zmo): To be implemented.
|
| + texImageHelperDOMArrayBufferView(TexSubImage2D, target, level, 0, width, height, 1, 0, format, type,
|
| + xoffset, yoffset, 0, pixels, NullNotReachable, srcOffset);
|
| }
|
|
|
| void WebGL2RenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
|
| @@ -1142,13 +1120,15 @@ void WebGL2RenderingContextBase::texStorage3D(GLenum target, GLsizei levels, GLe
|
| void WebGL2RenderingContextBase::texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth,
|
| GLint border, GLenum format, GLenum type, DOMArrayBufferView* pixels)
|
| {
|
| - texImageHelperDOMArrayBufferView(TexImage3D, target, level, internalformat, width, height, border, format, type, depth, 0, 0, 0, pixels);
|
| + texImageHelperDOMArrayBufferView(TexImage3D, target, level, internalformat, width, height, depth, border,
|
| + format, type, 0, 0, 0, pixels, NullAllowed, 0);
|
| }
|
|
|
| void WebGL2RenderingContextBase::texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth,
|
| GLint border, GLenum format, GLenum type, DOMArrayBufferView* pixels, GLuint srcOffset)
|
| {
|
| - // TODO(zmo): To be implemented.
|
| + texImageHelperDOMArrayBufferView(TexImage3D, target, level, internalformat, width, height, depth, border,
|
| + format, type, 0, 0, 0, pixels, NullNotReachable, srcOffset);
|
| }
|
|
|
| void WebGL2RenderingContextBase::texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth,
|
| @@ -1203,8 +1183,8 @@ void WebGL2RenderingContextBase::texImage3D(GLenum target, GLint level, GLint in
|
| void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
|
| GLenum format, GLenum type, DOMArrayBufferView* pixels, GLuint srcOffset)
|
| {
|
| - // TODO(zmo): To be implemented.
|
| - texImageHelperDOMArrayBufferView(TexSubImage3D, target, level, 0, width, height, 0, format, type, depth, xoffset, yoffset, zoffset, pixels);
|
| + texImageHelperDOMArrayBufferView(TexSubImage3D, target, level, 0, width, height, depth, 0, format, type,
|
| + xoffset, yoffset, zoffset, pixels, NullNotReachable, srcOffset);
|
| }
|
|
|
| void WebGL2RenderingContextBase::texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
|
|
|