| Index: third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
|
| diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
|
| index 3982dddc41d4fd2a2963f8324dfcbaff0c419407..fdb9129a9520ca00216399dcd71e0f1997cdf00b 100644
|
| --- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
|
| +++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
|
| @@ -1625,8 +1625,8 @@ ImageData* WebGLRenderingContextBase::paintRenderingResultsToImageData(
|
|
|
| return ImageData::create(
|
| IntSize(width, height),
|
| - DOMUint8ClampedArray::create(imageDataPixels, 0,
|
| - imageDataPixels->byteLength()));
|
| + NotShared<DOMUint8ClampedArray>(DOMUint8ClampedArray::create(
|
| + imageDataPixels, 0, imageDataPixels->byteLength())));
|
| }
|
|
|
| void WebGLRenderingContextBase::reshape(int width, int height) {
|
| @@ -1965,13 +1965,15 @@ void WebGLRenderingContextBase::bufferData(GLenum target,
|
| bufferDataImpl(target, data->byteLength(), data->data(), usage);
|
| }
|
|
|
| -void WebGLRenderingContextBase::bufferData(GLenum target,
|
| - DOMArrayBufferView* data,
|
| - GLenum usage) {
|
| +void WebGLRenderingContextBase::bufferData(
|
| + GLenum target,
|
| + const NotShared<DOMArrayBufferView>& data,
|
| + GLenum usage) {
|
| if (isContextLost())
|
| return;
|
| - DCHECK(data);
|
| - bufferDataImpl(target, data->byteLength(), data->baseAddress(), usage);
|
| + DCHECK(data.view());
|
| + bufferDataImpl(target, data.view()->byteLength(), data.view()->baseAddress(),
|
| + usage);
|
| }
|
|
|
| void WebGLRenderingContextBase::bufferSubDataImpl(GLenum target,
|
| @@ -2138,13 +2140,14 @@ void WebGLRenderingContextBase::compileShader(WebGLShader* shader) {
|
| contextGL()->CompileShader(objectOrZero(shader));
|
| }
|
|
|
| -void WebGLRenderingContextBase::compressedTexImage2D(GLenum target,
|
| - GLint level,
|
| - GLenum internalformat,
|
| - GLsizei width,
|
| - GLsizei height,
|
| - GLint border,
|
| - DOMArrayBufferView* data) {
|
| +void WebGLRenderingContextBase::compressedTexImage2D(
|
| + GLenum target,
|
| + GLint level,
|
| + GLenum internalformat,
|
| + GLsizei width,
|
| + GLsizei height,
|
| + GLint border,
|
| + const NotShared<DOMArrayBufferView>& data) {
|
| if (isContextLost())
|
| return;
|
| if (!validateTexture2DBinding("compressedTexImage2D", target))
|
| @@ -2152,8 +2155,8 @@ void WebGLRenderingContextBase::compressedTexImage2D(GLenum target,
|
| if (!validateCompressedTexFormat("compressedTexImage2D", internalformat))
|
| return;
|
| contextGL()->CompressedTexImage2D(target, level, internalformat, width,
|
| - height, border, data->byteLength(),
|
| - data->baseAddress());
|
| + height, border, data.view()->byteLength(),
|
| + data.view()->baseAddress());
|
| }
|
|
|
| void WebGLRenderingContextBase::compressedTexSubImage2D(
|
| @@ -2164,16 +2167,16 @@ void WebGLRenderingContextBase::compressedTexSubImage2D(
|
| GLsizei width,
|
| GLsizei height,
|
| GLenum format,
|
| - DOMArrayBufferView* data) {
|
| + const NotShared<DOMArrayBufferView>& data) {
|
| if (isContextLost())
|
| return;
|
| if (!validateTexture2DBinding("compressedTexSubImage2D", target))
|
| return;
|
| if (!validateCompressedTexFormat("compressedTexSubImage2D", format))
|
| return;
|
| - contextGL()->CompressedTexSubImage2D(target, level, xoffset, yoffset, width,
|
| - height, format, data->byteLength(),
|
| - data->baseAddress());
|
| + contextGL()->CompressedTexSubImage2D(
|
| + target, level, xoffset, yoffset, width, height, format,
|
| + data.view()->byteLength(), data.view()->baseAddress());
|
| }
|
|
|
| bool WebGLRenderingContextBase::validateSettableTexFormat(
|
| @@ -4157,14 +4160,15 @@ bool WebGLRenderingContextBase::validateReadPixelsFuncParameters(
|
| return true;
|
| }
|
|
|
| -void WebGLRenderingContextBase::readPixels(GLint x,
|
| - GLint y,
|
| - GLsizei width,
|
| - GLsizei height,
|
| - GLenum format,
|
| - GLenum type,
|
| - DOMArrayBufferView* pixels) {
|
| - readPixelsHelper(x, y, width, height, format, type, pixels, 0);
|
| +void WebGLRenderingContextBase::readPixels(
|
| + GLint x,
|
| + GLint y,
|
| + GLsizei width,
|
| + GLsizei height,
|
| + GLenum format,
|
| + GLenum type,
|
| + const NotShared<DOMArrayBufferView>& pixels) {
|
| + readPixelsHelper(x, y, width, height, format, type, pixels.view(), 0);
|
| }
|
|
|
| void WebGLRenderingContextBase::readPixelsHelper(GLint x,
|
| @@ -4769,18 +4773,19 @@ void WebGLRenderingContextBase::texImageHelperDOMArrayBufferView(
|
| format, type, data);
|
| }
|
|
|
| -void WebGLRenderingContextBase::texImage2D(GLenum target,
|
| - GLint level,
|
| - GLint internalformat,
|
| - GLsizei width,
|
| - GLsizei height,
|
| - GLint border,
|
| - GLenum format,
|
| - GLenum type,
|
| - DOMArrayBufferView* pixels) {
|
| +void WebGLRenderingContextBase::texImage2D(
|
| + GLenum target,
|
| + GLint level,
|
| + GLint internalformat,
|
| + GLsizei width,
|
| + GLsizei height,
|
| + GLint border,
|
| + GLenum format,
|
| + GLenum type,
|
| + const NotShared<DOMArrayBufferView>& pixels) {
|
| texImageHelperDOMArrayBufferView(TexImage2D, target, level, internalformat,
|
| width, height, 1, border, format, type, 0, 0,
|
| - 0, pixels, NullAllowed, 0);
|
| + 0, pixels.view(), NullAllowed, 0);
|
| }
|
|
|
| void WebGLRenderingContextBase::texImageHelperImageData(
|
| @@ -5593,18 +5598,19 @@ void WebGLRenderingContextBase::texParameteri(GLenum target,
|
| texParameter(target, pname, 0, param, false);
|
| }
|
|
|
| -void WebGLRenderingContextBase::texSubImage2D(GLenum target,
|
| - GLint level,
|
| - GLint xoffset,
|
| - GLint yoffset,
|
| - GLsizei width,
|
| - GLsizei height,
|
| - GLenum format,
|
| - GLenum type,
|
| - DOMArrayBufferView* pixels) {
|
| +void WebGLRenderingContextBase::texSubImage2D(
|
| + GLenum target,
|
| + GLint level,
|
| + GLint xoffset,
|
| + GLint yoffset,
|
| + GLsizei width,
|
| + GLsizei height,
|
| + GLenum format,
|
| + GLenum type,
|
| + const NotShared<DOMArrayBufferView>& pixels) {
|
| texImageHelperDOMArrayBufferView(TexSubImage2D, target, level, 0, width,
|
| height, 1, 0, format, type, xoffset, yoffset,
|
| - 0, pixels, NullNotAllowed, 0);
|
| + 0, pixels.view(), NullNotAllowed, 0);
|
| }
|
|
|
| void WebGLRenderingContextBase::texSubImage2D(GLenum target,
|
| @@ -5966,13 +5972,13 @@ void WebGLRenderingContextBase::uniform4iv(const WebGLUniformLocation* location,
|
| void WebGLRenderingContextBase::uniformMatrix2fv(
|
| const WebGLUniformLocation* location,
|
| GLboolean transpose,
|
| - DOMFloat32Array* v) {
|
| + const NotShared<DOMFloat32Array>& v) {
|
| if (isContextLost() ||
|
| !validateUniformMatrixParameters("uniformMatrix2fv", location, transpose,
|
| - v, 4, 0, v->length()))
|
| + v.view(), 4, 0, v.view()->length()))
|
| return;
|
| - contextGL()->UniformMatrix2fv(location->location(), v->length() >> 2,
|
| - transpose, v->data());
|
| + contextGL()->UniformMatrix2fv(location->location(), v.view()->length() >> 2,
|
| + transpose, v.view()->data());
|
| }
|
|
|
| void WebGLRenderingContextBase::uniformMatrix2fv(
|
| @@ -5990,13 +5996,13 @@ void WebGLRenderingContextBase::uniformMatrix2fv(
|
| void WebGLRenderingContextBase::uniformMatrix3fv(
|
| const WebGLUniformLocation* location,
|
| GLboolean transpose,
|
| - DOMFloat32Array* v) {
|
| + const NotShared<DOMFloat32Array>& v) {
|
| if (isContextLost() ||
|
| !validateUniformMatrixParameters("uniformMatrix3fv", location, transpose,
|
| - v, 9, 0, v->length()))
|
| + v.view(), 9, 0, v.view()->length()))
|
| return;
|
| - contextGL()->UniformMatrix3fv(location->location(), v->length() / 9,
|
| - transpose, v->data());
|
| + contextGL()->UniformMatrix3fv(location->location(), v.view()->length() / 9,
|
| + transpose, v.view()->data());
|
| }
|
|
|
| void WebGLRenderingContextBase::uniformMatrix3fv(
|
| @@ -6014,13 +6020,13 @@ void WebGLRenderingContextBase::uniformMatrix3fv(
|
| void WebGLRenderingContextBase::uniformMatrix4fv(
|
| const WebGLUniformLocation* location,
|
| GLboolean transpose,
|
| - DOMFloat32Array* v) {
|
| + const NotShared<DOMFloat32Array>& v) {
|
| if (isContextLost() ||
|
| !validateUniformMatrixParameters("uniformMatrix4fv", location, transpose,
|
| - v, 16, 0, v->length()))
|
| + v.view(), 16, 0, v.view()->length()))
|
| return;
|
| - contextGL()->UniformMatrix4fv(location->location(), v->length() >> 4,
|
| - transpose, v->data());
|
| + contextGL()->UniformMatrix4fv(location->location(), v.view()->length() >> 4,
|
| + transpose, v.view()->data());
|
| }
|
|
|
| void WebGLRenderingContextBase::uniformMatrix4fv(
|
| @@ -6076,15 +6082,16 @@ void WebGLRenderingContextBase::vertexAttrib1f(GLuint index, GLfloat v0) {
|
| setVertexAttribType(index, Float32ArrayType);
|
| }
|
|
|
| -void WebGLRenderingContextBase::vertexAttrib1fv(GLuint index,
|
| - const DOMFloat32Array* v) {
|
| +void WebGLRenderingContextBase::vertexAttrib1fv(
|
| + GLuint index,
|
| + const NotShared<const DOMFloat32Array>& v) {
|
| if (isContextLost())
|
| return;
|
| - if (!v || v->length() < 1) {
|
| + if (!v.view() || v.view()->length() < 1) {
|
| synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib1fv", "invalid array");
|
| return;
|
| }
|
| - contextGL()->VertexAttrib1fv(index, v->data());
|
| + contextGL()->VertexAttrib1fv(index, v.view()->data());
|
| setVertexAttribType(index, Float32ArrayType);
|
| }
|
|
|
| @@ -6109,15 +6116,16 @@ void WebGLRenderingContextBase::vertexAttrib2f(GLuint index,
|
| setVertexAttribType(index, Float32ArrayType);
|
| }
|
|
|
| -void WebGLRenderingContextBase::vertexAttrib2fv(GLuint index,
|
| - const DOMFloat32Array* v) {
|
| +void WebGLRenderingContextBase::vertexAttrib2fv(
|
| + GLuint index,
|
| + const NotShared<const DOMFloat32Array>& v) {
|
| if (isContextLost())
|
| return;
|
| - if (!v || v->length() < 2) {
|
| + if (!v.view() || v.view()->length() < 2) {
|
| synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib2fv", "invalid array");
|
| return;
|
| }
|
| - contextGL()->VertexAttrib2fv(index, v->data());
|
| + contextGL()->VertexAttrib2fv(index, v.view()->data());
|
| setVertexAttribType(index, Float32ArrayType);
|
| }
|
|
|
| @@ -6143,15 +6151,16 @@ void WebGLRenderingContextBase::vertexAttrib3f(GLuint index,
|
| setVertexAttribType(index, Float32ArrayType);
|
| }
|
|
|
| -void WebGLRenderingContextBase::vertexAttrib3fv(GLuint index,
|
| - const DOMFloat32Array* v) {
|
| +void WebGLRenderingContextBase::vertexAttrib3fv(
|
| + GLuint index,
|
| + const NotShared<const DOMFloat32Array>& v) {
|
| if (isContextLost())
|
| return;
|
| - if (!v || v->length() < 3) {
|
| + if (!v.view() || v.view()->length() < 3) {
|
| synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib3fv", "invalid array");
|
| return;
|
| }
|
| - contextGL()->VertexAttrib3fv(index, v->data());
|
| + contextGL()->VertexAttrib3fv(index, v.view()->data());
|
| setVertexAttribType(index, Float32ArrayType);
|
| }
|
|
|
| @@ -6178,15 +6187,16 @@ void WebGLRenderingContextBase::vertexAttrib4f(GLuint index,
|
| setVertexAttribType(index, Float32ArrayType);
|
| }
|
|
|
| -void WebGLRenderingContextBase::vertexAttrib4fv(GLuint index,
|
| - const DOMFloat32Array* v) {
|
| +void WebGLRenderingContextBase::vertexAttrib4fv(
|
| + GLuint index,
|
| + const NotShared<const DOMFloat32Array>& v) {
|
| if (isContextLost())
|
| return;
|
| - if (!v || v->length() < 4) {
|
| + if (!v.view() || v.view()->length() < 4) {
|
| synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib4fv", "invalid array");
|
| return;
|
| }
|
| - contextGL()->VertexAttrib4fv(index, v->data());
|
| + contextGL()->VertexAttrib4fv(index, v.view()->data());
|
| setVertexAttribType(index, Float32ArrayType);
|
| }
|
|
|
|
|