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

Side by Side 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 unified diff | Download patch
OLDNEW
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 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 pack_skip_rows_ = 0; 241 pack_skip_rows_ = 0;
242 unpack_row_length_ = 0; 242 unpack_row_length_ = 0;
243 unpack_image_height_ = 0; 243 unpack_image_height_ = 0;
244 unpack_skip_pixels_ = 0; 244 unpack_skip_pixels_ = 0;
245 unpack_skip_rows_ = 0; 245 unpack_skip_rows_ = 0;
246 unpack_skip_images_ = 0; 246 unpack_skip_images_ = 0;
247 247
248 WebGLRenderingContextBase::InitializeNewContext(); 248 WebGLRenderingContextBase::InitializeNewContext();
249 } 249 }
250 250
251 void WebGL2RenderingContextBase::bufferData(GLenum target, 251 void WebGL2RenderingContextBase::bufferData(
252 DOMArrayBufferView* src_data, 252 GLenum target,
253 GLenum usage, 253 NotShared<DOMArrayBufferView> src_data,
254 GLuint src_offset, 254 GLenum usage,
255 GLuint length) { 255 GLuint src_offset,
256 GLuint length) {
256 if (isContextLost()) 257 if (isContextLost())
257 return; 258 return;
258 void* sub_base_address = nullptr; 259 void* sub_base_address = nullptr;
259 long long sub_byte_length = 0; 260 long long sub_byte_length = 0;
260 if (!ValidateSubSourceAndGetData(src_data, src_offset, length, 261 if (!ValidateSubSourceAndGetData(src_data.View(), src_offset, length,
261 &sub_base_address, &sub_byte_length)) { 262 &sub_base_address, &sub_byte_length)) {
262 SynthesizeGLError(GL_INVALID_VALUE, "bufferData", 263 SynthesizeGLError(GL_INVALID_VALUE, "bufferData",
263 "srcOffset + length too large"); 264 "srcOffset + length too large");
264 return; 265 return;
265 } 266 }
266 BufferDataImpl(target, sub_byte_length, sub_base_address, usage); 267 BufferDataImpl(target, sub_byte_length, sub_base_address, usage);
267 } 268 }
268 269
269 void WebGL2RenderingContextBase::bufferData(GLenum target, 270 void WebGL2RenderingContextBase::bufferData(GLenum target,
270 long long size, 271 long long size,
271 GLenum usage) { 272 GLenum usage) {
272 WebGLRenderingContextBase::bufferData(target, size, usage); 273 WebGLRenderingContextBase::bufferData(target, size, usage);
273 } 274 }
274 275
275 void WebGL2RenderingContextBase::bufferData(GLenum target, 276 void WebGL2RenderingContextBase::bufferData(GLenum target,
276 DOMArrayBuffer* data, 277 DOMArrayBuffer* data,
277 GLenum usage) { 278 GLenum usage) {
278 WebGLRenderingContextBase::bufferData(target, data, usage); 279 WebGLRenderingContextBase::bufferData(target, data, usage);
279 } 280 }
280 281
281 void WebGL2RenderingContextBase::bufferData(GLenum target, 282 void WebGL2RenderingContextBase::bufferData(GLenum target,
282 DOMArrayBufferView* data, 283 NotShared<DOMArrayBufferView> data,
283 GLenum usage) { 284 GLenum usage) {
284 WebGLRenderingContextBase::bufferData(target, data, usage); 285 WebGLRenderingContextBase::bufferData(target, data, usage);
285 } 286 }
286 287
287 void WebGL2RenderingContextBase::bufferSubData(GLenum target, 288 void WebGL2RenderingContextBase::bufferSubData(
288 GLintptr dst_byte_offset, 289 GLenum target,
289 DOMArrayBufferView* src_data, 290 GLintptr dst_byte_offset,
290 GLuint src_offset, 291 NotShared<DOMArrayBufferView> src_data,
291 GLuint length) { 292 GLuint src_offset,
293 GLuint length) {
292 if (isContextLost()) 294 if (isContextLost())
293 return; 295 return;
294 void* sub_base_address = nullptr; 296 void* sub_base_address = nullptr;
295 long long sub_byte_length = 0; 297 long long sub_byte_length = 0;
296 if (!ValidateSubSourceAndGetData(src_data, src_offset, length, 298 if (!ValidateSubSourceAndGetData(src_data.View(), src_offset, length,
297 &sub_base_address, &sub_byte_length)) { 299 &sub_base_address, &sub_byte_length)) {
298 SynthesizeGLError(GL_INVALID_VALUE, "bufferSubData", 300 SynthesizeGLError(GL_INVALID_VALUE, "bufferSubData",
299 "srcOffset + length too large"); 301 "srcOffset + length too large");
300 return; 302 return;
301 } 303 }
302 BufferSubDataImpl(target, dst_byte_offset, sub_byte_length, sub_base_address); 304 BufferSubDataImpl(target, dst_byte_offset, sub_byte_length, sub_base_address);
303 } 305 }
304 306
305 void WebGL2RenderingContextBase::bufferSubData(GLenum target, 307 void WebGL2RenderingContextBase::bufferSubData(GLenum target,
306 long long offset, 308 long long offset,
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 } 360 }
359 361
360 if (write_buffer->GetInitialTarget() == 0) 362 if (write_buffer->GetInitialTarget() == 0)
361 write_buffer->SetInitialTarget(read_buffer->GetInitialTarget()); 363 write_buffer->SetInitialTarget(read_buffer->GetInitialTarget());
362 364
363 ContextGL()->CopyBufferSubData( 365 ContextGL()->CopyBufferSubData(
364 read_target, write_target, static_cast<GLintptr>(read_offset), 366 read_target, write_target, static_cast<GLintptr>(read_offset),
365 static_cast<GLintptr>(write_offset), static_cast<GLsizeiptr>(size)); 367 static_cast<GLintptr>(write_offset), static_cast<GLsizeiptr>(size));
366 } 368 }
367 369
368 void WebGL2RenderingContextBase::getBufferSubData(GLenum target, 370 void WebGL2RenderingContextBase::getBufferSubData(
369 long long src_byte_offset, 371 GLenum target,
370 DOMArrayBufferView* dst_data, 372 long long src_byte_offset,
371 GLuint dst_offset, 373 NotShared<DOMArrayBufferView> dst_data,
372 GLuint length) { 374 GLuint dst_offset,
375 GLuint length) {
373 WebGLBuffer* source_buffer = nullptr; 376 WebGLBuffer* source_buffer = nullptr;
374 void* destination_data_ptr = nullptr; 377 void* destination_data_ptr = nullptr;
375 long long destination_byte_length = 0; 378 long long destination_byte_length = 0;
376 const char* message = ValidateGetBufferSubData( 379 const char* message = ValidateGetBufferSubData(
377 __FUNCTION__, target, src_byte_offset, dst_data, dst_offset, length, 380 __FUNCTION__, target, src_byte_offset, dst_data.View(), dst_offset,
378 &source_buffer, &destination_data_ptr, &destination_byte_length); 381 length, &source_buffer, &destination_data_ptr, &destination_byte_length);
379 if (message) { 382 if (message) {
380 // If there was a GL error, it was already synthesized in 383 // If there was a GL error, it was already synthesized in
381 // validateGetBufferSubData, so it's not done here. 384 // validateGetBufferSubData, so it's not done here.
382 return; 385 return;
383 } 386 }
384 387
385 // If the length of the copy is zero, this is a no-op. 388 // If the length of the copy is zero, this is a no-op.
386 if (!destination_byte_length) { 389 if (!destination_byte_length) {
387 return; 390 return;
388 } 391 }
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 case GL_UNPACK_SKIP_IMAGES: 745 case GL_UNPACK_SKIP_IMAGES:
743 unpack_skip_images_ = param; 746 unpack_skip_images_ = param;
744 break; 747 break;
745 default: 748 default:
746 WebGLRenderingContextBase::pixelStorei(pname, param); 749 WebGLRenderingContextBase::pixelStorei(pname, param);
747 return; 750 return;
748 } 751 }
749 ContextGL()->PixelStorei(pname, param); 752 ContextGL()->PixelStorei(pname, param);
750 } 753 }
751 754
752 void WebGL2RenderingContextBase::readPixels(GLint x, 755 void WebGL2RenderingContextBase::readPixels(
753 GLint y, 756 GLint x,
754 GLsizei width, 757 GLint y,
755 GLsizei height, 758 GLsizei width,
756 GLenum format, 759 GLsizei height,
757 GLenum type, 760 GLenum format,
758 DOMArrayBufferView* pixels) { 761 GLenum type,
762 NotShared<DOMArrayBufferView> pixels) {
759 if (isContextLost()) 763 if (isContextLost())
760 return; 764 return;
761 if (bound_pixel_pack_buffer_.Get()) { 765 if (bound_pixel_pack_buffer_.Get()) {
762 SynthesizeGLError(GL_INVALID_OPERATION, "readPixels", 766 SynthesizeGLError(GL_INVALID_OPERATION, "readPixels",
763 "PIXEL_PACK buffer should not be bound"); 767 "PIXEL_PACK buffer should not be bound");
764 return; 768 return;
765 } 769 }
766 770
767 ReadPixelsHelper(x, y, width, height, format, type, pixels, 0); 771 ReadPixelsHelper(x, y, width, height, format, type, pixels.View(), 0);
768 } 772 }
769 773
770 void WebGL2RenderingContextBase::readPixels(GLint x, 774 void WebGL2RenderingContextBase::readPixels(
771 GLint y, 775 GLint x,
772 GLsizei width, 776 GLint y,
773 GLsizei height, 777 GLsizei width,
774 GLenum format, 778 GLsizei height,
775 GLenum type, 779 GLenum format,
776 DOMArrayBufferView* pixels, 780 GLenum type,
777 GLuint offset) { 781 NotShared<DOMArrayBufferView> pixels,
782 GLuint offset) {
778 if (isContextLost()) 783 if (isContextLost())
779 return; 784 return;
780 if (bound_pixel_pack_buffer_.Get()) { 785 if (bound_pixel_pack_buffer_.Get()) {
781 SynthesizeGLError(GL_INVALID_OPERATION, "readPixels", 786 SynthesizeGLError(GL_INVALID_OPERATION, "readPixels",
782 "PIXEL_PACK buffer should not be bound"); 787 "PIXEL_PACK buffer should not be bound");
783 return; 788 return;
784 } 789 }
785 790
786 ReadPixelsHelper(x, y, width, height, format, type, pixels, offset); 791 ReadPixelsHelper(x, y, width, height, format, type, pixels.View(), offset);
787 } 792 }
788 793
789 void WebGL2RenderingContextBase::readPixels(GLint x, 794 void WebGL2RenderingContextBase::readPixels(GLint x,
790 GLint y, 795 GLint y,
791 GLsizei width, 796 GLsizei width,
792 GLsizei height, 797 GLsizei height,
793 GLenum format, 798 GLenum format,
794 GLenum type, 799 GLenum type,
795 long long offset) { 800 long long offset) {
796 if (isContextLost()) 801 if (isContextLost())
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
1118 xoffset, yoffset, 0)) 1123 xoffset, yoffset, 0))
1119 return; 1124 return;
1120 if (!ValidateValueFitNonNegInt32("texSubImage2D", "offset", offset)) 1125 if (!ValidateValueFitNonNegInt32("texSubImage2D", "offset", offset))
1121 return; 1126 return;
1122 1127
1123 ContextGL()->TexSubImage2D(target, level, xoffset, yoffset, width, height, 1128 ContextGL()->TexSubImage2D(target, level, xoffset, yoffset, width, height,
1124 format, type, 1129 format, type,
1125 reinterpret_cast<const void*>(offset)); 1130 reinterpret_cast<const void*>(offset));
1126 } 1131 }
1127 1132
1128 void WebGL2RenderingContextBase::texImage2D(GLenum target, 1133 void WebGL2RenderingContextBase::texImage2D(
1129 GLint level, 1134 GLenum target,
1130 GLint internalformat, 1135 GLint level,
1131 GLsizei width, 1136 GLint internalformat,
1132 GLsizei height, 1137 GLsizei width,
1133 GLint border, 1138 GLsizei height,
1134 GLenum format, 1139 GLint border,
1135 GLenum type, 1140 GLenum format,
1136 DOMArrayBufferView* data) { 1141 GLenum type,
1142 NotShared<DOMArrayBufferView> data) {
1137 if (isContextLost()) 1143 if (isContextLost())
1138 return; 1144 return;
1139 if (bound_pixel_unpack_buffer_) { 1145 if (bound_pixel_unpack_buffer_) {
1140 SynthesizeGLError(GL_INVALID_OPERATION, "texImage2D", 1146 SynthesizeGLError(GL_INVALID_OPERATION, "texImage2D",
1141 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 1147 "a buffer is bound to PIXEL_UNPACK_BUFFER");
1142 return; 1148 return;
1143 } 1149 }
1144 WebGLRenderingContextBase::texImage2D(target, level, internalformat, width, 1150 WebGLRenderingContextBase::texImage2D(target, level, internalformat, width,
1145 height, border, format, type, data); 1151 height, border, format, type, data);
1146 } 1152 }
1147 1153
1148 void WebGL2RenderingContextBase::texImage2D(GLenum target, 1154 void WebGL2RenderingContextBase::texImage2D(GLenum target,
1149 GLint level, 1155 GLint level,
1150 GLint internalformat, 1156 GLint internalformat,
1151 GLsizei width, 1157 GLsizei width,
1152 GLsizei height, 1158 GLsizei height,
1153 GLint border, 1159 GLint border,
1154 GLenum format, 1160 GLenum format,
1155 GLenum type, 1161 GLenum type,
1156 DOMArrayBufferView* data, 1162 NotShared<DOMArrayBufferView> data,
1157 GLuint src_offset) { 1163 GLuint src_offset) {
1158 if (isContextLost()) 1164 if (isContextLost())
1159 return; 1165 return;
1160 if (bound_pixel_unpack_buffer_) { 1166 if (bound_pixel_unpack_buffer_) {
1161 SynthesizeGLError(GL_INVALID_OPERATION, "texImage2D", 1167 SynthesizeGLError(GL_INVALID_OPERATION, "texImage2D",
1162 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 1168 "a buffer is bound to PIXEL_UNPACK_BUFFER");
1163 return; 1169 return;
1164 } 1170 }
1165 TexImageHelperDOMArrayBufferView(kTexImage2D, target, level, internalformat, 1171 TexImageHelperDOMArrayBufferView(
1166 width, height, 1, border, format, type, 0, 0, 1172 kTexImage2D, target, level, internalformat, width, height, 1, border,
1167 0, data, kNullNotReachable, src_offset); 1173 format, type, 0, 0, 0, data.View(), kNullNotReachable, src_offset);
1168 } 1174 }
1169 1175
1170 void WebGL2RenderingContextBase::texImage2D(GLenum target, 1176 void WebGL2RenderingContextBase::texImage2D(GLenum target,
1171 GLint level, 1177 GLint level,
1172 GLint internalformat, 1178 GLint internalformat,
1173 GLsizei width, 1179 GLsizei width,
1174 GLsizei height, 1180 GLsizei height,
1175 GLint border, 1181 GLint border,
1176 GLenum format, 1182 GLenum format,
1177 GLenum type, 1183 GLenum type,
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1361 return; 1367 return;
1362 if (bound_pixel_unpack_buffer_) { 1368 if (bound_pixel_unpack_buffer_) {
1363 SynthesizeGLError(GL_INVALID_OPERATION, "texImage2D", 1369 SynthesizeGLError(GL_INVALID_OPERATION, "texImage2D",
1364 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 1370 "a buffer is bound to PIXEL_UNPACK_BUFFER");
1365 return; 1371 return;
1366 } 1372 }
1367 WebGLRenderingContextBase::texImage2D(target, level, internalformat, format, 1373 WebGLRenderingContextBase::texImage2D(target, level, internalformat, format,
1368 type, image_bit_map, exception_state); 1374 type, image_bit_map, exception_state);
1369 } 1375 }
1370 1376
1371 void WebGL2RenderingContextBase::texSubImage2D(GLenum target, 1377 void WebGL2RenderingContextBase::texSubImage2D(
1372 GLint level, 1378 GLenum target,
1373 GLint xoffset, 1379 GLint level,
1374 GLint yoffset, 1380 GLint xoffset,
1375 GLsizei width, 1381 GLint yoffset,
1376 GLsizei height, 1382 GLsizei width,
1377 GLenum format, 1383 GLsizei height,
1378 GLenum type, 1384 GLenum format,
1379 DOMArrayBufferView* pixels) { 1385 GLenum type,
1386 NotShared<DOMArrayBufferView> pixels) {
1380 if (isContextLost()) 1387 if (isContextLost())
1381 return; 1388 return;
1382 if (bound_pixel_unpack_buffer_) { 1389 if (bound_pixel_unpack_buffer_) {
1383 SynthesizeGLError(GL_INVALID_OPERATION, "texSubImage2D", 1390 SynthesizeGLError(GL_INVALID_OPERATION, "texSubImage2D",
1384 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 1391 "a buffer is bound to PIXEL_UNPACK_BUFFER");
1385 return; 1392 return;
1386 } 1393 }
1387 WebGLRenderingContextBase::texSubImage2D(target, level, xoffset, yoffset, 1394 WebGLRenderingContextBase::texSubImage2D(target, level, xoffset, yoffset,
1388 width, height, format, type, pixels); 1395 width, height, format, type, pixels);
1389 } 1396 }
1390 1397
1391 void WebGL2RenderingContextBase::texSubImage2D(GLenum target, 1398 void WebGL2RenderingContextBase::texSubImage2D(
1392 GLint level, 1399 GLenum target,
1393 GLint xoffset, 1400 GLint level,
1394 GLint yoffset, 1401 GLint xoffset,
1395 GLsizei width, 1402 GLint yoffset,
1396 GLsizei height, 1403 GLsizei width,
1397 GLenum format, 1404 GLsizei height,
1398 GLenum type, 1405 GLenum format,
1399 DOMArrayBufferView* pixels, 1406 GLenum type,
1400 GLuint src_offset) { 1407 NotShared<DOMArrayBufferView> pixels,
1408 GLuint src_offset) {
1401 if (isContextLost()) 1409 if (isContextLost())
1402 return; 1410 return;
1403 if (bound_pixel_unpack_buffer_) { 1411 if (bound_pixel_unpack_buffer_) {
1404 SynthesizeGLError(GL_INVALID_OPERATION, "texSubImage2D", 1412 SynthesizeGLError(GL_INVALID_OPERATION, "texSubImage2D",
1405 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 1413 "a buffer is bound to PIXEL_UNPACK_BUFFER");
1406 return; 1414 return;
1407 } 1415 }
1408 TexImageHelperDOMArrayBufferView(kTexSubImage2D, target, level, 0, width, 1416 TexImageHelperDOMArrayBufferView(
1409 height, 1, 0, format, type, xoffset, yoffset, 1417 kTexSubImage2D, target, level, 0, width, height, 1, 0, format, type,
1410 0, pixels, kNullNotReachable, src_offset); 1418 xoffset, yoffset, 0, pixels.View(), kNullNotReachable, src_offset);
1411 } 1419 }
1412 1420
1413 void WebGL2RenderingContextBase::texSubImage2D(GLenum target, 1421 void WebGL2RenderingContextBase::texSubImage2D(GLenum target,
1414 GLint level, 1422 GLint level,
1415 GLint xoffset, 1423 GLint xoffset,
1416 GLint yoffset, 1424 GLint yoffset,
1417 GLsizei width, 1425 GLsizei width,
1418 GLsizei height, 1426 GLsizei height,
1419 GLenum format, 1427 GLenum format,
1420 GLenum type, 1428 GLenum type,
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
1641 GLsizei depth) { 1649 GLsizei depth) {
1642 if (isContextLost() || 1650 if (isContextLost() ||
1643 !ValidateTexStorage("texStorage3D", target, levels, internalformat, width, 1651 !ValidateTexStorage("texStorage3D", target, levels, internalformat, width,
1644 height, depth, kTexStorageType3D)) 1652 height, depth, kTexStorageType3D))
1645 return; 1653 return;
1646 1654
1647 ContextGL()->TexStorage3D(target, levels, internalformat, width, height, 1655 ContextGL()->TexStorage3D(target, levels, internalformat, width, height,
1648 depth); 1656 depth);
1649 } 1657 }
1650 1658
1651 void WebGL2RenderingContextBase::texImage3D(GLenum target, 1659 void WebGL2RenderingContextBase::texImage3D(
1652 GLint level, 1660 GLenum target,
1653 GLint internalformat, 1661 GLint level,
1654 GLsizei width, 1662 GLint internalformat,
1655 GLsizei height, 1663 GLsizei width,
1656 GLsizei depth, 1664 GLsizei height,
1657 GLint border, 1665 GLsizei depth,
1658 GLenum format, 1666 GLint border,
1659 GLenum type, 1667 GLenum format,
1660 DOMArrayBufferView* pixels) { 1668 GLenum type,
1669 NotShared<DOMArrayBufferView> pixels) {
1661 TexImageHelperDOMArrayBufferView(kTexImage3D, target, level, internalformat, 1670 TexImageHelperDOMArrayBufferView(kTexImage3D, target, level, internalformat,
1662 width, height, depth, border, format, type, 1671 width, height, depth, border, format, type,
1663 0, 0, 0, pixels, kNullAllowed, 0); 1672 0, 0, 0, pixels.View(), kNullAllowed, 0);
1664 } 1673 }
1665 1674
1666 void WebGL2RenderingContextBase::texImage3D(GLenum target, 1675 void WebGL2RenderingContextBase::texImage3D(
1667 GLint level, 1676 GLenum target,
1668 GLint internalformat, 1677 GLint level,
1669 GLsizei width, 1678 GLint internalformat,
1670 GLsizei height, 1679 GLsizei width,
1671 GLsizei depth, 1680 GLsizei height,
1672 GLint border, 1681 GLsizei depth,
1673 GLenum format, 1682 GLint border,
1674 GLenum type, 1683 GLenum format,
1675 DOMArrayBufferView* pixels, 1684 GLenum type,
1676 GLuint src_offset) { 1685 NotShared<DOMArrayBufferView> pixels,
1686 GLuint src_offset) {
1677 if (isContextLost()) 1687 if (isContextLost())
1678 return; 1688 return;
1679 if (bound_pixel_unpack_buffer_) { 1689 if (bound_pixel_unpack_buffer_) {
1680 SynthesizeGLError(GL_INVALID_OPERATION, "texImage3D", 1690 SynthesizeGLError(GL_INVALID_OPERATION, "texImage3D",
1681 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 1691 "a buffer is bound to PIXEL_UNPACK_BUFFER");
1682 return; 1692 return;
1683 } 1693 }
1684 TexImageHelperDOMArrayBufferView( 1694 TexImageHelperDOMArrayBufferView(
1685 kTexImage3D, target, level, internalformat, width, height, depth, border, 1695 kTexImage3D, target, level, internalformat, width, height, depth, border,
1686 format, type, 0, 0, 0, pixels, kNullNotReachable, src_offset); 1696 format, type, 0, 0, 0, pixels.View(), kNullNotReachable, src_offset);
1687 } 1697 }
1688 1698
1689 void WebGL2RenderingContextBase::texImage3D(GLenum target, 1699 void WebGL2RenderingContextBase::texImage3D(GLenum target,
1690 GLint level, 1700 GLint level,
1691 GLint internalformat, 1701 GLint internalformat,
1692 GLsizei width, 1702 GLsizei width,
1693 GLsizei height, 1703 GLsizei height,
1694 GLsizei depth, 1704 GLsizei depth,
1695 GLint border, 1705 GLint border,
1696 GLenum format, 1706 GLenum format,
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1827 SynthesizeGLError(GL_INVALID_OPERATION, "texImage3D", 1837 SynthesizeGLError(GL_INVALID_OPERATION, "texImage3D",
1828 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 1838 "a buffer is bound to PIXEL_UNPACK_BUFFER");
1829 return; 1839 return;
1830 } 1840 }
1831 TexImageHelperImageBitmap(kTexImage3D, target, level, internalformat, format, 1841 TexImageHelperImageBitmap(kTexImage3D, target, level, internalformat, format,
1832 type, 0, 0, 0, bitmap, 1842 type, 0, 0, 0, bitmap,
1833 GetTextureSourceSubRectangle(width, height), depth, 1843 GetTextureSourceSubRectangle(width, height), depth,
1834 unpack_image_height_, exception_state); 1844 unpack_image_height_, exception_state);
1835 } 1845 }
1836 1846
1837 void WebGL2RenderingContextBase::texSubImage3D(GLenum target, 1847 void WebGL2RenderingContextBase::texSubImage3D(
1838 GLint level, 1848 GLenum target,
1839 GLint xoffset, 1849 GLint level,
1840 GLint yoffset, 1850 GLint xoffset,
1841 GLint zoffset, 1851 GLint yoffset,
1842 GLsizei width, 1852 GLint zoffset,
1843 GLsizei height, 1853 GLsizei width,
1844 GLsizei depth, 1854 GLsizei height,
1845 GLenum format, 1855 GLsizei depth,
1846 GLenum type, 1856 GLenum format,
1847 DOMArrayBufferView* pixels, 1857 GLenum type,
1848 GLuint src_offset) { 1858 NotShared<DOMArrayBufferView> pixels,
1859 GLuint src_offset) {
1849 if (isContextLost()) 1860 if (isContextLost())
1850 return; 1861 return;
1851 if (bound_pixel_unpack_buffer_) { 1862 if (bound_pixel_unpack_buffer_) {
1852 SynthesizeGLError(GL_INVALID_OPERATION, "texSubImage3D", 1863 SynthesizeGLError(GL_INVALID_OPERATION, "texSubImage3D",
1853 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 1864 "a buffer is bound to PIXEL_UNPACK_BUFFER");
1854 return; 1865 return;
1855 } 1866 }
1856 TexImageHelperDOMArrayBufferView( 1867 TexImageHelperDOMArrayBufferView(
1857 kTexSubImage3D, target, level, 0, width, height, depth, 0, format, type, 1868 kTexSubImage3D, target, level, 0, width, height, depth, 0, format, type,
1858 xoffset, yoffset, zoffset, pixels, kNullNotReachable, src_offset); 1869 xoffset, yoffset, zoffset, pixels.View(), kNullNotReachable, src_offset);
1859 } 1870 }
1860 1871
1861 void WebGL2RenderingContextBase::texSubImage3D(GLenum target, 1872 void WebGL2RenderingContextBase::texSubImage3D(GLenum target,
1862 GLint level, 1873 GLint level,
1863 GLint xoffset, 1874 GLint xoffset,
1864 GLint yoffset, 1875 GLint yoffset,
1865 GLint zoffset, 1876 GLint zoffset,
1866 GLsizei width, 1877 GLsizei width,
1867 GLsizei height, 1878 GLsizei height,
1868 GLsizei depth, 1879 GLsizei depth,
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
2043 width, height); 2054 width, height);
2044 } 2055 }
2045 2056
2046 void WebGL2RenderingContextBase::compressedTexImage2D( 2057 void WebGL2RenderingContextBase::compressedTexImage2D(
2047 GLenum target, 2058 GLenum target,
2048 GLint level, 2059 GLint level,
2049 GLenum internalformat, 2060 GLenum internalformat,
2050 GLsizei width, 2061 GLsizei width,
2051 GLsizei height, 2062 GLsizei height,
2052 GLint border, 2063 GLint border,
2053 DOMArrayBufferView* data) { 2064 NotShared<DOMArrayBufferView> data) {
2054 if (isContextLost()) 2065 if (isContextLost())
2055 return; 2066 return;
2056 if (bound_pixel_unpack_buffer_) { 2067 if (bound_pixel_unpack_buffer_) {
2057 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexImage2D", 2068 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexImage2D",
2058 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 2069 "a buffer is bound to PIXEL_UNPACK_BUFFER");
2059 return; 2070 return;
2060 } 2071 }
2061 WebGLRenderingContextBase::compressedTexImage2D(target, level, internalformat, 2072 WebGLRenderingContextBase::compressedTexImage2D(target, level, internalformat,
2062 width, height, border, data); 2073 width, height, border, data);
2063 } 2074 }
2064 2075
2065 void WebGL2RenderingContextBase::compressedTexImage2D( 2076 void WebGL2RenderingContextBase::compressedTexImage2D(
2066 GLenum target, 2077 GLenum target,
2067 GLint level, 2078 GLint level,
2068 GLenum internalformat, 2079 GLenum internalformat,
2069 GLsizei width, 2080 GLsizei width,
2070 GLsizei height, 2081 GLsizei height,
2071 GLint border, 2082 GLint border,
2072 DOMArrayBufferView* data, 2083 NotShared<DOMArrayBufferView> data,
2073 GLuint src_offset, 2084 GLuint src_offset,
2074 GLuint src_length_override) { 2085 GLuint src_length_override) {
2075 if (isContextLost()) 2086 if (isContextLost())
2076 return; 2087 return;
2077 if (bound_pixel_unpack_buffer_) { 2088 if (bound_pixel_unpack_buffer_) {
2078 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexImage2D", 2089 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexImage2D",
2079 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 2090 "a buffer is bound to PIXEL_UNPACK_BUFFER");
2080 return; 2091 return;
2081 } 2092 }
2082 if (!ValidateTexture2DBinding("compressedTexImage2D", target)) 2093 if (!ValidateTexture2DBinding("compressedTexImage2D", target))
2083 return; 2094 return;
2084 if (!ValidateCompressedTexFormat("compressedTexImage2D", internalformat)) 2095 if (!ValidateCompressedTexFormat("compressedTexImage2D", internalformat))
2085 return; 2096 return;
2086 if (src_offset > data->byteLength()) { 2097 if (src_offset > data.View()->byteLength()) {
2087 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D", 2098 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D",
2088 "srcOffset is out of range"); 2099 "srcOffset is out of range");
2089 return; 2100 return;
2090 } 2101 }
2091 if (src_length_override == 0) { 2102 if (src_length_override == 0) {
2092 src_length_override = data->byteLength() - src_offset; 2103 src_length_override = data.View()->byteLength() - src_offset;
2093 } else if (src_length_override > data->byteLength() - src_offset) { 2104 } else if (src_length_override > data.View()->byteLength() - src_offset) {
2094 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D", 2105 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D",
2095 "srcLengthOverride is out of range"); 2106 "srcLengthOverride is out of range");
2096 return; 2107 return;
2097 } 2108 }
2098 ContextGL()->CompressedTexImage2D( 2109 ContextGL()->CompressedTexImage2D(
2099 target, level, internalformat, width, height, border, src_length_override, 2110 target, level, internalformat, width, height, border, src_length_override,
2100 static_cast<uint8_t*>(data->BaseAddress()) + src_offset); 2111 static_cast<uint8_t*>(data.View()->BaseAddress()) + src_offset);
2101 } 2112 }
2102 2113
2103 void WebGL2RenderingContextBase::compressedTexImage2D(GLenum target, 2114 void WebGL2RenderingContextBase::compressedTexImage2D(GLenum target,
2104 GLint level, 2115 GLint level,
2105 GLenum internalformat, 2116 GLenum internalformat,
2106 GLsizei width, 2117 GLsizei width,
2107 GLsizei height, 2118 GLsizei height,
2108 GLint border, 2119 GLint border,
2109 GLsizei image_size, 2120 GLsizei image_size,
2110 GLintptr offset) { 2121 GLintptr offset) {
(...skipping 10 matching lines...) Expand all
2121 } 2132 }
2122 2133
2123 void WebGL2RenderingContextBase::compressedTexSubImage2D( 2134 void WebGL2RenderingContextBase::compressedTexSubImage2D(
2124 GLenum target, 2135 GLenum target,
2125 GLint level, 2136 GLint level,
2126 GLint xoffset, 2137 GLint xoffset,
2127 GLint yoffset, 2138 GLint yoffset,
2128 GLsizei width, 2139 GLsizei width,
2129 GLsizei height, 2140 GLsizei height,
2130 GLenum format, 2141 GLenum format,
2131 DOMArrayBufferView* data) { 2142 NotShared<DOMArrayBufferView> data) {
2132 if (isContextLost()) 2143 if (isContextLost())
2133 return; 2144 return;
2134 if (bound_pixel_unpack_buffer_) { 2145 if (bound_pixel_unpack_buffer_) {
2135 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexSubImage2D", 2146 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexSubImage2D",
2136 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 2147 "a buffer is bound to PIXEL_UNPACK_BUFFER");
2137 return; 2148 return;
2138 } 2149 }
2139 WebGLRenderingContextBase::compressedTexSubImage2D( 2150 WebGLRenderingContextBase::compressedTexSubImage2D(
2140 target, level, xoffset, yoffset, width, height, format, data); 2151 target, level, xoffset, yoffset, width, height, format, data);
2141 } 2152 }
2142 2153
2143 void WebGL2RenderingContextBase::compressedTexSubImage2D( 2154 void WebGL2RenderingContextBase::compressedTexSubImage2D(
2144 GLenum target, 2155 GLenum target,
2145 GLint level, 2156 GLint level,
2146 GLint xoffset, 2157 GLint xoffset,
2147 GLint yoffset, 2158 GLint yoffset,
2148 GLsizei width, 2159 GLsizei width,
2149 GLsizei height, 2160 GLsizei height,
2150 GLenum format, 2161 GLenum format,
2151 DOMArrayBufferView* data, 2162 NotShared<DOMArrayBufferView> data,
2152 GLuint src_offset, 2163 GLuint src_offset,
2153 GLuint src_length_override) { 2164 GLuint src_length_override) {
2154 if (isContextLost()) 2165 if (isContextLost())
2155 return; 2166 return;
2156 if (bound_pixel_unpack_buffer_) { 2167 if (bound_pixel_unpack_buffer_) {
2157 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexSubImage2D", 2168 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexSubImage2D",
2158 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 2169 "a buffer is bound to PIXEL_UNPACK_BUFFER");
2159 return; 2170 return;
2160 } 2171 }
2161 if (!ValidateTexture2DBinding("compressedTexSubImage2D", target)) 2172 if (!ValidateTexture2DBinding("compressedTexSubImage2D", target))
2162 return; 2173 return;
2163 if (!ValidateCompressedTexFormat("compressedTexSubImage2D", format)) 2174 if (!ValidateCompressedTexFormat("compressedTexSubImage2D", format))
2164 return; 2175 return;
2165 if (src_offset > data->byteLength()) { 2176 if (src_offset > data.View()->byteLength()) {
2166 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage2D", 2177 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage2D",
2167 "srcOffset is out of range"); 2178 "srcOffset is out of range");
2168 return; 2179 return;
2169 } 2180 }
2170 if (src_length_override == 0) { 2181 if (src_length_override == 0) {
2171 src_length_override = data->byteLength() - src_offset; 2182 src_length_override = data.View()->byteLength() - src_offset;
2172 } else if (src_length_override > data->byteLength() - src_offset) { 2183 } else if (src_length_override > data.View()->byteLength() - src_offset) {
2173 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D", 2184 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage2D",
2174 "srcLengthOverride is out of range"); 2185 "srcLengthOverride is out of range");
2175 return; 2186 return;
2176 } 2187 }
2177 ContextGL()->CompressedTexSubImage2D( 2188 ContextGL()->CompressedTexSubImage2D(
2178 target, level, xoffset, yoffset, width, height, format, 2189 target, level, xoffset, yoffset, width, height, format,
2179 src_length_override, 2190 src_length_override,
2180 static_cast<uint8_t*>(data->BaseAddress()) + src_offset); 2191 static_cast<uint8_t*>(data.View()->BaseAddress()) + src_offset);
2181 } 2192 }
2182 2193
2183 void WebGL2RenderingContextBase::compressedTexSubImage2D(GLenum target, 2194 void WebGL2RenderingContextBase::compressedTexSubImage2D(GLenum target,
2184 GLint level, 2195 GLint level,
2185 GLint xoffset, 2196 GLint xoffset,
2186 GLint yoffset, 2197 GLint yoffset,
2187 GLsizei width, 2198 GLsizei width,
2188 GLsizei height, 2199 GLsizei height,
2189 GLenum format, 2200 GLenum format,
2190 GLsizei image_size, 2201 GLsizei image_size,
(...skipping 11 matching lines...) Expand all
2202 } 2213 }
2203 2214
2204 void WebGL2RenderingContextBase::compressedTexImage3D( 2215 void WebGL2RenderingContextBase::compressedTexImage3D(
2205 GLenum target, 2216 GLenum target,
2206 GLint level, 2217 GLint level,
2207 GLenum internalformat, 2218 GLenum internalformat,
2208 GLsizei width, 2219 GLsizei width,
2209 GLsizei height, 2220 GLsizei height,
2210 GLsizei depth, 2221 GLsizei depth,
2211 GLint border, 2222 GLint border,
2212 DOMArrayBufferView* data, 2223 NotShared<DOMArrayBufferView> data,
2213 GLuint src_offset, 2224 GLuint src_offset,
2214 GLuint src_length_override) { 2225 GLuint src_length_override) {
2215 if (isContextLost()) 2226 if (isContextLost())
2216 return; 2227 return;
2217 if (bound_pixel_unpack_buffer_) { 2228 if (bound_pixel_unpack_buffer_) {
2218 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexImage3D", 2229 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexImage3D",
2219 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 2230 "a buffer is bound to PIXEL_UNPACK_BUFFER");
2220 return; 2231 return;
2221 } 2232 }
2222 if (!ValidateTexture3DBinding("compressedTexImage3D", target)) 2233 if (!ValidateTexture3DBinding("compressedTexImage3D", target))
2223 return; 2234 return;
2224 if (!ValidateCompressedTexFormat("compressedTexImage3D", internalformat)) 2235 if (!ValidateCompressedTexFormat("compressedTexImage3D", internalformat))
2225 return; 2236 return;
2226 if (src_offset > data->byteLength()) { 2237 if (src_offset > data.View()->byteLength()) {
2227 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage3D", 2238 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage3D",
2228 "srcOffset is out of range"); 2239 "srcOffset is out of range");
2229 return; 2240 return;
2230 } 2241 }
2231 if (src_length_override == 0) { 2242 if (src_length_override == 0) {
2232 src_length_override = data->byteLength() - src_offset; 2243 src_length_override = data.View()->byteLength() - src_offset;
2233 } else if (src_length_override > data->byteLength() - src_offset) { 2244 } else if (src_length_override > data.View()->byteLength() - src_offset) {
2234 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage3D", 2245 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexImage3D",
2235 "srcLengthOverride is out of range"); 2246 "srcLengthOverride is out of range");
2236 return; 2247 return;
2237 } 2248 }
2238 ContextGL()->CompressedTexImage3D( 2249 ContextGL()->CompressedTexImage3D(
2239 target, level, internalformat, width, height, depth, border, 2250 target, level, internalformat, width, height, depth, border,
2240 src_length_override, 2251 src_length_override,
2241 static_cast<uint8_t*>(data->BaseAddress()) + src_offset); 2252 static_cast<uint8_t*>(data.View()->BaseAddress()) + src_offset);
2242 } 2253 }
2243 2254
2244 void WebGL2RenderingContextBase::compressedTexImage3D(GLenum target, 2255 void WebGL2RenderingContextBase::compressedTexImage3D(GLenum target,
2245 GLint level, 2256 GLint level,
2246 GLenum internalformat, 2257 GLenum internalformat,
2247 GLsizei width, 2258 GLsizei width,
2248 GLsizei height, 2259 GLsizei height,
2249 GLsizei depth, 2260 GLsizei depth,
2250 GLint border, 2261 GLint border,
2251 GLsizei image_size, 2262 GLsizei image_size,
(...skipping 13 matching lines...) Expand all
2265 void WebGL2RenderingContextBase::compressedTexSubImage3D( 2276 void WebGL2RenderingContextBase::compressedTexSubImage3D(
2266 GLenum target, 2277 GLenum target,
2267 GLint level, 2278 GLint level,
2268 GLint xoffset, 2279 GLint xoffset,
2269 GLint yoffset, 2280 GLint yoffset,
2270 GLint zoffset, 2281 GLint zoffset,
2271 GLsizei width, 2282 GLsizei width,
2272 GLsizei height, 2283 GLsizei height,
2273 GLsizei depth, 2284 GLsizei depth,
2274 GLenum format, 2285 GLenum format,
2275 DOMArrayBufferView* data, 2286 NotShared<DOMArrayBufferView> data,
2276 GLuint src_offset, 2287 GLuint src_offset,
2277 GLuint src_length_override) { 2288 GLuint src_length_override) {
2278 if (isContextLost()) 2289 if (isContextLost())
2279 return; 2290 return;
2280 if (bound_pixel_unpack_buffer_) { 2291 if (bound_pixel_unpack_buffer_) {
2281 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexSubImage3D", 2292 SynthesizeGLError(GL_INVALID_OPERATION, "compressedTexSubImage3D",
2282 "a buffer is bound to PIXEL_UNPACK_BUFFER"); 2293 "a buffer is bound to PIXEL_UNPACK_BUFFER");
2283 return; 2294 return;
2284 } 2295 }
2285 if (!ValidateTexture3DBinding("compressedTexSubImage3D", target)) 2296 if (!ValidateTexture3DBinding("compressedTexSubImage3D", target))
2286 return; 2297 return;
2287 if (!ValidateCompressedTexFormat("compressedTexSubImage3D", format)) 2298 if (!ValidateCompressedTexFormat("compressedTexSubImage3D", format))
2288 return; 2299 return;
2289 if (src_offset > data->byteLength()) { 2300 if (src_offset > data.View()->byteLength()) {
2290 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage3D", 2301 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage3D",
2291 "srcOffset is out of range"); 2302 "srcOffset is out of range");
2292 return; 2303 return;
2293 } 2304 }
2294 if (src_length_override == 0) { 2305 if (src_length_override == 0) {
2295 src_length_override = data->byteLength() - src_offset; 2306 src_length_override = data.View()->byteLength() - src_offset;
2296 } else if (src_length_override > data->byteLength() - src_offset) { 2307 } else if (src_length_override > data.View()->byteLength() - src_offset) {
2297 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage3D", 2308 SynthesizeGLError(GL_INVALID_VALUE, "compressedTexSubImage3D",
2298 "srcLengthOverride is out of range"); 2309 "srcLengthOverride is out of range");
2299 return; 2310 return;
2300 } 2311 }
2301 ContextGL()->CompressedTexSubImage3D( 2312 ContextGL()->CompressedTexSubImage3D(
2302 target, level, xoffset, yoffset, zoffset, width, height, depth, format, 2313 target, level, xoffset, yoffset, zoffset, width, height, depth, format,
2303 src_length_override, 2314 src_length_override,
2304 static_cast<uint8_t*>(data->BaseAddress()) + src_offset); 2315 static_cast<uint8_t*>(data.View()->BaseAddress()) + src_offset);
2305 } 2316 }
2306 2317
2307 void WebGL2RenderingContextBase::compressedTexSubImage3D(GLenum target, 2318 void WebGL2RenderingContextBase::compressedTexSubImage3D(GLenum target,
2308 GLint level, 2319 GLint level,
2309 GLint xoffset, 2320 GLint xoffset,
2310 GLint yoffset, 2321 GLint yoffset,
2311 GLint zoffset, 2322 GLint zoffset,
2312 GLsizei width, 2323 GLsizei width,
2313 GLsizei height, 2324 GLsizei height,
2314 GLsizei depth, 2325 GLsizei depth,
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
2777 2788
2778 ContextGL()->Uniform4uiv( 2789 ContextGL()->Uniform4uiv(
2779 location->Location(), 2790 location->Location(),
2780 (src_length ? src_length : (value.size() - src_offset)) >> 2, 2791 (src_length ? src_length : (value.size() - src_offset)) >> 2,
2781 value.Data() + src_offset); 2792 value.Data() + src_offset);
2782 } 2793 }
2783 2794
2784 void WebGL2RenderingContextBase::uniformMatrix2fv( 2795 void WebGL2RenderingContextBase::uniformMatrix2fv(
2785 const WebGLUniformLocation* location, 2796 const WebGLUniformLocation* location,
2786 GLboolean transpose, 2797 GLboolean transpose,
2787 DOMFloat32Array* v, 2798 NotShared<DOMFloat32Array> v,
2788 GLuint src_offset, 2799 GLuint src_offset,
2789 GLuint src_length) { 2800 GLuint src_length) {
2790 if (isContextLost() || 2801 if (isContextLost() ||
2791 !ValidateUniformMatrixParameters("uniformMatrix2fv", location, transpose, 2802 !ValidateUniformMatrixParameters("uniformMatrix2fv", location, transpose,
2792 v, 4, src_offset, src_length)) 2803 v.View(), 4, src_offset, src_length))
2793 return; 2804 return;
2794 ContextGL()->UniformMatrix2fv( 2805 ContextGL()->UniformMatrix2fv(
2795 location->Location(), 2806 location->Location(),
2796 (src_length ? src_length : (v->length() - src_offset)) >> 2, transpose, 2807 (src_length ? src_length : (v.View()->length() - src_offset)) >> 2,
2797 v->Data() + src_offset); 2808 transpose, v.View()->Data() + src_offset);
2798 } 2809 }
2799 2810
2800 void WebGL2RenderingContextBase::uniformMatrix2fv( 2811 void WebGL2RenderingContextBase::uniformMatrix2fv(
2801 const WebGLUniformLocation* location, 2812 const WebGLUniformLocation* location,
2802 GLboolean transpose, 2813 GLboolean transpose,
2803 Vector<GLfloat>& v, 2814 Vector<GLfloat>& v,
2804 GLuint src_offset, 2815 GLuint src_offset,
2805 GLuint src_length) { 2816 GLuint src_length) {
2806 if (isContextLost() || !ValidateUniformMatrixParameters( 2817 if (isContextLost() || !ValidateUniformMatrixParameters(
2807 "uniformMatrix2fv", location, transpose, v.Data(), 2818 "uniformMatrix2fv", location, transpose, v.Data(),
2808 v.size(), 4, src_offset, src_length)) 2819 v.size(), 4, src_offset, src_length))
2809 return; 2820 return;
2810 ContextGL()->UniformMatrix2fv( 2821 ContextGL()->UniformMatrix2fv(
2811 location->Location(), 2822 location->Location(),
2812 (src_length ? src_length : (v.size() - src_offset)) >> 2, transpose, 2823 (src_length ? src_length : (v.size() - src_offset)) >> 2, transpose,
2813 v.Data() + src_offset); 2824 v.Data() + src_offset);
2814 } 2825 }
2815 2826
2816 void WebGL2RenderingContextBase::uniformMatrix3fv( 2827 void WebGL2RenderingContextBase::uniformMatrix3fv(
2817 const WebGLUniformLocation* location, 2828 const WebGLUniformLocation* location,
2818 GLboolean transpose, 2829 GLboolean transpose,
2819 DOMFloat32Array* v, 2830 NotShared<DOMFloat32Array> v,
2820 GLuint src_offset, 2831 GLuint src_offset,
2821 GLuint src_length) { 2832 GLuint src_length) {
2822 if (isContextLost() || 2833 if (isContextLost() ||
2823 !ValidateUniformMatrixParameters("uniformMatrix3fv", location, transpose, 2834 !ValidateUniformMatrixParameters("uniformMatrix3fv", location, transpose,
2824 v, 9, src_offset, src_length)) 2835 v.View(), 9, src_offset, src_length))
2825 return; 2836 return;
2826 ContextGL()->UniformMatrix3fv( 2837 ContextGL()->UniformMatrix3fv(
2827 location->Location(), 2838 location->Location(),
2828 (src_length ? src_length : (v->length() - src_offset)) / 9, transpose, 2839 (src_length ? src_length : (v.View()->length() - src_offset)) / 9,
2829 v->Data() + src_offset); 2840 transpose, v.View()->Data() + src_offset);
2830 } 2841 }
2831 2842
2832 void WebGL2RenderingContextBase::uniformMatrix3fv( 2843 void WebGL2RenderingContextBase::uniformMatrix3fv(
2833 const WebGLUniformLocation* location, 2844 const WebGLUniformLocation* location,
2834 GLboolean transpose, 2845 GLboolean transpose,
2835 Vector<GLfloat>& v, 2846 Vector<GLfloat>& v,
2836 GLuint src_offset, 2847 GLuint src_offset,
2837 GLuint src_length) { 2848 GLuint src_length) {
2838 if (isContextLost() || !ValidateUniformMatrixParameters( 2849 if (isContextLost() || !ValidateUniformMatrixParameters(
2839 "uniformMatrix3fv", location, transpose, v.Data(), 2850 "uniformMatrix3fv", location, transpose, v.Data(),
2840 v.size(), 9, src_offset, src_length)) 2851 v.size(), 9, src_offset, src_length))
2841 return; 2852 return;
2842 ContextGL()->UniformMatrix3fv( 2853 ContextGL()->UniformMatrix3fv(
2843 location->Location(), 2854 location->Location(),
2844 (src_length ? src_length : (v.size() - src_offset)) / 9, transpose, 2855 (src_length ? src_length : (v.size() - src_offset)) / 9, transpose,
2845 v.Data() + src_offset); 2856 v.Data() + src_offset);
2846 } 2857 }
2847 2858
2848 void WebGL2RenderingContextBase::uniformMatrix4fv( 2859 void WebGL2RenderingContextBase::uniformMatrix4fv(
2849 const WebGLUniformLocation* location, 2860 const WebGLUniformLocation* location,
2850 GLboolean transpose, 2861 GLboolean transpose,
2851 DOMFloat32Array* v, 2862 NotShared<DOMFloat32Array> v,
2852 GLuint src_offset, 2863 GLuint src_offset,
2853 GLuint src_length) { 2864 GLuint src_length) {
2854 if (isContextLost() || 2865 if (isContextLost() ||
2855 !ValidateUniformMatrixParameters("uniformMatrix4fv", location, transpose, 2866 !ValidateUniformMatrixParameters("uniformMatrix4fv", location, transpose,
2856 v, 16, src_offset, src_length)) 2867 v.View(), 16, src_offset, src_length))
2857 return; 2868 return;
2858 ContextGL()->UniformMatrix4fv( 2869 ContextGL()->UniformMatrix4fv(
2859 location->Location(), 2870 location->Location(),
2860 (src_length ? src_length : (v->length() - src_offset)) >> 4, transpose, 2871 (src_length ? src_length : (v.View()->length() - src_offset)) >> 4,
2861 v->Data() + src_offset); 2872 transpose, v.View()->Data() + src_offset);
2862 } 2873 }
2863 2874
2864 void WebGL2RenderingContextBase::uniformMatrix4fv( 2875 void WebGL2RenderingContextBase::uniformMatrix4fv(
2865 const WebGLUniformLocation* location, 2876 const WebGLUniformLocation* location,
2866 GLboolean transpose, 2877 GLboolean transpose,
2867 Vector<GLfloat>& v, 2878 Vector<GLfloat>& v,
2868 GLuint src_offset, 2879 GLuint src_offset,
2869 GLuint src_length) { 2880 GLuint src_length) {
2870 if (isContextLost() || !ValidateUniformMatrixParameters( 2881 if (isContextLost() || !ValidateUniformMatrixParameters(
2871 "uniformMatrix4fv", location, transpose, v.Data(), 2882 "uniformMatrix4fv", location, transpose, v.Data(),
2872 v.size(), 16, src_offset, src_length)) 2883 v.size(), 16, src_offset, src_length))
2873 return; 2884 return;
2874 ContextGL()->UniformMatrix4fv( 2885 ContextGL()->UniformMatrix4fv(
2875 location->Location(), 2886 location->Location(),
2876 (src_length ? src_length : (v.size() - src_offset)) >> 4, transpose, 2887 (src_length ? src_length : (v.size() - src_offset)) >> 4, transpose,
2877 v.Data() + src_offset); 2888 v.Data() + src_offset);
2878 } 2889 }
2879 2890
2880 void WebGL2RenderingContextBase::uniformMatrix2x3fv( 2891 void WebGL2RenderingContextBase::uniformMatrix2x3fv(
2881 const WebGLUniformLocation* location, 2892 const WebGLUniformLocation* location,
2882 GLboolean transpose, 2893 GLboolean transpose,
2883 DOMFloat32Array* value, 2894 NotShared<DOMFloat32Array> value,
2884 GLuint src_offset, 2895 GLuint src_offset,
2885 GLuint src_length) { 2896 GLuint src_length) {
2886 if (isContextLost() || !ValidateUniformMatrixParameters( 2897 if (isContextLost() || !ValidateUniformMatrixParameters(
2887 "uniformMatrix2x3fv", location, transpose, value, 2898 "uniformMatrix2x3fv", location, transpose,
2888 6, src_offset, src_length)) 2899 value.View(), 6, src_offset, src_length))
2889 return; 2900 return;
2890 ContextGL()->UniformMatrix2x3fv( 2901 ContextGL()->UniformMatrix2x3fv(
2891 location->Location(), 2902 location->Location(),
2892 (src_length ? src_length : (value->length() - src_offset)) / 6, transpose, 2903 (src_length ? src_length : (value.View()->length() - src_offset)) / 6,
2893 value->Data() + src_offset); 2904 transpose, value.View()->Data() + src_offset);
2894 } 2905 }
2895 2906
2896 void WebGL2RenderingContextBase::uniformMatrix2x3fv( 2907 void WebGL2RenderingContextBase::uniformMatrix2x3fv(
2897 const WebGLUniformLocation* location, 2908 const WebGLUniformLocation* location,
2898 GLboolean transpose, 2909 GLboolean transpose,
2899 Vector<GLfloat>& value, 2910 Vector<GLfloat>& value,
2900 GLuint src_offset, 2911 GLuint src_offset,
2901 GLuint src_length) { 2912 GLuint src_length) {
2902 if (isContextLost() || 2913 if (isContextLost() ||
2903 !ValidateUniformMatrixParameters("uniformMatrix2x3fv", location, 2914 !ValidateUniformMatrixParameters("uniformMatrix2x3fv", location,
2904 transpose, value.Data(), value.size(), 6, 2915 transpose, value.Data(), value.size(), 6,
2905 src_offset, src_length)) 2916 src_offset, src_length))
2906 return; 2917 return;
2907 ContextGL()->UniformMatrix2x3fv( 2918 ContextGL()->UniformMatrix2x3fv(
2908 location->Location(), 2919 location->Location(),
2909 (src_length ? src_length : (value.size() - src_offset)) / 6, transpose, 2920 (src_length ? src_length : (value.size() - src_offset)) / 6, transpose,
2910 value.Data() + src_offset); 2921 value.Data() + src_offset);
2911 } 2922 }
2912 2923
2913 void WebGL2RenderingContextBase::uniformMatrix3x2fv( 2924 void WebGL2RenderingContextBase::uniformMatrix3x2fv(
2914 const WebGLUniformLocation* location, 2925 const WebGLUniformLocation* location,
2915 GLboolean transpose, 2926 GLboolean transpose,
2916 DOMFloat32Array* value, 2927 NotShared<DOMFloat32Array> value,
2917 GLuint src_offset, 2928 GLuint src_offset,
2918 GLuint src_length) { 2929 GLuint src_length) {
2919 if (isContextLost() || !ValidateUniformMatrixParameters( 2930 if (isContextLost() || !ValidateUniformMatrixParameters(
2920 "uniformMatrix3x2fv", location, transpose, value, 2931 "uniformMatrix3x2fv", location, transpose,
2921 6, src_offset, src_length)) 2932 value.View(), 6, src_offset, src_length))
2922 return; 2933 return;
2923 ContextGL()->UniformMatrix3x2fv( 2934 ContextGL()->UniformMatrix3x2fv(
2924 location->Location(), 2935 location->Location(),
2925 (src_length ? src_length : (value->length() - src_offset)) / 6, transpose, 2936 (src_length ? src_length : (value.View()->length() - src_offset)) / 6,
2926 value->Data() + src_offset); 2937 transpose, value.View()->Data() + src_offset);
2927 } 2938 }
2928 2939
2929 void WebGL2RenderingContextBase::uniformMatrix3x2fv( 2940 void WebGL2RenderingContextBase::uniformMatrix3x2fv(
2930 const WebGLUniformLocation* location, 2941 const WebGLUniformLocation* location,
2931 GLboolean transpose, 2942 GLboolean transpose,
2932 Vector<GLfloat>& value, 2943 Vector<GLfloat>& value,
2933 GLuint src_offset, 2944 GLuint src_offset,
2934 GLuint src_length) { 2945 GLuint src_length) {
2935 if (isContextLost() || 2946 if (isContextLost() ||
2936 !ValidateUniformMatrixParameters("uniformMatrix3x2fv", location, 2947 !ValidateUniformMatrixParameters("uniformMatrix3x2fv", location,
2937 transpose, value.Data(), value.size(), 6, 2948 transpose, value.Data(), value.size(), 6,
2938 src_offset, src_length)) 2949 src_offset, src_length))
2939 return; 2950 return;
2940 ContextGL()->UniformMatrix3x2fv( 2951 ContextGL()->UniformMatrix3x2fv(
2941 location->Location(), 2952 location->Location(),
2942 (src_length ? src_length : (value.size() - src_offset)) / 6, transpose, 2953 (src_length ? src_length : (value.size() - src_offset)) / 6, transpose,
2943 value.Data() + src_offset); 2954 value.Data() + src_offset);
2944 } 2955 }
2945 2956
2946 void WebGL2RenderingContextBase::uniformMatrix2x4fv( 2957 void WebGL2RenderingContextBase::uniformMatrix2x4fv(
2947 const WebGLUniformLocation* location, 2958 const WebGLUniformLocation* location,
2948 GLboolean transpose, 2959 GLboolean transpose,
2949 DOMFloat32Array* value, 2960 NotShared<DOMFloat32Array> value,
2950 GLuint src_offset, 2961 GLuint src_offset,
2951 GLuint src_length) { 2962 GLuint src_length) {
2952 if (isContextLost() || !ValidateUniformMatrixParameters( 2963 if (isContextLost() || !ValidateUniformMatrixParameters(
2953 "uniformMatrix2x4fv", location, transpose, value, 2964 "uniformMatrix2x4fv", location, transpose,
2954 8, src_offset, src_length)) 2965 value.View(), 8, src_offset, src_length))
2955 return; 2966 return;
2956 ContextGL()->UniformMatrix2x4fv( 2967 ContextGL()->UniformMatrix2x4fv(
2957 location->Location(), 2968 location->Location(),
2958 (src_length ? src_length : (value->length() - src_offset)) >> 3, 2969 (src_length ? src_length : (value.View()->length() - src_offset)) >> 3,
2959 transpose, value->Data() + src_offset); 2970 transpose, value.View()->Data() + src_offset);
2960 } 2971 }
2961 2972
2962 void WebGL2RenderingContextBase::uniformMatrix2x4fv( 2973 void WebGL2RenderingContextBase::uniformMatrix2x4fv(
2963 const WebGLUniformLocation* location, 2974 const WebGLUniformLocation* location,
2964 GLboolean transpose, 2975 GLboolean transpose,
2965 Vector<GLfloat>& value, 2976 Vector<GLfloat>& value,
2966 GLuint src_offset, 2977 GLuint src_offset,
2967 GLuint src_length) { 2978 GLuint src_length) {
2968 if (isContextLost() || 2979 if (isContextLost() ||
2969 !ValidateUniformMatrixParameters("uniformMatrix2x4fv", location, 2980 !ValidateUniformMatrixParameters("uniformMatrix2x4fv", location,
2970 transpose, value.Data(), value.size(), 8, 2981 transpose, value.Data(), value.size(), 8,
2971 src_offset, src_length)) 2982 src_offset, src_length))
2972 return; 2983 return;
2973 ContextGL()->UniformMatrix2x4fv( 2984 ContextGL()->UniformMatrix2x4fv(
2974 location->Location(), 2985 location->Location(),
2975 (src_length ? src_length : (value.size() - src_offset)) >> 3, transpose, 2986 (src_length ? src_length : (value.size() - src_offset)) >> 3, transpose,
2976 value.Data() + src_offset); 2987 value.Data() + src_offset);
2977 } 2988 }
2978 2989
2979 void WebGL2RenderingContextBase::uniformMatrix4x2fv( 2990 void WebGL2RenderingContextBase::uniformMatrix4x2fv(
2980 const WebGLUniformLocation* location, 2991 const WebGLUniformLocation* location,
2981 GLboolean transpose, 2992 GLboolean transpose,
2982 DOMFloat32Array* value, 2993 NotShared<DOMFloat32Array> value,
2983 GLuint src_offset, 2994 GLuint src_offset,
2984 GLuint src_length) { 2995 GLuint src_length) {
2985 if (isContextLost() || !ValidateUniformMatrixParameters( 2996 if (isContextLost() || !ValidateUniformMatrixParameters(
2986 "uniformMatrix4x2fv", location, transpose, value, 2997 "uniformMatrix4x2fv", location, transpose,
2987 8, src_offset, src_length)) 2998 value.View(), 8, src_offset, src_length))
2988 return; 2999 return;
2989 ContextGL()->UniformMatrix4x2fv( 3000 ContextGL()->UniformMatrix4x2fv(
2990 location->Location(), 3001 location->Location(),
2991 (src_length ? src_length : (value->length() - src_offset)) >> 3, 3002 (src_length ? src_length : (value.View()->length() - src_offset)) >> 3,
2992 transpose, value->Data() + src_offset); 3003 transpose, value.View()->Data() + src_offset);
2993 } 3004 }
2994 3005
2995 void WebGL2RenderingContextBase::uniformMatrix4x2fv( 3006 void WebGL2RenderingContextBase::uniformMatrix4x2fv(
2996 const WebGLUniformLocation* location, 3007 const WebGLUniformLocation* location,
2997 GLboolean transpose, 3008 GLboolean transpose,
2998 Vector<GLfloat>& value, 3009 Vector<GLfloat>& value,
2999 GLuint src_offset, 3010 GLuint src_offset,
3000 GLuint src_length) { 3011 GLuint src_length) {
3001 if (isContextLost() || 3012 if (isContextLost() ||
3002 !ValidateUniformMatrixParameters("uniformMatrix4x2fv", location, 3013 !ValidateUniformMatrixParameters("uniformMatrix4x2fv", location,
3003 transpose, value.Data(), value.size(), 8, 3014 transpose, value.Data(), value.size(), 8,
3004 src_offset, src_length)) 3015 src_offset, src_length))
3005 return; 3016 return;
3006 ContextGL()->UniformMatrix4x2fv( 3017 ContextGL()->UniformMatrix4x2fv(
3007 location->Location(), 3018 location->Location(),
3008 (src_length ? src_length : (value.size() - src_offset)) >> 3, transpose, 3019 (src_length ? src_length : (value.size() - src_offset)) >> 3, transpose,
3009 value.Data() + src_offset); 3020 value.Data() + src_offset);
3010 } 3021 }
3011 3022
3012 void WebGL2RenderingContextBase::uniformMatrix3x4fv( 3023 void WebGL2RenderingContextBase::uniformMatrix3x4fv(
3013 const WebGLUniformLocation* location, 3024 const WebGLUniformLocation* location,
3014 GLboolean transpose, 3025 GLboolean transpose,
3015 DOMFloat32Array* value, 3026 NotShared<DOMFloat32Array> value,
3016 GLuint src_offset, 3027 GLuint src_offset,
3017 GLuint src_length) { 3028 GLuint src_length) {
3018 if (isContextLost() || !ValidateUniformMatrixParameters( 3029 if (isContextLost() || !ValidateUniformMatrixParameters(
3019 "uniformMatrix3x4fv", location, transpose, value, 3030 "uniformMatrix3x4fv", location, transpose,
3020 12, src_offset, src_length)) 3031 value.View(), 12, src_offset, src_length))
3021 return; 3032 return;
3022 ContextGL()->UniformMatrix3x4fv( 3033 ContextGL()->UniformMatrix3x4fv(
3023 location->Location(), 3034 location->Location(),
3024 (src_length ? src_length : (value->length() - src_offset)) / 12, 3035 (src_length ? src_length : (value.View()->length() - src_offset)) / 12,
3025 transpose, value->Data() + src_offset); 3036 transpose, value.View()->Data() + src_offset);
3026 } 3037 }
3027 3038
3028 void WebGL2RenderingContextBase::uniformMatrix3x4fv( 3039 void WebGL2RenderingContextBase::uniformMatrix3x4fv(
3029 const WebGLUniformLocation* location, 3040 const WebGLUniformLocation* location,
3030 GLboolean transpose, 3041 GLboolean transpose,
3031 Vector<GLfloat>& value, 3042 Vector<GLfloat>& value,
3032 GLuint src_offset, 3043 GLuint src_offset,
3033 GLuint src_length) { 3044 GLuint src_length) {
3034 if (isContextLost() || 3045 if (isContextLost() ||
3035 !ValidateUniformMatrixParameters("uniformMatrix3x4fv", location, 3046 !ValidateUniformMatrixParameters("uniformMatrix3x4fv", location,
3036 transpose, value.Data(), value.size(), 3047 transpose, value.Data(), value.size(),
3037 12, src_offset, src_length)) 3048 12, src_offset, src_length))
3038 return; 3049 return;
3039 ContextGL()->UniformMatrix3x4fv( 3050 ContextGL()->UniformMatrix3x4fv(
3040 location->Location(), 3051 location->Location(),
3041 (src_length ? src_length : (value.size() - src_offset)) / 12, transpose, 3052 (src_length ? src_length : (value.size() - src_offset)) / 12, transpose,
3042 value.Data() + src_offset); 3053 value.Data() + src_offset);
3043 } 3054 }
3044 3055
3045 void WebGL2RenderingContextBase::uniformMatrix4x3fv( 3056 void WebGL2RenderingContextBase::uniformMatrix4x3fv(
3046 const WebGLUniformLocation* location, 3057 const WebGLUniformLocation* location,
3047 GLboolean transpose, 3058 GLboolean transpose,
3048 DOMFloat32Array* value, 3059 NotShared<DOMFloat32Array> value,
3049 GLuint src_offset, 3060 GLuint src_offset,
3050 GLuint src_length) { 3061 GLuint src_length) {
3051 if (isContextLost() || !ValidateUniformMatrixParameters( 3062 if (isContextLost() || !ValidateUniformMatrixParameters(
3052 "uniformMatrix4x3fv", location, transpose, value, 3063 "uniformMatrix4x3fv", location, transpose,
3053 12, src_offset, src_length)) 3064 value.View(), 12, src_offset, src_length))
3054 return; 3065 return;
3055 ContextGL()->UniformMatrix4x3fv( 3066 ContextGL()->UniformMatrix4x3fv(
3056 location->Location(), 3067 location->Location(),
3057 (src_length ? src_length : (value->length() - src_offset)) / 12, 3068 (src_length ? src_length : (value.View()->length() - src_offset)) / 12,
3058 transpose, value->Data() + src_offset); 3069 transpose, value.View()->Data() + src_offset);
3059 } 3070 }
3060 3071
3061 void WebGL2RenderingContextBase::uniformMatrix4x3fv( 3072 void WebGL2RenderingContextBase::uniformMatrix4x3fv(
3062 const WebGLUniformLocation* location, 3073 const WebGLUniformLocation* location,
3063 GLboolean transpose, 3074 GLboolean transpose,
3064 Vector<GLfloat>& value, 3075 Vector<GLfloat>& value,
3065 GLuint src_offset, 3076 GLuint src_offset,
3066 GLuint src_length) { 3077 GLuint src_length) {
3067 if (isContextLost() || 3078 if (isContextLost() ||
3068 !ValidateUniformMatrixParameters("uniformMatrix4x3fv", location, 3079 !ValidateUniformMatrixParameters("uniformMatrix4x3fv", location,
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
3167 3178
3168 void WebGL2RenderingContextBase::uniform4iv( 3179 void WebGL2RenderingContextBase::uniform4iv(
3169 const WebGLUniformLocation* location, 3180 const WebGLUniformLocation* location,
3170 Vector<GLint>& v) { 3181 Vector<GLint>& v) {
3171 WebGLRenderingContextBase::uniform4iv(location, v); 3182 WebGLRenderingContextBase::uniform4iv(location, v);
3172 } 3183 }
3173 3184
3174 void WebGL2RenderingContextBase::uniformMatrix2fv( 3185 void WebGL2RenderingContextBase::uniformMatrix2fv(
3175 const WebGLUniformLocation* location, 3186 const WebGLUniformLocation* location,
3176 GLboolean transpose, 3187 GLboolean transpose,
3177 DOMFloat32Array* v) { 3188 NotShared<DOMFloat32Array> v) {
3178 WebGLRenderingContextBase::uniformMatrix2fv(location, transpose, v); 3189 WebGLRenderingContextBase::uniformMatrix2fv(location, transpose, v);
3179 } 3190 }
3180 3191
3181 void WebGL2RenderingContextBase::uniformMatrix2fv( 3192 void WebGL2RenderingContextBase::uniformMatrix2fv(
3182 const WebGLUniformLocation* location, 3193 const WebGLUniformLocation* location,
3183 GLboolean transpose, 3194 GLboolean transpose,
3184 Vector<GLfloat>& v) { 3195 Vector<GLfloat>& v) {
3185 WebGLRenderingContextBase::uniformMatrix2fv(location, transpose, v); 3196 WebGLRenderingContextBase::uniformMatrix2fv(location, transpose, v);
3186 } 3197 }
3187 3198
3188 void WebGL2RenderingContextBase::uniformMatrix3fv( 3199 void WebGL2RenderingContextBase::uniformMatrix3fv(
3189 const WebGLUniformLocation* location, 3200 const WebGLUniformLocation* location,
3190 GLboolean transpose, 3201 GLboolean transpose,
3191 DOMFloat32Array* v) { 3202 NotShared<DOMFloat32Array> v) {
3192 WebGLRenderingContextBase::uniformMatrix3fv(location, transpose, v); 3203 WebGLRenderingContextBase::uniformMatrix3fv(location, transpose, v);
3193 } 3204 }
3194 3205
3195 void WebGL2RenderingContextBase::uniformMatrix3fv( 3206 void WebGL2RenderingContextBase::uniformMatrix3fv(
3196 const WebGLUniformLocation* location, 3207 const WebGLUniformLocation* location,
3197 GLboolean transpose, 3208 GLboolean transpose,
3198 Vector<GLfloat>& v) { 3209 Vector<GLfloat>& v) {
3199 WebGLRenderingContextBase::uniformMatrix3fv(location, transpose, v); 3210 WebGLRenderingContextBase::uniformMatrix3fv(location, transpose, v);
3200 } 3211 }
3201 3212
3202 void WebGL2RenderingContextBase::uniformMatrix4fv( 3213 void WebGL2RenderingContextBase::uniformMatrix4fv(
3203 const WebGLUniformLocation* location, 3214 const WebGLUniformLocation* location,
3204 GLboolean transpose, 3215 GLboolean transpose,
3205 DOMFloat32Array* v) { 3216 NotShared<DOMFloat32Array> v) {
3206 WebGLRenderingContextBase::uniformMatrix4fv(location, transpose, v); 3217 WebGLRenderingContextBase::uniformMatrix4fv(location, transpose, v);
3207 } 3218 }
3208 3219
3209 void WebGL2RenderingContextBase::uniformMatrix4fv( 3220 void WebGL2RenderingContextBase::uniformMatrix4fv(
3210 const WebGLUniformLocation* location, 3221 const WebGLUniformLocation* location,
3211 GLboolean transpose, 3222 GLboolean transpose,
3212 Vector<GLfloat>& v) { 3223 Vector<GLfloat>& v) {
3213 WebGLRenderingContextBase::uniformMatrix4fv(location, transpose, v); 3224 WebGLRenderingContextBase::uniformMatrix4fv(location, transpose, v);
3214 } 3225 }
3215 3226
3216 void WebGL2RenderingContextBase::vertexAttribI4i(GLuint index, 3227 void WebGL2RenderingContextBase::vertexAttribI4i(GLuint index,
3217 GLint x, 3228 GLint x,
3218 GLint y, 3229 GLint y,
3219 GLint z, 3230 GLint z,
3220 GLint w) { 3231 GLint w) {
3221 if (isContextLost()) 3232 if (isContextLost())
3222 return; 3233 return;
3223 ContextGL()->VertexAttribI4i(index, x, y, z, w); 3234 ContextGL()->VertexAttribI4i(index, x, y, z, w);
3224 SetVertexAttribType(index, kInt32ArrayType); 3235 SetVertexAttribType(index, kInt32ArrayType);
3225 } 3236 }
3226 3237
3227 void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index, 3238 void WebGL2RenderingContextBase::vertexAttribI4iv(
3228 const DOMInt32Array* v) { 3239 GLuint index,
3240 NotShared<const DOMInt32Array> v) {
3229 if (isContextLost()) 3241 if (isContextLost())
3230 return; 3242 return;
3231 if (!v || v->length() < 4) { 3243 if (!v.View() || v.View()->length() < 4) {
3232 SynthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array"); 3244 SynthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array");
3233 return; 3245 return;
3234 } 3246 }
3235 ContextGL()->VertexAttribI4iv(index, v->Data()); 3247 ContextGL()->VertexAttribI4iv(index, v.View()->Data());
3236 SetVertexAttribType(index, kInt32ArrayType); 3248 SetVertexAttribType(index, kInt32ArrayType);
3237 } 3249 }
3238 3250
3239 void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index, 3251 void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index,
3240 const Vector<GLint>& v) { 3252 const Vector<GLint>& v) {
3241 if (isContextLost()) 3253 if (isContextLost())
3242 return; 3254 return;
3243 if (v.size() < 4) { 3255 if (v.size() < 4) {
3244 SynthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array"); 3256 SynthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array");
3245 return; 3257 return;
3246 } 3258 }
3247 ContextGL()->VertexAttribI4iv(index, v.Data()); 3259 ContextGL()->VertexAttribI4iv(index, v.Data());
3248 SetVertexAttribType(index, kInt32ArrayType); 3260 SetVertexAttribType(index, kInt32ArrayType);
3249 } 3261 }
3250 3262
3251 void WebGL2RenderingContextBase::vertexAttribI4ui(GLuint index, 3263 void WebGL2RenderingContextBase::vertexAttribI4ui(GLuint index,
3252 GLuint x, 3264 GLuint x,
3253 GLuint y, 3265 GLuint y,
3254 GLuint z, 3266 GLuint z,
3255 GLuint w) { 3267 GLuint w) {
3256 if (isContextLost()) 3268 if (isContextLost())
3257 return; 3269 return;
3258 ContextGL()->VertexAttribI4ui(index, x, y, z, w); 3270 ContextGL()->VertexAttribI4ui(index, x, y, z, w);
3259 SetVertexAttribType(index, kUint32ArrayType); 3271 SetVertexAttribType(index, kUint32ArrayType);
3260 } 3272 }
3261 3273
3262 void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index, 3274 void WebGL2RenderingContextBase::vertexAttribI4uiv(
3263 const DOMUint32Array* v) { 3275 GLuint index,
3276 NotShared<const DOMUint32Array> v) {
3264 if (isContextLost()) 3277 if (isContextLost())
3265 return; 3278 return;
3266 if (!v || v->length() < 4) { 3279 if (!v.View() || v.View()->length() < 4) {
3267 SynthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array"); 3280 SynthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array");
3268 return; 3281 return;
3269 } 3282 }
3270 ContextGL()->VertexAttribI4uiv(index, v->Data()); 3283 ContextGL()->VertexAttribI4uiv(index, v.View()->Data());
3271 SetVertexAttribType(index, kUint32ArrayType); 3284 SetVertexAttribType(index, kUint32ArrayType);
3272 } 3285 }
3273 3286
3274 void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index, 3287 void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index,
3275 const Vector<GLuint>& v) { 3288 const Vector<GLuint>& v) {
3276 if (isContextLost()) 3289 if (isContextLost())
3277 return; 3290 return;
3278 if (v.size() < 4) { 3291 if (v.size() < 4) {
3279 SynthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array"); 3292 SynthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array");
3280 return; 3293 return;
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
3478 const char* func_name, 3491 const char* func_name,
3479 TexImageFunctionID function_id, 3492 TexImageFunctionID function_id,
3480 GLenum target) { 3493 GLenum target) {
3481 if (function_id == kTexImage3D || function_id == kTexSubImage3D) 3494 if (function_id == kTexImage3D || function_id == kTexSubImage3D)
3482 return ValidateTexture3DBinding(func_name, target); 3495 return ValidateTexture3DBinding(func_name, target);
3483 return ValidateTexture2DBinding(func_name, target); 3496 return ValidateTexture2DBinding(func_name, target);
3484 } 3497 }
3485 3498
3486 void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer, 3499 void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer,
3487 GLint drawbuffer, 3500 GLint drawbuffer,
3488 DOMInt32Array* value) { 3501 NotShared<DOMInt32Array> value) {
3489 if (isContextLost() || 3502 if (isContextLost() ||
3490 !ValidateClearBuffer("clearBufferiv", buffer, value->length())) 3503 !ValidateClearBuffer("clearBufferiv", buffer, value.View()->length()))
3491 return; 3504 return;
3492 3505
3493 ContextGL()->ClearBufferiv(buffer, drawbuffer, value->Data()); 3506 ContextGL()->ClearBufferiv(buffer, drawbuffer, value.View()->Data());
3494 } 3507 }
3495 3508
3496 void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer, 3509 void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer,
3497 GLint drawbuffer, 3510 GLint drawbuffer,
3498 const Vector<GLint>& value) { 3511 const Vector<GLint>& value) {
3499 if (isContextLost() || 3512 if (isContextLost() ||
3500 !ValidateClearBuffer("clearBufferiv", buffer, value.size())) 3513 !ValidateClearBuffer("clearBufferiv", buffer, value.size()))
3501 return; 3514 return;
3502 3515
3503 ContextGL()->ClearBufferiv(buffer, drawbuffer, value.Data()); 3516 ContextGL()->ClearBufferiv(buffer, drawbuffer, value.Data());
3504 } 3517 }
3505 3518
3506 void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer, 3519 void WebGL2RenderingContextBase::clearBufferuiv(
3507 GLint drawbuffer, 3520 GLenum buffer,
3508 DOMUint32Array* value) { 3521 GLint drawbuffer,
3522 NotShared<DOMUint32Array> value) {
3509 if (isContextLost() || 3523 if (isContextLost() ||
3510 !ValidateClearBuffer("clearBufferuiv", buffer, value->length())) 3524 !ValidateClearBuffer("clearBufferuiv", buffer, value.View()->length()))
3511 return; 3525 return;
3512 3526
3513 ContextGL()->ClearBufferuiv(buffer, drawbuffer, value->Data()); 3527 ContextGL()->ClearBufferuiv(buffer, drawbuffer, value.View()->Data());
3514 } 3528 }
3515 3529
3516 void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer, 3530 void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer,
3517 GLint drawbuffer, 3531 GLint drawbuffer,
3518 const Vector<GLuint>& value) { 3532 const Vector<GLuint>& value) {
3519 if (isContextLost() || 3533 if (isContextLost() ||
3520 !ValidateClearBuffer("clearBufferuiv", buffer, value.size())) 3534 !ValidateClearBuffer("clearBufferuiv", buffer, value.size()))
3521 return; 3535 return;
3522 3536
3523 ContextGL()->ClearBufferuiv(buffer, drawbuffer, value.Data()); 3537 ContextGL()->ClearBufferuiv(buffer, drawbuffer, value.Data());
3524 } 3538 }
3525 3539
3526 void WebGL2RenderingContextBase::clearBufferfv(GLenum buffer, 3540 void WebGL2RenderingContextBase::clearBufferfv(
3527 GLint drawbuffer, 3541 GLenum buffer,
3528 DOMFloat32Array* value) { 3542 GLint drawbuffer,
3543 NotShared<DOMFloat32Array> value) {
3529 if (isContextLost() || 3544 if (isContextLost() ||
3530 !ValidateClearBuffer("clearBufferfv", buffer, value->length())) 3545 !ValidateClearBuffer("clearBufferfv", buffer, value.View()->length()))
3531 return; 3546 return;
3532 3547
3533 ContextGL()->ClearBufferfv(buffer, drawbuffer, value->Data()); 3548 ContextGL()->ClearBufferfv(buffer, drawbuffer, value.View()->Data());
3534 } 3549 }
3535 3550
3536 void WebGL2RenderingContextBase::clearBufferfv(GLenum buffer, 3551 void WebGL2RenderingContextBase::clearBufferfv(GLenum buffer,
3537 GLint drawbuffer, 3552 GLint drawbuffer,
3538 const Vector<GLfloat>& value) { 3553 const Vector<GLfloat>& value) {
3539 if (isContextLost() || 3554 if (isContextLost() ||
3540 !ValidateClearBuffer("clearBufferfv", buffer, value.size())) 3555 !ValidateClearBuffer("clearBufferfv", buffer, value.size()))
3541 return; 3556 return;
3542 3557
3543 ContextGL()->ClearBufferfv(buffer, drawbuffer, value.Data()); 3558 ContextGL()->ClearBufferfv(buffer, drawbuffer, value.Data());
(...skipping 2131 matching lines...) Expand 10 before | Expand all | Expand 10 after
5675 5690
5676 void WebGL2RenderingContextBase:: 5691 void WebGL2RenderingContextBase::
5677 DrawingBufferClientRestorePixelUnpackBufferBinding() { 5692 DrawingBufferClientRestorePixelUnpackBufferBinding() {
5678 if (!ContextGL()) 5693 if (!ContextGL())
5679 return; 5694 return;
5680 ContextGL()->BindBuffer(GL_PIXEL_UNPACK_BUFFER, 5695 ContextGL()->BindBuffer(GL_PIXEL_UNPACK_BUFFER,
5681 ObjectOrZero(bound_pixel_unpack_buffer_.Get())); 5696 ObjectOrZero(bound_pixel_unpack_buffer_.Get()));
5682 } 5697 }
5683 5698
5684 } // namespace blink 5699 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698