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

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

Issue 2707243006: [SharedArrayBuffer] Prevent SharedArrayBuffer being used in Web APIs (Closed)
Patch Set: update comment, add TODO 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 47eae64de91e1ac45dbb06d051642e99d936729a..75537ecfd015b93967cb8641dcb77d6c448065d0 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
+++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
@@ -248,16 +248,17 @@ void WebGL2RenderingContextBase::InitializeNewContext() {
WebGLRenderingContextBase::InitializeNewContext();
}
-void WebGL2RenderingContextBase::bufferData(GLenum target,
- DOMArrayBufferView* src_data,
- GLenum usage,
- GLuint src_offset,
- GLuint length) {
+void WebGL2RenderingContextBase::bufferData(
+ GLenum target,
+ NotShared<DOMArrayBufferView> src_data,
+ GLenum usage,
+ GLuint src_offset,
+ GLuint length) {
if (isContextLost())
return;
void* sub_base_address = nullptr;
long long sub_byte_length = 0;
- if (!ValidateSubSourceAndGetData(src_data, src_offset, length,
+ if (!ValidateSubSourceAndGetData(src_data.View(), src_offset, length,
&sub_base_address, &sub_byte_length)) {
SynthesizeGLError(GL_INVALID_VALUE, "bufferData",
"srcOffset + length too large");
@@ -279,21 +280,22 @@ void WebGL2RenderingContextBase::bufferData(GLenum target,
}
void WebGL2RenderingContextBase::bufferData(GLenum target,
- DOMArrayBufferView* data,
+ NotShared<DOMArrayBufferView> data,
GLenum usage) {
WebGLRenderingContextBase::bufferData(target, data, usage);
}
-void WebGL2RenderingContextBase::bufferSubData(GLenum target,
- GLintptr dst_byte_offset,
- DOMArrayBufferView* src_data,
- GLuint src_offset,
- GLuint length) {
+void WebGL2RenderingContextBase::bufferSubData(
+ GLenum target,
+ GLintptr dst_byte_offset,
+ NotShared<DOMArrayBufferView> src_data,
+ GLuint src_offset,
+ GLuint length) {
if (isContextLost())
return;
void* sub_base_address = nullptr;
long long sub_byte_length = 0;
- if (!ValidateSubSourceAndGetData(src_data, src_offset, length,
+ if (!ValidateSubSourceAndGetData(src_data.View(), src_offset, length,
&sub_base_address, &sub_byte_length)) {
SynthesizeGLError(GL_INVALID_VALUE, "bufferSubData",
"srcOffset + length too large");
@@ -365,17 +367,18 @@ void WebGL2RenderingContextBase::copyBufferSubData(GLenum read_target,
static_cast<GLintptr>(write_offset), static_cast<GLsizeiptr>(size));
}
-void WebGL2RenderingContextBase::getBufferSubData(GLenum target,
- long long src_byte_offset,
- DOMArrayBufferView* dst_data,
- GLuint dst_offset,
- GLuint length) {
+void WebGL2RenderingContextBase::getBufferSubData(
+ GLenum target,
+ long long src_byte_offset,
+ NotShared<DOMArrayBufferView> dst_data,
+ GLuint dst_offset,
+ GLuint length) {
WebGLBuffer* source_buffer = nullptr;
void* destination_data_ptr = nullptr;
long long destination_byte_length = 0;
const char* message = ValidateGetBufferSubData(
- __FUNCTION__, target, src_byte_offset, dst_data, dst_offset, length,
- &source_buffer, &destination_data_ptr, &destination_byte_length);
+ __FUNCTION__, target, src_byte_offset, dst_data.View(), dst_offset,
+ length, &source_buffer, &destination_data_ptr, &destination_byte_length);
if (message) {
// If there was a GL error, it was already synthesized in
// validateGetBufferSubData, so it's not done here.
@@ -749,13 +752,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,
+ NotShared<DOMArrayBufferView> pixels) {
if (isContextLost())
return;
if (bound_pixel_pack_buffer_.Get()) {
@@ -764,17 +768,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,
+ NotShared<DOMArrayBufferView> pixels,
+ GLuint offset) {
if (isContextLost())
return;
if (bound_pixel_pack_buffer_.Get()) {
@@ -783,7 +788,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,
@@ -1125,15 +1130,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,
+ NotShared<DOMArrayBufferView> data) {
if (isContextLost())
return;
if (bound_pixel_unpack_buffer_) {
@@ -1153,7 +1159,7 @@ void WebGL2RenderingContextBase::texImage2D(GLenum target,
GLint border,
GLenum format,
GLenum type,
- DOMArrayBufferView* data,
+ NotShared<DOMArrayBufferView> data,
GLuint src_offset) {
if (isContextLost())
return;
@@ -1162,9 +1168,9 @@ void WebGL2RenderingContextBase::texImage2D(GLenum target,
"a buffer is bound to PIXEL_UNPACK_BUFFER");
return;
}
- TexImageHelperDOMArrayBufferView(kTexImage2D, target, level, internalformat,
- width, height, 1, border, format, type, 0, 0,
- 0, data, kNullNotReachable, src_offset);
+ TexImageHelperDOMArrayBufferView(
+ kTexImage2D, target, level, internalformat, width, height, 1, border,
+ format, type, 0, 0, 0, data.View(), kNullNotReachable, src_offset);
}
void WebGL2RenderingContextBase::texImage2D(GLenum target,
@@ -1368,15 +1374,16 @@ void WebGL2RenderingContextBase::texImage2D(GLenum target,
type, image_bit_map, exception_state);
}
-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,
+ NotShared<DOMArrayBufferView> pixels) {
if (isContextLost())
return;
if (bound_pixel_unpack_buffer_) {
@@ -1388,16 +1395,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 src_offset) {
+void WebGL2RenderingContextBase::texSubImage2D(
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ NotShared<DOMArrayBufferView> pixels,
+ GLuint src_offset) {
if (isContextLost())
return;
if (bound_pixel_unpack_buffer_) {
@@ -1405,9 +1413,9 @@ void WebGL2RenderingContextBase::texSubImage2D(GLenum target,
"a buffer is bound to PIXEL_UNPACK_BUFFER");
return;
}
- TexImageHelperDOMArrayBufferView(kTexSubImage2D, target, level, 0, width,
- height, 1, 0, format, type, xoffset, yoffset,
- 0, pixels, kNullNotReachable, src_offset);
+ TexImageHelperDOMArrayBufferView(
+ kTexSubImage2D, target, level, 0, width, height, 1, 0, format, type,
+ xoffset, yoffset, 0, pixels.View(), kNullNotReachable, src_offset);
}
void WebGL2RenderingContextBase::texSubImage2D(GLenum target,
@@ -1648,32 +1656,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,
+ NotShared<DOMArrayBufferView> pixels) {
TexImageHelperDOMArrayBufferView(kTexImage3D, target, level, internalformat,
width, height, depth, border, format, type,
- 0, 0, 0, pixels, kNullAllowed, 0);
+ 0, 0, 0, pixels.View(), kNullAllowed, 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 src_offset) {
+void WebGL2RenderingContextBase::texImage3D(
+ GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ NotShared<DOMArrayBufferView> pixels,
+ GLuint src_offset) {
if (isContextLost())
return;
if (bound_pixel_unpack_buffer_) {
@@ -1683,7 +1693,7 @@ void WebGL2RenderingContextBase::texImage3D(GLenum target,
}
TexImageHelperDOMArrayBufferView(
kTexImage3D, target, level, internalformat, width, height, depth, border,
- format, type, 0, 0, 0, pixels, kNullNotReachable, src_offset);
+ format, type, 0, 0, 0, pixels.View(), kNullNotReachable, src_offset);
}
void WebGL2RenderingContextBase::texImage3D(GLenum target,
@@ -1834,18 +1844,19 @@ void WebGL2RenderingContextBase::texImage3D(GLenum target,
unpack_image_height_, exception_state);
}
-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 src_offset) {
+void WebGL2RenderingContextBase::texSubImage3D(
+ GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLenum format,
+ GLenum type,
+ NotShared<DOMArrayBufferView> pixels,
+ GLuint src_offset) {
if (isContextLost())
return;
if (bound_pixel_unpack_buffer_) {
@@ -1855,7 +1866,7 @@ void WebGL2RenderingContextBase::texSubImage3D(GLenum target,
}
TexImageHelperDOMArrayBufferView(
kTexSubImage3D, target, level, 0, width, height, depth, 0, format, type,
- xoffset, yoffset, zoffset, pixels, kNullNotReachable, src_offset);
+ xoffset, yoffset, zoffset, pixels.View(), kNullNotReachable, src_offset);
}
void WebGL2RenderingContextBase::texSubImage3D(GLenum target,
@@ -2050,7 +2061,7 @@ void WebGL2RenderingContextBase::compressedTexImage2D(
GLsizei width,
GLsizei height,
GLint border,
- DOMArrayBufferView* data) {
+ NotShared<DOMArrayBufferView> data) {
if (isContextLost())
return;
if (bound_pixel_unpack_buffer_) {
@@ -2069,7 +2080,7 @@ void WebGL2RenderingContextBase::compressedTexImage2D(
GLsizei width,
GLsizei height,
GLint border,
- DOMArrayBufferView* data,
+ NotShared<DOMArrayBufferView> data,
GLuint src_offset,
GLuint src_length_override) {
if (isContextLost())
@@ -2083,21 +2094,21 @@ void WebGL2RenderingContextBase::compressedTexImage2D(
return;
if (!ValidateCompressedTexFormat("compressedTexImage2D", internalformat))
return;
- if (src_offset > data->byteLength()) {
+ if (src_offset > data.View()->byteLength()) {
SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D",
"srcOffset is out of range");
return;
}
if (src_length_override == 0) {
- src_length_override = data->byteLength() - src_offset;
- } else if (src_length_override > data->byteLength() - src_offset) {
+ src_length_override = data.View()->byteLength() - src_offset;
+ } else if (src_length_override > data.View()->byteLength() - src_offset) {
SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D",
"srcLengthOverride is out of range");
return;
}
ContextGL()->CompressedTexImage2D(
target, level, internalformat, width, height, border, src_length_override,
- static_cast<uint8_t*>(data->BaseAddress()) + src_offset);
+ static_cast<uint8_t*>(data.View()->BaseAddress()) + src_offset);
}
void WebGL2RenderingContextBase::compressedTexImage2D(GLenum target,
@@ -2128,7 +2139,7 @@ void WebGL2RenderingContextBase::compressedTexSubImage2D(
GLsizei width,
GLsizei height,
GLenum format,
- DOMArrayBufferView* data) {
+ NotShared<DOMArrayBufferView> data) {
if (isContextLost())
return;
if (bound_pixel_unpack_buffer_) {
@@ -2148,7 +2159,7 @@ void WebGL2RenderingContextBase::compressedTexSubImage2D(
GLsizei width,
GLsizei height,
GLenum format,
- DOMArrayBufferView* data,
+ NotShared<DOMArrayBufferView> data,
GLuint src_offset,
GLuint src_length_override) {
if (isContextLost())
@@ -2162,14 +2173,14 @@ void WebGL2RenderingContextBase::compressedTexSubImage2D(
return;
if (!ValidateCompressedTexFormat("compressedTexSubImage2D", format))
return;
- if (src_offset > data->byteLength()) {
+ if (src_offset > data.View()->byteLength()) {
SynthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage2D",
"srcOffset is out of range");
return;
}
if (src_length_override == 0) {
- src_length_override = data->byteLength() - src_offset;
- } else if (src_length_override > data->byteLength() - src_offset) {
+ src_length_override = data.View()->byteLength() - src_offset;
+ } else if (src_length_override > data.View()->byteLength() - src_offset) {
SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D",
"srcLengthOverride is out of range");
return;
@@ -2177,7 +2188,7 @@ void WebGL2RenderingContextBase::compressedTexSubImage2D(
ContextGL()->CompressedTexSubImage2D(
target, level, xoffset, yoffset, width, height, format,
src_length_override,
- static_cast<uint8_t*>(data->BaseAddress()) + src_offset);
+ static_cast<uint8_t*>(data.View()->BaseAddress()) + src_offset);
}
void WebGL2RenderingContextBase::compressedTexSubImage2D(GLenum target,
@@ -2209,7 +2220,7 @@ void WebGL2RenderingContextBase::compressedTexImage3D(
GLsizei height,
GLsizei depth,
GLint border,
- DOMArrayBufferView* data,
+ NotShared<DOMArrayBufferView> data,
GLuint src_offset,
GLuint src_length_override) {
if (isContextLost())
@@ -2223,14 +2234,14 @@ void WebGL2RenderingContextBase::compressedTexImage3D(
return;
if (!ValidateCompressedTexFormat("compressedTexImage3D", internalformat))
return;
- if (src_offset > data->byteLength()) {
+ if (src_offset > data.View()->byteLength()) {
SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage3D",
"srcOffset is out of range");
return;
}
if (src_length_override == 0) {
- src_length_override = data->byteLength() - src_offset;
- } else if (src_length_override > data->byteLength() - src_offset) {
+ src_length_override = data.View()->byteLength() - src_offset;
+ } else if (src_length_override > data.View()->byteLength() - src_offset) {
SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage3D",
"srcLengthOverride is out of range");
return;
@@ -2238,7 +2249,7 @@ void WebGL2RenderingContextBase::compressedTexImage3D(
ContextGL()->CompressedTexImage3D(
target, level, internalformat, width, height, depth, border,
src_length_override,
- static_cast<uint8_t*>(data->BaseAddress()) + src_offset);
+ static_cast<uint8_t*>(data.View()->BaseAddress()) + src_offset);
}
void WebGL2RenderingContextBase::compressedTexImage3D(GLenum target,
@@ -2272,7 +2283,7 @@ void WebGL2RenderingContextBase::compressedTexSubImage3D(
GLsizei height,
GLsizei depth,
GLenum format,
- DOMArrayBufferView* data,
+ NotShared<DOMArrayBufferView> data,
GLuint src_offset,
GLuint src_length_override) {
if (isContextLost())
@@ -2286,14 +2297,14 @@ void WebGL2RenderingContextBase::compressedTexSubImage3D(
return;
if (!ValidateCompressedTexFormat("compressedTexSubImage3D", format))
return;
- if (src_offset > data->byteLength()) {
+ if (src_offset > data.View()->byteLength()) {
SynthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage3D",
"srcOffset is out of range");
return;
}
if (src_length_override == 0) {
- src_length_override = data->byteLength() - src_offset;
- } else if (src_length_override > data->byteLength() - src_offset) {
+ src_length_override = data.View()->byteLength() - src_offset;
+ } else if (src_length_override > data.View()->byteLength() - src_offset) {
SynthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage3D",
"srcLengthOverride is out of range");
return;
@@ -2301,7 +2312,7 @@ void WebGL2RenderingContextBase::compressedTexSubImage3D(
ContextGL()->CompressedTexSubImage3D(
target, level, xoffset, yoffset, zoffset, width, height, depth, format,
src_length_override,
- static_cast<uint8_t*>(data->BaseAddress()) + src_offset);
+ static_cast<uint8_t*>(data.View()->BaseAddress()) + src_offset);
}
void WebGL2RenderingContextBase::compressedTexSubImage3D(GLenum target,
@@ -2784,17 +2795,17 @@ void WebGL2RenderingContextBase::uniform4uiv(
void WebGL2RenderingContextBase::uniformMatrix2fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v,
+ NotShared<DOMFloat32Array> v,
GLuint src_offset,
GLuint src_length) {
if (isContextLost() ||
!ValidateUniformMatrixParameters("uniformMatrix2fv", location, transpose,
- v, 4, src_offset, src_length))
+ v.View(), 4, src_offset, src_length))
return;
ContextGL()->UniformMatrix2fv(
location->Location(),
- (src_length ? src_length : (v->length() - src_offset)) >> 2, transpose,
- v->Data() + src_offset);
+ (src_length ? src_length : (v.View()->length() - src_offset)) >> 2,
+ transpose, v.View()->Data() + src_offset);
}
void WebGL2RenderingContextBase::uniformMatrix2fv(
@@ -2816,17 +2827,17 @@ void WebGL2RenderingContextBase::uniformMatrix2fv(
void WebGL2RenderingContextBase::uniformMatrix3fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v,
+ NotShared<DOMFloat32Array> v,
GLuint src_offset,
GLuint src_length) {
if (isContextLost() ||
!ValidateUniformMatrixParameters("uniformMatrix3fv", location, transpose,
- v, 9, src_offset, src_length))
+ v.View(), 9, src_offset, src_length))
return;
ContextGL()->UniformMatrix3fv(
location->Location(),
- (src_length ? src_length : (v->length() - src_offset)) / 9, transpose,
- v->Data() + src_offset);
+ (src_length ? src_length : (v.View()->length() - src_offset)) / 9,
+ transpose, v.View()->Data() + src_offset);
}
void WebGL2RenderingContextBase::uniformMatrix3fv(
@@ -2848,17 +2859,17 @@ void WebGL2RenderingContextBase::uniformMatrix3fv(
void WebGL2RenderingContextBase::uniformMatrix4fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v,
+ NotShared<DOMFloat32Array> v,
GLuint src_offset,
GLuint src_length) {
if (isContextLost() ||
!ValidateUniformMatrixParameters("uniformMatrix4fv", location, transpose,
- v, 16, src_offset, src_length))
+ v.View(), 16, src_offset, src_length))
return;
ContextGL()->UniformMatrix4fv(
location->Location(),
- (src_length ? src_length : (v->length() - src_offset)) >> 4, transpose,
- v->Data() + src_offset);
+ (src_length ? src_length : (v.View()->length() - src_offset)) >> 4,
+ transpose, v.View()->Data() + src_offset);
}
void WebGL2RenderingContextBase::uniformMatrix4fv(
@@ -2880,17 +2891,17 @@ void WebGL2RenderingContextBase::uniformMatrix4fv(
void WebGL2RenderingContextBase::uniformMatrix2x3fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ NotShared<DOMFloat32Array> value,
GLuint src_offset,
GLuint src_length) {
if (isContextLost() || !ValidateUniformMatrixParameters(
- "uniformMatrix2x3fv", location, transpose, value,
- 6, src_offset, src_length))
+ "uniformMatrix2x3fv", location, transpose,
+ value.View(), 6, src_offset, src_length))
return;
ContextGL()->UniformMatrix2x3fv(
location->Location(),
- (src_length ? src_length : (value->length() - src_offset)) / 6, transpose,
- value->Data() + src_offset);
+ (src_length ? src_length : (value.View()->length() - src_offset)) / 6,
+ transpose, value.View()->Data() + src_offset);
}
void WebGL2RenderingContextBase::uniformMatrix2x3fv(
@@ -2913,17 +2924,17 @@ void WebGL2RenderingContextBase::uniformMatrix2x3fv(
void WebGL2RenderingContextBase::uniformMatrix3x2fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ NotShared<DOMFloat32Array> value,
GLuint src_offset,
GLuint src_length) {
if (isContextLost() || !ValidateUniformMatrixParameters(
- "uniformMatrix3x2fv", location, transpose, value,
- 6, src_offset, src_length))
+ "uniformMatrix3x2fv", location, transpose,
+ value.View(), 6, src_offset, src_length))
return;
ContextGL()->UniformMatrix3x2fv(
location->Location(),
- (src_length ? src_length : (value->length() - src_offset)) / 6, transpose,
- value->Data() + src_offset);
+ (src_length ? src_length : (value.View()->length() - src_offset)) / 6,
+ transpose, value.View()->Data() + src_offset);
}
void WebGL2RenderingContextBase::uniformMatrix3x2fv(
@@ -2946,17 +2957,17 @@ void WebGL2RenderingContextBase::uniformMatrix3x2fv(
void WebGL2RenderingContextBase::uniformMatrix2x4fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ NotShared<DOMFloat32Array> value,
GLuint src_offset,
GLuint src_length) {
if (isContextLost() || !ValidateUniformMatrixParameters(
- "uniformMatrix2x4fv", location, transpose, value,
- 8, src_offset, src_length))
+ "uniformMatrix2x4fv", location, transpose,
+ value.View(), 8, src_offset, src_length))
return;
ContextGL()->UniformMatrix2x4fv(
location->Location(),
- (src_length ? src_length : (value->length() - src_offset)) >> 3,
- transpose, value->Data() + src_offset);
+ (src_length ? src_length : (value.View()->length() - src_offset)) >> 3,
+ transpose, value.View()->Data() + src_offset);
}
void WebGL2RenderingContextBase::uniformMatrix2x4fv(
@@ -2979,17 +2990,17 @@ void WebGL2RenderingContextBase::uniformMatrix2x4fv(
void WebGL2RenderingContextBase::uniformMatrix4x2fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ NotShared<DOMFloat32Array> value,
GLuint src_offset,
GLuint src_length) {
if (isContextLost() || !ValidateUniformMatrixParameters(
- "uniformMatrix4x2fv", location, transpose, value,
- 8, src_offset, src_length))
+ "uniformMatrix4x2fv", location, transpose,
+ value.View(), 8, src_offset, src_length))
return;
ContextGL()->UniformMatrix4x2fv(
location->Location(),
- (src_length ? src_length : (value->length() - src_offset)) >> 3,
- transpose, value->Data() + src_offset);
+ (src_length ? src_length : (value.View()->length() - src_offset)) >> 3,
+ transpose, value.View()->Data() + src_offset);
}
void WebGL2RenderingContextBase::uniformMatrix4x2fv(
@@ -3012,17 +3023,17 @@ void WebGL2RenderingContextBase::uniformMatrix4x2fv(
void WebGL2RenderingContextBase::uniformMatrix3x4fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ NotShared<DOMFloat32Array> value,
GLuint src_offset,
GLuint src_length) {
if (isContextLost() || !ValidateUniformMatrixParameters(
- "uniformMatrix3x4fv", location, transpose, value,
- 12, src_offset, src_length))
+ "uniformMatrix3x4fv", location, transpose,
+ value.View(), 12, src_offset, src_length))
return;
ContextGL()->UniformMatrix3x4fv(
location->Location(),
- (src_length ? src_length : (value->length() - src_offset)) / 12,
- transpose, value->Data() + src_offset);
+ (src_length ? src_length : (value.View()->length() - src_offset)) / 12,
+ transpose, value.View()->Data() + src_offset);
}
void WebGL2RenderingContextBase::uniformMatrix3x4fv(
@@ -3045,17 +3056,17 @@ void WebGL2RenderingContextBase::uniformMatrix3x4fv(
void WebGL2RenderingContextBase::uniformMatrix4x3fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* value,
+ NotShared<DOMFloat32Array> value,
GLuint src_offset,
GLuint src_length) {
if (isContextLost() || !ValidateUniformMatrixParameters(
- "uniformMatrix4x3fv", location, transpose, value,
- 12, src_offset, src_length))
+ "uniformMatrix4x3fv", location, transpose,
+ value.View(), 12, src_offset, src_length))
return;
ContextGL()->UniformMatrix4x3fv(
location->Location(),
- (src_length ? src_length : (value->length() - src_offset)) / 12,
- transpose, value->Data() + src_offset);
+ (src_length ? src_length : (value.View()->length() - src_offset)) / 12,
+ transpose, value.View()->Data() + src_offset);
}
void WebGL2RenderingContextBase::uniformMatrix4x3fv(
@@ -3174,7 +3185,7 @@ void WebGL2RenderingContextBase::uniform4iv(
void WebGL2RenderingContextBase::uniformMatrix2fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v) {
+ NotShared<DOMFloat32Array> v) {
WebGLRenderingContextBase::uniformMatrix2fv(location, transpose, v);
}
@@ -3188,7 +3199,7 @@ void WebGL2RenderingContextBase::uniformMatrix2fv(
void WebGL2RenderingContextBase::uniformMatrix3fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v) {
+ NotShared<DOMFloat32Array> v) {
WebGLRenderingContextBase::uniformMatrix3fv(location, transpose, v);
}
@@ -3202,7 +3213,7 @@ void WebGL2RenderingContextBase::uniformMatrix3fv(
void WebGL2RenderingContextBase::uniformMatrix4fv(
const WebGLUniformLocation* location,
GLboolean transpose,
- DOMFloat32Array* v) {
+ NotShared<DOMFloat32Array> v) {
WebGLRenderingContextBase::uniformMatrix4fv(location, transpose, v);
}
@@ -3224,15 +3235,16 @@ void WebGL2RenderingContextBase::vertexAttribI4i(GLuint index,
SetVertexAttribType(index, kInt32ArrayType);
}
-void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index,
- const DOMInt32Array* v) {
+void WebGL2RenderingContextBase::vertexAttribI4iv(
+ GLuint index,
+ 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, kInt32ArrayType);
}
@@ -3259,15 +3271,16 @@ void WebGL2RenderingContextBase::vertexAttribI4ui(GLuint index,
SetVertexAttribType(index, kUint32ArrayType);
}
-void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index,
- const DOMUint32Array* v) {
+void WebGL2RenderingContextBase::vertexAttribI4uiv(
+ GLuint index,
+ 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, kUint32ArrayType);
}
@@ -3485,12 +3498,12 @@ WebGLTexture* WebGL2RenderingContextBase::ValidateTexImageBinding(
void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer,
GLint drawbuffer,
- DOMInt32Array* value) {
+ 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,
@@ -3503,14 +3516,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,
+ 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,
@@ -3523,14 +3537,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,
+ 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