Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(453)

Unified Diff: third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp

Issue 2707243006: [SharedArrayBuffer] Prevent SharedArrayBuffer being used in Web APIs (Closed)
Patch Set: remove unused checks Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 a3da846049bfe5db49feaba7ced2aecc5124e88d..2e4d08e3517505ff324c0dfa3537013d9e1ef600 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
+++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
@@ -248,17 +248,18 @@ void WebGL2RenderingContextBase::initializeNewContext() {
WebGLRenderingContextBase::initializeNewContext();
}
-void WebGL2RenderingContextBase::bufferData(GLenum target,
- DOMArrayBufferView* srcData,
- GLenum usage,
- GLuint srcOffset,
- GLuint length) {
+void WebGL2RenderingContextBase::bufferData(
+ GLenum target,
+ const NotShared<DOMArrayBufferView>& srcData,
+ GLenum usage,
+ GLuint srcOffset,
+ GLuint length) {
if (isContextLost())
return;
void* subBaseAddress = nullptr;
long long subByteLength = 0;
- if (!validateSubSourceAndGetData(srcData, srcOffset, length, &subBaseAddress,
- &subByteLength)) {
+ if (!validateSubSourceAndGetData(srcData.view(), srcOffset, length,
+ &subBaseAddress, &subByteLength)) {
synthesizeGLError(GL_INVALID_VALUE, "bufferData",
"srcOffset + length too large");
return;
@@ -278,23 +279,25 @@ void WebGL2RenderingContextBase::bufferData(GLenum target,
WebGLRenderingContextBase::bufferData(target, data, usage);
}
-void WebGL2RenderingContextBase::bufferData(GLenum target,
- DOMArrayBufferView* data,
- GLenum usage) {
+void WebGL2RenderingContextBase::bufferData(
+ GLenum target,
+ const NotShared<DOMArrayBufferView>& data,
+ GLenum usage) {
WebGLRenderingContextBase::bufferData(target, data, usage);
}
-void WebGL2RenderingContextBase::bufferSubData(GLenum target,
- GLintptr dstByteOffset,
- DOMArrayBufferView* srcData,
- GLuint srcOffset,
- GLuint length) {
+void WebGL2RenderingContextBase::bufferSubData(
+ GLenum target,
+ GLintptr dstByteOffset,
+ const NotShared<DOMArrayBufferView>& srcData,
+ GLuint srcOffset,
+ GLuint length) {
if (isContextLost())
return;
void* subBaseAddress = nullptr;
long long subByteLength = 0;
- if (!validateSubSourceAndGetData(srcData, srcOffset, length, &subBaseAddress,
- &subByteLength)) {
+ if (!validateSubSourceAndGetData(srcData.view(), srcOffset, length,
+ &subBaseAddress, &subByteLength)) {
synthesizeGLError(GL_INVALID_VALUE, "bufferSubData",
"srcOffset + length too large");
return;
@@ -365,16 +368,17 @@ void WebGL2RenderingContextBase::copyBufferSubData(GLenum readTarget,
static_cast<GLintptr>(writeOffset), static_cast<GLsizeiptr>(size));
}
-void WebGL2RenderingContextBase::getBufferSubData(GLenum target,
- long long srcByteOffset,
- DOMArrayBufferView* dstData,
- GLuint dstOffset,
- GLuint length) {
+void WebGL2RenderingContextBase::getBufferSubData(
+ GLenum target,
+ long long srcByteOffset,
+ const NotShared<DOMArrayBufferView>& dstData,
+ GLuint dstOffset,
+ GLuint length) {
WebGLBuffer* sourceBuffer = nullptr;
void* destinationDataPtr = nullptr;
long long destinationByteLength = 0;
const char* message = validateGetBufferSubData(
- __FUNCTION__, target, srcByteOffset, dstData, dstOffset, length,
+ __FUNCTION__, target, srcByteOffset, dstData.view(), dstOffset, length,
&sourceBuffer, &destinationDataPtr, &destinationByteLength);
if (message) {
// If there was a GL error, it was already synthesized in
@@ -765,13 +769,14 @@ void WebGL2RenderingContextBase::pixelStorei(GLenum pname, GLint param) {
contextGL()->PixelStorei(pname, param);
}
-void WebGL2RenderingContextBase::readPixels(GLint x,
- GLint y,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- DOMArrayBufferView* pixels) {
+void WebGL2RenderingContextBase::readPixels(
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ const NotShared<DOMArrayBufferView>& pixels) {
if (isContextLost())
return;
if (m_boundPixelPackBuffer.get()) {
@@ -780,17 +785,18 @@ void WebGL2RenderingContextBase::readPixels(GLint x,
return;
}
- readPixelsHelper(x, y, width, height, format, type, pixels, 0);
+ readPixelsHelper(x, y, width, height, format, type, pixels.view(), 0);
}
-void WebGL2RenderingContextBase::readPixels(GLint x,
- GLint y,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- DOMArrayBufferView* pixels,
- GLuint offset) {
+void WebGL2RenderingContextBase::readPixels(
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ const NotShared<DOMArrayBufferView>& pixels,
+ GLuint offset) {
if (isContextLost())
return;
if (m_boundPixelPackBuffer.get()) {
@@ -799,7 +805,7 @@ void WebGL2RenderingContextBase::readPixels(GLint x,
return;
}
- readPixelsHelper(x, y, width, height, format, type, pixels, offset);
+ readPixelsHelper(x, y, width, height, format, type, pixels.view(), offset);
}
void WebGL2RenderingContextBase::readPixels(GLint x,
@@ -1142,15 +1148,16 @@ void WebGL2RenderingContextBase::texSubImage2D(GLenum target,
reinterpret_cast<const void*>(offset));
}
-void WebGL2RenderingContextBase::texImage2D(GLenum target,
- GLint level,
- GLint internalformat,
- GLsizei width,
- GLsizei height,
- GLint border,
- GLenum format,
- GLenum type,
- DOMArrayBufferView* data) {
+void WebGL2RenderingContextBase::texImage2D(
+ GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const NotShared<DOMArrayBufferView>& data) {
if (isContextLost())
return;
if (m_boundPixelUnpackBuffer) {
@@ -1162,16 +1169,17 @@ void WebGL2RenderingContextBase::texImage2D(GLenum target,
height, border, format, type, data);
}
-void WebGL2RenderingContextBase::texImage2D(GLenum target,
- GLint level,
- GLint internalformat,
- GLsizei width,
- GLsizei height,
- GLint border,
- GLenum format,
- GLenum type,
- DOMArrayBufferView* data,
- GLuint srcOffset) {
+void WebGL2RenderingContextBase::texImage2D(
+ GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const NotShared<DOMArrayBufferView>& data,
+ GLuint srcOffset) {
if (isContextLost())
return;
if (m_boundPixelUnpackBuffer) {
@@ -1181,7 +1189,7 @@ void WebGL2RenderingContextBase::texImage2D(GLenum target,
}
texImageHelperDOMArrayBufferView(TexImage2D, target, level, internalformat,
width, height, 1, border, format, type, 0, 0,
- 0, data, NullNotReachable, srcOffset);
+ 0, data.view(), NullNotReachable, srcOffset);
}
void WebGL2RenderingContextBase::texImage2D(GLenum target,
@@ -1385,15 +1393,16 @@ void WebGL2RenderingContextBase::texImage2D(GLenum target,
type, imageBitMap, exceptionState);
}
-void WebGL2RenderingContextBase::texSubImage2D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- DOMArrayBufferView* pixels) {
+void WebGL2RenderingContextBase::texSubImage2D(
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ const NotShared<DOMArrayBufferView>& pixels) {
if (isContextLost())
return;
if (m_boundPixelUnpackBuffer) {
@@ -1405,16 +1414,17 @@ void WebGL2RenderingContextBase::texSubImage2D(GLenum target,
width, height, format, type, pixels);
}
-void WebGL2RenderingContextBase::texSubImage2D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- DOMArrayBufferView* pixels,
- GLuint srcOffset) {
+void WebGL2RenderingContextBase::texSubImage2D(
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ const NotShared<DOMArrayBufferView>& pixels,
+ GLuint srcOffset) {
if (isContextLost())
return;
if (m_boundPixelUnpackBuffer) {
@@ -1422,9 +1432,9 @@ void WebGL2RenderingContextBase::texSubImage2D(GLenum target,
"a buffer is bound to PIXEL_UNPACK_BUFFER");
return;
}
- texImageHelperDOMArrayBufferView(TexSubImage2D, target, level, 0, width,
- height, 1, 0, format, type, xoffset, yoffset,
- 0, pixels, NullNotReachable, srcOffset);
+ texImageHelperDOMArrayBufferView(
+ TexSubImage2D, target, level, 0, width, height, 1, 0, format, type,
+ xoffset, yoffset, 0, pixels.view(), NullNotReachable, srcOffset);
}
void WebGL2RenderingContextBase::texSubImage2D(GLenum target,
@@ -1655,32 +1665,34 @@ void WebGL2RenderingContextBase::texStorage3D(GLenum target,
depth);
}
-void WebGL2RenderingContextBase::texImage3D(GLenum target,
- GLint level,
- GLint internalformat,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLint border,
- GLenum format,
- GLenum type,
- DOMArrayBufferView* pixels) {
+void WebGL2RenderingContextBase::texImage3D(
+ GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const NotShared<DOMArrayBufferView>& pixels) {
texImageHelperDOMArrayBufferView(TexImage3D, target, level, internalformat,
width, height, depth, border, format, type,
- 0, 0, 0, pixels, NullAllowed, 0);
+ 0, 0, 0, pixels.view(), 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) {
+void WebGL2RenderingContextBase::texImage3D(
+ GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const NotShared<DOMArrayBufferView>& pixels,
+ GLuint srcOffset) {
if (isContextLost())
return;
if (m_boundPixelUnpackBuffer) {
@@ -1690,7 +1702,7 @@ void WebGL2RenderingContextBase::texImage3D(GLenum target,
}
texImageHelperDOMArrayBufferView(
TexImage3D, target, level, internalformat, width, height, depth, border,
- format, type, 0, 0, 0, pixels, NullNotReachable, srcOffset);
+ format, type, 0, 0, 0, pixels.view(), NullNotReachable, srcOffset);
}
void WebGL2RenderingContextBase::texImage3D(GLenum target,
@@ -1840,18 +1852,19 @@ void WebGL2RenderingContextBase::texImage3D(GLenum target,
m_unpackImageHeight, exceptionState);
}
-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) {
+void WebGL2RenderingContextBase::texSubImage3D(
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLenum format,
+ GLenum type,
+ const NotShared<DOMArrayBufferView>& pixels,
+ GLuint srcOffset) {
if (isContextLost())
return;
if (m_boundPixelUnpackBuffer) {
@@ -1861,7 +1874,7 @@ void WebGL2RenderingContextBase::texSubImage3D(GLenum target,
}
texImageHelperDOMArrayBufferView(
TexSubImage3D, target, level, 0, width, height, depth, 0, format, type,
- xoffset, yoffset, zoffset, pixels, NullNotReachable, srcOffset);
+ xoffset, yoffset, zoffset, pixels.view(), NullNotReachable, srcOffset);
}
void WebGL2RenderingContextBase::texSubImage3D(GLenum target,
@@ -2051,7 +2064,7 @@ void WebGL2RenderingContextBase::compressedTexImage2D(
GLsizei width,
GLsizei height,
GLint border,
- DOMArrayBufferView* data) {
+ const NotShared<DOMArrayBufferView>& data) {
if (isContextLost())
return;
if (m_boundPixelUnpackBuffer) {
@@ -2070,7 +2083,7 @@ void WebGL2RenderingContextBase::compressedTexImage2D(
GLsizei width,
GLsizei height,
GLint border,
- DOMArrayBufferView* data,
+ const NotShared<DOMArrayBufferView>& data,
GLuint srcOffset,
GLuint srcLengthOverride) {
if (isContextLost())
@@ -2084,21 +2097,21 @@ void WebGL2RenderingContextBase::compressedTexImage2D(
return;
if (!validateCompressedTexFormat("compressedTexImage2D", internalformat))
return;
- if (srcOffset > data->byteLength()) {
+ if (srcOffset > data.view()->byteLength()) {
synthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D",
"srcOffset is out of range");
return;
}
if (srcLengthOverride == 0) {
- srcLengthOverride = data->byteLength() - srcOffset;
- } else if (srcLengthOverride > data->byteLength() - srcOffset) {
+ srcLengthOverride = data.view()->byteLength() - srcOffset;
+ } else if (srcLengthOverride > data.view()->byteLength() - srcOffset) {
synthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D",
"srcLengthOverride is out of range");
return;
}
contextGL()->CompressedTexImage2D(
target, level, internalformat, width, height, border, srcLengthOverride,
- static_cast<uint8_t*>(data->baseAddress()) + srcOffset);
+ static_cast<uint8_t*>(data.view()->baseAddress()) + srcOffset);
}
void WebGL2RenderingContextBase::compressedTexImage2D(GLenum target,
@@ -2129,7 +2142,7 @@ void WebGL2RenderingContextBase::compressedTexSubImage2D(
GLsizei width,
GLsizei height,
GLenum format,
- DOMArrayBufferView* data) {
+ const NotShared<DOMArrayBufferView>& data) {
if (isContextLost())
return;
if (m_boundPixelUnpackBuffer) {
@@ -2149,7 +2162,7 @@ void WebGL2RenderingContextBase::compressedTexSubImage2D(
GLsizei width,
GLsizei height,
GLenum format,
- DOMArrayBufferView* data,
+ const NotShared<DOMArrayBufferView>& data,
GLuint srcOffset,
GLuint srcLengthOverride) {
if (isContextLost())
@@ -2163,21 +2176,21 @@ void WebGL2RenderingContextBase::compressedTexSubImage2D(
return;
if (!validateCompressedTexFormat("compressedTexSubImage2D", format))
return;
- if (srcOffset > data->byteLength()) {
+ if (srcOffset > data.view()->byteLength()) {
synthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage2D",
"srcOffset is out of range");
return;
}
if (srcLengthOverride == 0) {
- srcLengthOverride = data->byteLength() - srcOffset;
- } else if (srcLengthOverride > data->byteLength() - srcOffset) {
+ srcLengthOverride = data.view()->byteLength() - srcOffset;
+ } else if (srcLengthOverride > data.view()->byteLength() - srcOffset) {
synthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D",
"srcLengthOverride is out of range");
return;
}
contextGL()->CompressedTexSubImage2D(
target, level, xoffset, yoffset, width, height, format, srcLengthOverride,
- static_cast<uint8_t*>(data->baseAddress()) + srcOffset);
+ static_cast<uint8_t*>(data.view()->baseAddress()) + srcOffset);
}
void WebGL2RenderingContextBase::compressedTexSubImage2D(GLenum target,
@@ -2209,7 +2222,7 @@ void WebGL2RenderingContextBase::compressedTexImage3D(
GLsizei height,
GLsizei depth,
GLint border,
- DOMArrayBufferView* data,
+ const NotShared<DOMArrayBufferView>& data,
GLuint srcOffset,
GLuint srcLengthOverride) {
if (isContextLost())
@@ -2223,14 +2236,14 @@ void WebGL2RenderingContextBase::compressedTexImage3D(
return;
if (!validateCompressedTexFormat("compressedTexImage3D", internalformat))
return;
- if (srcOffset > data->byteLength()) {
+ if (srcOffset > data.view()->byteLength()) {
synthesizeGLError(GL_INVALID_VALUE, "compressedTexImage3D",
"srcOffset is out of range");
return;
}
if (srcLengthOverride == 0) {
- srcLengthOverride = data->byteLength() - srcOffset;
- } else if (srcLengthOverride > data->byteLength() - srcOffset) {
+ srcLengthOverride = data.view()->byteLength() - srcOffset;
+ } else if (srcLengthOverride > data.view()->byteLength() - srcOffset) {
synthesizeGLError(GL_INVALID_VALUE, "compressedTexImage3D",
"srcLengthOverride is out of range");
return;
@@ -2238,7 +2251,7 @@ void WebGL2RenderingContextBase::compressedTexImage3D(
contextGL()->CompressedTexImage3D(
target, level, internalformat, width, height, depth, border,
srcLengthOverride,
- static_cast<uint8_t*>(data->baseAddress()) + srcOffset);
+ static_cast<uint8_t*>(data.view()->baseAddress()) + srcOffset);
}
void WebGL2RenderingContextBase::compressedTexImage3D(GLenum target,
@@ -2272,7 +2285,7 @@ void WebGL2RenderingContextBase::compressedTexSubImage3D(
GLsizei height,
GLsizei depth,
GLenum format,
- DOMArrayBufferView* data,
+ const NotShared<DOMArrayBufferView>& data,
GLuint srcOffset,
GLuint srcLengthOverride) {
if (isContextLost())
@@ -2286,14 +2299,14 @@ void WebGL2RenderingContextBase::compressedTexSubImage3D(
return;
if (!validateCompressedTexFormat("compressedTexSubImage3D", format))
return;
- if (srcOffset > data->byteLength()) {
+ if (srcOffset > data.view()->byteLength()) {
synthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage3D",
"srcOffset is out of range");
return;
}
if (srcLengthOverride == 0) {
- srcLengthOverride = data->byteLength() - srcOffset;
- } else if (srcLengthOverride > data->byteLength() - srcOffset) {
+ srcLengthOverride = data.view()->byteLength() - srcOffset;
+ } else if (srcLengthOverride > data.view()->byteLength() - srcOffset) {
synthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage3D",
"srcLengthOverride is out of range");
return;
@@ -2301,7 +2314,7 @@ void WebGL2RenderingContextBase::compressedTexSubImage3D(
contextGL()->CompressedTexSubImage3D(
target, level, xoffset, yoffset, zoffset, width, height, depth, format,
srcLengthOverride,
- static_cast<uint8_t*>(data->baseAddress()) + srcOffset);
+ static_cast<uint8_t*>(data.view()->baseAddress()) + srcOffset);
}
void WebGL2RenderingContextBase::compressedTexSubImage3D(GLenum target,
@@ -2777,17 +2790,17 @@ void WebGL2RenderingContextBase::uniform4uiv(
void WebGL2RenderingContextBase::uniformMatrix2fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v,
+ const NotShared<DOMFloat32Array>& v,
GLuint srcOffset,
GLuint srcLength) {
if (isContextLost() ||
!validateUniformMatrixParameters("uniformMatrix2fv", location, transpose,
- v, 4, srcOffset, srcLength))
+ v.view(), 4, srcOffset, srcLength))
return;
contextGL()->UniformMatrix2fv(
location->location(),
- (srcLength ? srcLength : (v->length() - srcOffset)) >> 2, transpose,
- v->data() + srcOffset);
+ (srcLength ? srcLength : (v.view()->length() - srcOffset)) >> 2,
+ transpose, v.view()->data() + srcOffset);
}
void WebGL2RenderingContextBase::uniformMatrix2fv(
@@ -2810,17 +2823,17 @@ void WebGL2RenderingContextBase::uniformMatrix2fv(
void WebGL2RenderingContextBase::uniformMatrix3fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v,
+ const NotShared<DOMFloat32Array>& v,
GLuint srcOffset,
GLuint srcLength) {
if (isContextLost() ||
!validateUniformMatrixParameters("uniformMatrix3fv", location, transpose,
- v, 9, srcOffset, srcLength))
+ v.view(), 9, srcOffset, srcLength))
return;
contextGL()->UniformMatrix3fv(
location->location(),
- (srcLength ? srcLength : (v->length() - srcOffset)) / 9, transpose,
- v->data() + srcOffset);
+ (srcLength ? srcLength : (v.view()->length() - srcOffset)) / 9, transpose,
+ v.view()->data() + srcOffset);
}
void WebGL2RenderingContextBase::uniformMatrix3fv(
@@ -2843,17 +2856,17 @@ void WebGL2RenderingContextBase::uniformMatrix3fv(
void WebGL2RenderingContextBase::uniformMatrix4fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v,
+ const NotShared<DOMFloat32Array>& v,
GLuint srcOffset,
GLuint srcLength) {
if (isContextLost() ||
!validateUniformMatrixParameters("uniformMatrix4fv", location, transpose,
- v, 16, srcOffset, srcLength))
+ v.view(), 16, srcOffset, srcLength))
return;
contextGL()->UniformMatrix4fv(
location->location(),
- (srcLength ? srcLength : (v->length() - srcOffset)) >> 4, transpose,
- v->data() + srcOffset);
+ (srcLength ? srcLength : (v.view()->length() - srcOffset)) >> 4,
+ transpose, v.view()->data() + srcOffset);
}
void WebGL2RenderingContextBase::uniformMatrix4fv(
@@ -2876,18 +2889,17 @@ void WebGL2RenderingContextBase::uniformMatrix4fv(
void WebGL2RenderingContextBase::uniformMatrix2x3fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ const NotShared<DOMFloat32Array>& value,
GLuint srcOffset,
GLuint srcLength) {
- if (isContextLost() ||
- !validateUniformMatrixParameters("uniformMatrix2x3fv", location,
- transpose, value, 6, srcOffset,
- srcLength))
+ if (isContextLost() || !validateUniformMatrixParameters(
+ "uniformMatrix2x3fv", location, transpose,
+ value.view(), 6, srcOffset, srcLength))
return;
contextGL()->UniformMatrix2x3fv(
location->location(),
- (srcLength ? srcLength : (value->length() - srcOffset)) / 6, transpose,
- value->data() + srcOffset);
+ (srcLength ? srcLength : (value.view()->length() - srcOffset)) / 6,
+ transpose, value.view()->data() + srcOffset);
}
void WebGL2RenderingContextBase::uniformMatrix2x3fv(
@@ -2910,18 +2922,17 @@ void WebGL2RenderingContextBase::uniformMatrix2x3fv(
void WebGL2RenderingContextBase::uniformMatrix3x2fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ const NotShared<DOMFloat32Array>& value,
GLuint srcOffset,
GLuint srcLength) {
- if (isContextLost() ||
- !validateUniformMatrixParameters("uniformMatrix3x2fv", location,
- transpose, value, 6, srcOffset,
- srcLength))
+ if (isContextLost() || !validateUniformMatrixParameters(
+ "uniformMatrix3x2fv", location, transpose,
+ value.view(), 6, srcOffset, srcLength))
return;
contextGL()->UniformMatrix3x2fv(
location->location(),
- (srcLength ? srcLength : (value->length() - srcOffset)) / 6, transpose,
- value->data() + srcOffset);
+ (srcLength ? srcLength : (value.view()->length() - srcOffset)) / 6,
+ transpose, value.view()->data() + srcOffset);
}
void WebGL2RenderingContextBase::uniformMatrix3x2fv(
@@ -2944,18 +2955,17 @@ void WebGL2RenderingContextBase::uniformMatrix3x2fv(
void WebGL2RenderingContextBase::uniformMatrix2x4fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ const NotShared<DOMFloat32Array>& value,
GLuint srcOffset,
GLuint srcLength) {
- if (isContextLost() ||
- !validateUniformMatrixParameters("uniformMatrix2x4fv", location,
- transpose, value, 8, srcOffset,
- srcLength))
+ if (isContextLost() || !validateUniformMatrixParameters(
+ "uniformMatrix2x4fv", location, transpose,
+ value.view(), 8, srcOffset, srcLength))
return;
contextGL()->UniformMatrix2x4fv(
location->location(),
- (srcLength ? srcLength : (value->length() - srcOffset)) >> 3, transpose,
- value->data() + srcOffset);
+ (srcLength ? srcLength : (value.view()->length() - srcOffset)) >> 3,
+ transpose, value.view()->data() + srcOffset);
}
void WebGL2RenderingContextBase::uniformMatrix2x4fv(
@@ -2978,18 +2988,17 @@ void WebGL2RenderingContextBase::uniformMatrix2x4fv(
void WebGL2RenderingContextBase::uniformMatrix4x2fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ const NotShared<DOMFloat32Array>& value,
GLuint srcOffset,
GLuint srcLength) {
- if (isContextLost() ||
- !validateUniformMatrixParameters("uniformMatrix4x2fv", location,
- transpose, value, 8, srcOffset,
- srcLength))
+ if (isContextLost() || !validateUniformMatrixParameters(
+ "uniformMatrix4x2fv", location, transpose,
+ value.view(), 8, srcOffset, srcLength))
return;
contextGL()->UniformMatrix4x2fv(
location->location(),
- (srcLength ? srcLength : (value->length() - srcOffset)) >> 3, transpose,
- value->data() + srcOffset);
+ (srcLength ? srcLength : (value.view()->length() - srcOffset)) >> 3,
+ transpose, value.view()->data() + srcOffset);
}
void WebGL2RenderingContextBase::uniformMatrix4x2fv(
@@ -3012,18 +3021,17 @@ void WebGL2RenderingContextBase::uniformMatrix4x2fv(
void WebGL2RenderingContextBase::uniformMatrix3x4fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ const NotShared<DOMFloat32Array>& value,
GLuint srcOffset,
GLuint srcLength) {
- if (isContextLost() ||
- !validateUniformMatrixParameters("uniformMatrix3x4fv", location,
- transpose, value, 12, srcOffset,
- srcLength))
+ if (isContextLost() || !validateUniformMatrixParameters(
+ "uniformMatrix3x4fv", location, transpose,
+ value.view(), 12, srcOffset, srcLength))
return;
contextGL()->UniformMatrix3x4fv(
location->location(),
- (srcLength ? srcLength : (value->length() - srcOffset)) / 12, transpose,
- value->data() + srcOffset);
+ (srcLength ? srcLength : (value.view()->length() - srcOffset)) / 12,
+ transpose, value.view()->data() + srcOffset);
}
void WebGL2RenderingContextBase::uniformMatrix3x4fv(
@@ -3046,18 +3054,17 @@ void WebGL2RenderingContextBase::uniformMatrix3x4fv(
void WebGL2RenderingContextBase::uniformMatrix4x3fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ const NotShared<DOMFloat32Array>& value,
GLuint srcOffset,
GLuint srcLength) {
- if (isContextLost() ||
- !validateUniformMatrixParameters("uniformMatrix4x3fv", location,
- transpose, value, 12, srcOffset,
- srcLength))
+ if (isContextLost() || !validateUniformMatrixParameters(
+ "uniformMatrix4x3fv", location, transpose,
+ value.view(), 12, srcOffset, srcLength))
return;
contextGL()->UniformMatrix4x3fv(
location->location(),
- (srcLength ? srcLength : (value->length() - srcOffset)) / 12, transpose,
- value->data() + srcOffset);
+ (srcLength ? srcLength : (value.view()->length() - srcOffset)) / 12,
+ transpose, value.view()->data() + srcOffset);
}
void WebGL2RenderingContextBase::uniformMatrix4x3fv(
@@ -3176,7 +3183,7 @@ void WebGL2RenderingContextBase::uniform4iv(
void WebGL2RenderingContextBase::uniformMatrix2fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v) {
+ const NotShared<DOMFloat32Array>& v) {
WebGLRenderingContextBase::uniformMatrix2fv(location, transpose, v);
}
@@ -3190,7 +3197,7 @@ void WebGL2RenderingContextBase::uniformMatrix2fv(
void WebGL2RenderingContextBase::uniformMatrix3fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v) {
+ const NotShared<DOMFloat32Array>& v) {
WebGLRenderingContextBase::uniformMatrix3fv(location, transpose, v);
}
@@ -3204,7 +3211,7 @@ void WebGL2RenderingContextBase::uniformMatrix3fv(
void WebGL2RenderingContextBase::uniformMatrix4fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v) {
+ const NotShared<DOMFloat32Array>& v) {
WebGLRenderingContextBase::uniformMatrix4fv(location, transpose, v);
}
@@ -3226,15 +3233,16 @@ void WebGL2RenderingContextBase::vertexAttribI4i(GLuint index,
setVertexAttribType(index, Int32ArrayType);
}
-void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index,
- const DOMInt32Array* v) {
+void WebGL2RenderingContextBase::vertexAttribI4iv(
+ GLuint index,
+ const NotShared<const DOMInt32Array>& v) {
if (isContextLost())
return;
- if (!v || v->length() < 4) {
+ if (!v.view() || v.view()->length() < 4) {
synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array");
return;
}
- contextGL()->VertexAttribI4iv(index, v->data());
+ contextGL()->VertexAttribI4iv(index, v.view()->data());
setVertexAttribType(index, Int32ArrayType);
}
@@ -3261,15 +3269,16 @@ void WebGL2RenderingContextBase::vertexAttribI4ui(GLuint index,
setVertexAttribType(index, Uint32ArrayType);
}
-void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index,
- const DOMUint32Array* v) {
+void WebGL2RenderingContextBase::vertexAttribI4uiv(
+ GLuint index,
+ const NotShared<const DOMUint32Array>& v) {
if (isContextLost())
return;
- if (!v || v->length() < 4) {
+ if (!v.view() || v.view()->length() < 4) {
synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array");
return;
}
- contextGL()->VertexAttribI4uiv(index, v->data());
+ contextGL()->VertexAttribI4uiv(index, v.view()->data());
setVertexAttribType(index, Uint32ArrayType);
}
@@ -3482,14 +3491,15 @@ WebGLTexture* WebGL2RenderingContextBase::validateTexImageBinding(
return validateTexture2DBinding(funcName, target);
}
-void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer,
- GLint drawbuffer,
- DOMInt32Array* value) {
+void WebGL2RenderingContextBase::clearBufferiv(
+ GLenum buffer,
+ GLint drawbuffer,
+ const NotShared<DOMInt32Array>& value) {
if (isContextLost() ||
- !validateClearBuffer("clearBufferiv", buffer, value->length()))
+ !validateClearBuffer("clearBufferiv", buffer, value.view()->length()))
return;
- contextGL()->ClearBufferiv(buffer, drawbuffer, value->data());
+ contextGL()->ClearBufferiv(buffer, drawbuffer, value.view()->data());
}
void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer,
@@ -3502,14 +3512,15 @@ void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer,
contextGL()->ClearBufferiv(buffer, drawbuffer, value.data());
}
-void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer,
- GLint drawbuffer,
- DOMUint32Array* value) {
+void WebGL2RenderingContextBase::clearBufferuiv(
+ GLenum buffer,
+ GLint drawbuffer,
+ const NotShared<DOMUint32Array>& value) {
if (isContextLost() ||
- !validateClearBuffer("clearBufferuiv", buffer, value->length()))
+ !validateClearBuffer("clearBufferuiv", buffer, value.view()->length()))
return;
- contextGL()->ClearBufferuiv(buffer, drawbuffer, value->data());
+ contextGL()->ClearBufferuiv(buffer, drawbuffer, value.view()->data());
}
void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer,
@@ -3522,14 +3533,15 @@ void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer,
contextGL()->ClearBufferuiv(buffer, drawbuffer, value.data());
}
-void WebGL2RenderingContextBase::clearBufferfv(GLenum buffer,
- GLint drawbuffer,
- DOMFloat32Array* value) {
+void WebGL2RenderingContextBase::clearBufferfv(
+ GLenum buffer,
+ GLint drawbuffer,
+ const NotShared<DOMFloat32Array>& value) {
if (isContextLost() ||
- !validateClearBuffer("clearBufferfv", buffer, value->length()))
+ !validateClearBuffer("clearBufferfv", buffer, value.view()->length()))
return;
- contextGL()->ClearBufferfv(buffer, drawbuffer, value->data());
+ contextGL()->ClearBufferfv(buffer, drawbuffer, value.view()->data());
}
void WebGL2RenderingContextBase::clearBufferfv(GLenum buffer,

Powered by Google App Engine
This is Rietveld 408576698