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

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: Created 3 years, 9 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 2858 matching lines...) Expand 10 before | Expand all | Expand 10 after
2869 return; 2869 return;
2870 contextGL()->UniformMatrix4fv( 2870 contextGL()->UniformMatrix4fv(
2871 location->location(), 2871 location->location(),
2872 (srcLength ? srcLength : (v.size() - srcOffset)) >> 4, transpose, 2872 (srcLength ? srcLength : (v.size() - srcOffset)) >> 4, transpose,
2873 v.data() + srcOffset); 2873 v.data() + srcOffset);
2874 } 2874 }
2875 2875
2876 void WebGL2RenderingContextBase::uniformMatrix2x3fv( 2876 void WebGL2RenderingContextBase::uniformMatrix2x3fv(
2877 const WebGLUniformLocation* location, 2877 const WebGLUniformLocation* location,
2878 GLboolean transpose, 2878 GLboolean transpose,
2879 DOMFloat32Array* value, 2879 const MaybeShared<DOMFloat32Array>& value,
2880 GLuint srcOffset, 2880 GLuint srcOffset,
2881 GLuint srcLength) { 2881 GLuint srcLength) {
2882 if (isContextLost() || 2882 if (isContextLost() ||
2883 !validateUniformMatrixParameters("uniformMatrix2x3fv", location, 2883 !validateUniformMatrixParameters("uniformMatrix2x3fv", location,
2884 transpose, value, 6, srcOffset, 2884 transpose, value, 6, srcOffset,
2885 srcLength)) 2885 srcLength))
2886 return; 2886 return;
2887 contextGL()->UniformMatrix2x3fv( 2887 contextGL()->UniformMatrix2x3fv(
2888 location->location(), 2888 location->location(),
2889 (srcLength ? srcLength : (value->length() - srcOffset)) / 6, transpose, 2889 (srcLength ? srcLength : (value.viewNotShared()->length() - srcOffset)) /
2890 value->data() + srcOffset); 2890 6,
2891 transpose, value.viewNotShared()->data() + srcOffset);
2891 } 2892 }
2892 2893
2893 void WebGL2RenderingContextBase::uniformMatrix2x3fv( 2894 void WebGL2RenderingContextBase::uniformMatrix2x3fv(
2894 const WebGLUniformLocation* location, 2895 const WebGLUniformLocation* location,
2895 GLboolean transpose, 2896 GLboolean transpose,
2896 Vector<GLfloat>& value, 2897 Vector<GLfloat>& value,
2897 GLuint srcOffset, 2898 GLuint srcOffset,
2898 GLuint srcLength) { 2899 GLuint srcLength) {
2899 if (isContextLost() || 2900 if (isContextLost() ||
2900 !validateUniformMatrixParameters("uniformMatrix2x3fv", location, 2901 !validateUniformMatrixParameters("uniformMatrix2x3fv", location,
2901 transpose, value.data(), value.size(), 6, 2902 transpose, value.data(), value.size(), 6,
2902 srcOffset, srcLength)) 2903 srcOffset, srcLength))
2903 return; 2904 return;
2904 contextGL()->UniformMatrix2x3fv( 2905 contextGL()->UniformMatrix2x3fv(
2905 location->location(), 2906 location->location(),
2906 (srcLength ? srcLength : (value.size() - srcOffset)) / 6, transpose, 2907 (srcLength ? srcLength : (value.size() - srcOffset)) / 6, transpose,
2907 value.data() + srcOffset); 2908 value.data() + srcOffset);
2908 } 2909 }
2909 2910
2910 void WebGL2RenderingContextBase::uniformMatrix3x2fv( 2911 void WebGL2RenderingContextBase::uniformMatrix3x2fv(
2911 const WebGLUniformLocation* location, 2912 const WebGLUniformLocation* location,
2912 GLboolean transpose, 2913 GLboolean transpose,
2913 DOMFloat32Array* value, 2914 const MaybeShared<DOMFloat32Array>& value,
2914 GLuint srcOffset, 2915 GLuint srcOffset,
2915 GLuint srcLength) { 2916 GLuint srcLength) {
2916 if (isContextLost() || 2917 if (isContextLost() ||
2917 !validateUniformMatrixParameters("uniformMatrix3x2fv", location, 2918 !validateUniformMatrixParameters("uniformMatrix3x2fv", location,
2918 transpose, value, 6, srcOffset, 2919 transpose, value, 6, srcOffset,
2919 srcLength)) 2920 srcLength))
2920 return; 2921 return;
2921 contextGL()->UniformMatrix3x2fv( 2922 contextGL()->UniformMatrix3x2fv(
2922 location->location(), 2923 location->location(),
2923 (srcLength ? srcLength : (value->length() - srcOffset)) / 6, transpose, 2924 (srcLength ? srcLength : (value.viewNotShared()->length() - srcOffset)) /
2924 value->data() + srcOffset); 2925 6,
2926 transpose, value.viewNotShared()->data() + srcOffset);
2925 } 2927 }
2926 2928
2927 void WebGL2RenderingContextBase::uniformMatrix3x2fv( 2929 void WebGL2RenderingContextBase::uniformMatrix3x2fv(
2928 const WebGLUniformLocation* location, 2930 const WebGLUniformLocation* location,
2929 GLboolean transpose, 2931 GLboolean transpose,
2930 Vector<GLfloat>& value, 2932 Vector<GLfloat>& value,
2931 GLuint srcOffset, 2933 GLuint srcOffset,
2932 GLuint srcLength) { 2934 GLuint srcLength) {
2933 if (isContextLost() || 2935 if (isContextLost() ||
2934 !validateUniformMatrixParameters("uniformMatrix3x2fv", location, 2936 !validateUniformMatrixParameters("uniformMatrix3x2fv", location,
2935 transpose, value.data(), value.size(), 6, 2937 transpose, value.data(), value.size(), 6,
2936 srcOffset, srcLength)) 2938 srcOffset, srcLength))
2937 return; 2939 return;
2938 contextGL()->UniformMatrix3x2fv( 2940 contextGL()->UniformMatrix3x2fv(
2939 location->location(), 2941 location->location(),
2940 (srcLength ? srcLength : (value.size() - srcOffset)) / 6, transpose, 2942 (srcLength ? srcLength : (value.size() - srcOffset)) / 6, transpose,
2941 value.data() + srcOffset); 2943 value.data() + srcOffset);
2942 } 2944 }
2943 2945
2944 void WebGL2RenderingContextBase::uniformMatrix2x4fv( 2946 void WebGL2RenderingContextBase::uniformMatrix2x4fv(
2945 const WebGLUniformLocation* location, 2947 const WebGLUniformLocation* location,
2946 GLboolean transpose, 2948 GLboolean transpose,
2947 DOMFloat32Array* value, 2949 const MaybeShared<DOMFloat32Array>& value,
2948 GLuint srcOffset, 2950 GLuint srcOffset,
2949 GLuint srcLength) { 2951 GLuint srcLength) {
2950 if (isContextLost() || 2952 if (isContextLost() ||
2951 !validateUniformMatrixParameters("uniformMatrix2x4fv", location, 2953 !validateUniformMatrixParameters("uniformMatrix2x4fv", location,
2952 transpose, value, 8, srcOffset, 2954 transpose, value, 8, srcOffset,
2953 srcLength)) 2955 srcLength))
2954 return; 2956 return;
2955 contextGL()->UniformMatrix2x4fv( 2957 contextGL()->UniformMatrix2x4fv(
2956 location->location(), 2958 location->location(),
2957 (srcLength ? srcLength : (value->length() - srcOffset)) >> 3, transpose, 2959 (srcLength ? srcLength : (value.viewNotShared()->length() - srcOffset)) >>
2958 value->data() + srcOffset); 2960 3,
2961 transpose, value.viewNotShared()->data() + srcOffset);
2959 } 2962 }
2960 2963
2961 void WebGL2RenderingContextBase::uniformMatrix2x4fv( 2964 void WebGL2RenderingContextBase::uniformMatrix2x4fv(
2962 const WebGLUniformLocation* location, 2965 const WebGLUniformLocation* location,
2963 GLboolean transpose, 2966 GLboolean transpose,
2964 Vector<GLfloat>& value, 2967 Vector<GLfloat>& value,
2965 GLuint srcOffset, 2968 GLuint srcOffset,
2966 GLuint srcLength) { 2969 GLuint srcLength) {
2967 if (isContextLost() || 2970 if (isContextLost() ||
2968 !validateUniformMatrixParameters("uniformMatrix2x4fv", location, 2971 !validateUniformMatrixParameters("uniformMatrix2x4fv", location,
2969 transpose, value.data(), value.size(), 8, 2972 transpose, value.data(), value.size(), 8,
2970 srcOffset, srcLength)) 2973 srcOffset, srcLength))
2971 return; 2974 return;
2972 contextGL()->UniformMatrix2x4fv( 2975 contextGL()->UniformMatrix2x4fv(
2973 location->location(), 2976 location->location(),
2974 (srcLength ? srcLength : (value.size() - srcOffset)) >> 3, transpose, 2977 (srcLength ? srcLength : (value.size() - srcOffset)) >> 3, transpose,
2975 value.data() + srcOffset); 2978 value.data() + srcOffset);
2976 } 2979 }
2977 2980
2978 void WebGL2RenderingContextBase::uniformMatrix4x2fv( 2981 void WebGL2RenderingContextBase::uniformMatrix4x2fv(
2979 const WebGLUniformLocation* location, 2982 const WebGLUniformLocation* location,
2980 GLboolean transpose, 2983 GLboolean transpose,
2981 DOMFloat32Array* value, 2984 const MaybeShared<DOMFloat32Array>& value,
2982 GLuint srcOffset, 2985 GLuint srcOffset,
2983 GLuint srcLength) { 2986 GLuint srcLength) {
2984 if (isContextLost() || 2987 if (isContextLost() ||
2985 !validateUniformMatrixParameters("uniformMatrix4x2fv", location, 2988 !validateUniformMatrixParameters("uniformMatrix4x2fv", location,
2986 transpose, value, 8, srcOffset, 2989 transpose, value, 8, srcOffset,
2987 srcLength)) 2990 srcLength))
2988 return; 2991 return;
2989 contextGL()->UniformMatrix4x2fv( 2992 contextGL()->UniformMatrix4x2fv(
2990 location->location(), 2993 location->location(),
2991 (srcLength ? srcLength : (value->length() - srcOffset)) >> 3, transpose, 2994 (srcLength ? srcLength : (value.viewNotShared()->length() - srcOffset)) >>
2992 value->data() + srcOffset); 2995 3,
2996 transpose, value.viewNotShared()->data() + srcOffset);
2993 } 2997 }
2994 2998
2995 void WebGL2RenderingContextBase::uniformMatrix4x2fv( 2999 void WebGL2RenderingContextBase::uniformMatrix4x2fv(
2996 const WebGLUniformLocation* location, 3000 const WebGLUniformLocation* location,
2997 GLboolean transpose, 3001 GLboolean transpose,
2998 Vector<GLfloat>& value, 3002 Vector<GLfloat>& value,
2999 GLuint srcOffset, 3003 GLuint srcOffset,
3000 GLuint srcLength) { 3004 GLuint srcLength) {
3001 if (isContextLost() || 3005 if (isContextLost() ||
3002 !validateUniformMatrixParameters("uniformMatrix4x2fv", location, 3006 !validateUniformMatrixParameters("uniformMatrix4x2fv", location,
3003 transpose, value.data(), value.size(), 8, 3007 transpose, value.data(), value.size(), 8,
3004 srcOffset, srcLength)) 3008 srcOffset, srcLength))
3005 return; 3009 return;
3006 contextGL()->UniformMatrix4x2fv( 3010 contextGL()->UniformMatrix4x2fv(
3007 location->location(), 3011 location->location(),
3008 (srcLength ? srcLength : (value.size() - srcOffset)) >> 3, transpose, 3012 (srcLength ? srcLength : (value.size() - srcOffset)) >> 3, transpose,
3009 value.data() + srcOffset); 3013 value.data() + srcOffset);
3010 } 3014 }
3011 3015
3012 void WebGL2RenderingContextBase::uniformMatrix3x4fv( 3016 void WebGL2RenderingContextBase::uniformMatrix3x4fv(
3013 const WebGLUniformLocation* location, 3017 const WebGLUniformLocation* location,
3014 GLboolean transpose, 3018 GLboolean transpose,
3015 DOMFloat32Array* value, 3019 const MaybeShared<DOMFloat32Array>& value,
3016 GLuint srcOffset, 3020 GLuint srcOffset,
3017 GLuint srcLength) { 3021 GLuint srcLength) {
3018 if (isContextLost() || 3022 if (isContextLost() ||
3019 !validateUniformMatrixParameters("uniformMatrix3x4fv", location, 3023 !validateUniformMatrixParameters("uniformMatrix3x4fv", location,
3020 transpose, value, 12, srcOffset, 3024 transpose, value, 12, srcOffset,
3021 srcLength)) 3025 srcLength))
3022 return; 3026 return;
3023 contextGL()->UniformMatrix3x4fv( 3027 contextGL()->UniformMatrix3x4fv(
3024 location->location(), 3028 location->location(),
3025 (srcLength ? srcLength : (value->length() - srcOffset)) / 12, transpose, 3029 (srcLength ? srcLength : (value.viewNotShared()->length() - srcOffset)) /
3026 value->data() + srcOffset); 3030 12,
3031 transpose, value.viewNotShared()->data() + srcOffset);
3027 } 3032 }
3028 3033
3029 void WebGL2RenderingContextBase::uniformMatrix3x4fv( 3034 void WebGL2RenderingContextBase::uniformMatrix3x4fv(
3030 const WebGLUniformLocation* location, 3035 const WebGLUniformLocation* location,
3031 GLboolean transpose, 3036 GLboolean transpose,
3032 Vector<GLfloat>& value, 3037 Vector<GLfloat>& value,
3033 GLuint srcOffset, 3038 GLuint srcOffset,
3034 GLuint srcLength) { 3039 GLuint srcLength) {
3035 if (isContextLost() || 3040 if (isContextLost() ||
3036 !validateUniformMatrixParameters("uniformMatrix3x4fv", location, 3041 !validateUniformMatrixParameters("uniformMatrix3x4fv", location,
3037 transpose, value.data(), value.size(), 3042 transpose, value.data(), value.size(),
3038 12, srcOffset, srcLength)) 3043 12, srcOffset, srcLength))
3039 return; 3044 return;
3040 contextGL()->UniformMatrix3x4fv( 3045 contextGL()->UniformMatrix3x4fv(
3041 location->location(), 3046 location->location(),
3042 (srcLength ? srcLength : (value.size() - srcOffset)) / 12, transpose, 3047 (srcLength ? srcLength : (value.size() - srcOffset)) / 12, transpose,
3043 value.data() + srcOffset); 3048 value.data() + srcOffset);
3044 } 3049 }
3045 3050
3046 void WebGL2RenderingContextBase::uniformMatrix4x3fv( 3051 void WebGL2RenderingContextBase::uniformMatrix4x3fv(
3047 const WebGLUniformLocation* location, 3052 const WebGLUniformLocation* location,
3048 GLboolean transpose, 3053 GLboolean transpose,
3049 DOMFloat32Array* value, 3054 const MaybeShared<DOMFloat32Array>& value,
3050 GLuint srcOffset, 3055 GLuint srcOffset,
3051 GLuint srcLength) { 3056 GLuint srcLength) {
3052 if (isContextLost() || 3057 if (isContextLost() ||
3053 !validateUniformMatrixParameters("uniformMatrix4x3fv", location, 3058 !validateUniformMatrixParameters("uniformMatrix4x3fv", location,
3054 transpose, value, 12, srcOffset, 3059 transpose, value, 12, srcOffset,
3055 srcLength)) 3060 srcLength))
3056 return; 3061 return;
3057 contextGL()->UniformMatrix4x3fv( 3062 contextGL()->UniformMatrix4x3fv(
3058 location->location(), 3063 location->location(),
3059 (srcLength ? srcLength : (value->length() - srcOffset)) / 12, transpose, 3064 (srcLength ? srcLength : (value.viewNotShared()->length() - srcOffset)) /
3060 value->data() + srcOffset); 3065 12,
3066 transpose, value.viewNotShared()->data() + srcOffset);
3061 } 3067 }
3062 3068
3063 void WebGL2RenderingContextBase::uniformMatrix4x3fv( 3069 void WebGL2RenderingContextBase::uniformMatrix4x3fv(
3064 const WebGLUniformLocation* location, 3070 const WebGLUniformLocation* location,
3065 GLboolean transpose, 3071 GLboolean transpose,
3066 Vector<GLfloat>& value, 3072 Vector<GLfloat>& value,
3067 GLuint srcOffset, 3073 GLuint srcOffset,
3068 GLuint srcLength) { 3074 GLuint srcLength) {
3069 if (isContextLost() || 3075 if (isContextLost() ||
3070 !validateUniformMatrixParameters("uniformMatrix4x3fv", location, 3076 !validateUniformMatrixParameters("uniformMatrix4x3fv", location,
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
3219 GLint x, 3225 GLint x,
3220 GLint y, 3226 GLint y,
3221 GLint z, 3227 GLint z,
3222 GLint w) { 3228 GLint w) {
3223 if (isContextLost()) 3229 if (isContextLost())
3224 return; 3230 return;
3225 contextGL()->VertexAttribI4i(index, x, y, z, w); 3231 contextGL()->VertexAttribI4i(index, x, y, z, w);
3226 setVertexAttribType(index, Int32ArrayType); 3232 setVertexAttribType(index, Int32ArrayType);
3227 } 3233 }
3228 3234
3229 void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index, 3235 void WebGL2RenderingContextBase::vertexAttribI4iv(
3230 const DOMInt32Array* v) { 3236 GLuint index,
3231 if (isContextLost()) 3237 const MaybeShared<const DOMInt32Array>& v) {
3238 if (isContextLost() || !validateNotSharedArrayBuffer("vertexAttribI4iv", v))
3232 return; 3239 return;
3233 if (!v || v->length() < 4) { 3240 if (!v || v.viewNotShared()->length() < 4) {
3234 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array"); 3241 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array");
3235 return; 3242 return;
3236 } 3243 }
3237 contextGL()->VertexAttribI4iv(index, v->data()); 3244 contextGL()->VertexAttribI4iv(index, v.viewNotShared()->data());
3238 setVertexAttribType(index, Int32ArrayType); 3245 setVertexAttribType(index, Int32ArrayType);
3239 } 3246 }
3240 3247
3241 void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index, 3248 void WebGL2RenderingContextBase::vertexAttribI4iv(GLuint index,
3242 const Vector<GLint>& v) { 3249 const Vector<GLint>& v) {
3243 if (isContextLost()) 3250 if (isContextLost())
3244 return; 3251 return;
3245 if (v.size() < 4) { 3252 if (v.size() < 4) {
3246 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array"); 3253 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4iv", "invalid array");
3247 return; 3254 return;
3248 } 3255 }
3249 contextGL()->VertexAttribI4iv(index, v.data()); 3256 contextGL()->VertexAttribI4iv(index, v.data());
3250 setVertexAttribType(index, Int32ArrayType); 3257 setVertexAttribType(index, Int32ArrayType);
3251 } 3258 }
3252 3259
3253 void WebGL2RenderingContextBase::vertexAttribI4ui(GLuint index, 3260 void WebGL2RenderingContextBase::vertexAttribI4ui(GLuint index,
3254 GLuint x, 3261 GLuint x,
3255 GLuint y, 3262 GLuint y,
3256 GLuint z, 3263 GLuint z,
3257 GLuint w) { 3264 GLuint w) {
3258 if (isContextLost()) 3265 if (isContextLost())
3259 return; 3266 return;
3260 contextGL()->VertexAttribI4ui(index, x, y, z, w); 3267 contextGL()->VertexAttribI4ui(index, x, y, z, w);
3261 setVertexAttribType(index, Uint32ArrayType); 3268 setVertexAttribType(index, Uint32ArrayType);
3262 } 3269 }
3263 3270
3264 void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index, 3271 void WebGL2RenderingContextBase::vertexAttribI4uiv(
3265 const DOMUint32Array* v) { 3272 GLuint index,
3266 if (isContextLost()) 3273 const MaybeShared<const DOMUint32Array>& v) {
3274 if (isContextLost() || !validateNotSharedArrayBuffer("vertexAttribI4uiv", v))
3267 return; 3275 return;
3268 if (!v || v->length() < 4) { 3276 if (!v || v.viewNotShared()->length() < 4) {
3269 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array"); 3277 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array");
3270 return; 3278 return;
3271 } 3279 }
3272 contextGL()->VertexAttribI4uiv(index, v->data()); 3280 contextGL()->VertexAttribI4uiv(index, v.viewNotShared()->data());
3273 setVertexAttribType(index, Uint32ArrayType); 3281 setVertexAttribType(index, Uint32ArrayType);
3274 } 3282 }
3275 3283
3276 void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index, 3284 void WebGL2RenderingContextBase::vertexAttribI4uiv(GLuint index,
3277 const Vector<GLuint>& v) { 3285 const Vector<GLuint>& v) {
3278 if (isContextLost()) 3286 if (isContextLost())
3279 return; 3287 return;
3280 if (v.size() < 4) { 3288 if (v.size() < 4) {
3281 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array"); 3289 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribI4uiv", "invalid array");
3282 return; 3290 return;
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
3475 3483
3476 WebGLTexture* WebGL2RenderingContextBase::validateTexImageBinding( 3484 WebGLTexture* WebGL2RenderingContextBase::validateTexImageBinding(
3477 const char* funcName, 3485 const char* funcName,
3478 TexImageFunctionID functionID, 3486 TexImageFunctionID functionID,
3479 GLenum target) { 3487 GLenum target) {
3480 if (functionID == TexImage3D || functionID == TexSubImage3D) 3488 if (functionID == TexImage3D || functionID == TexSubImage3D)
3481 return validateTexture3DBinding(funcName, target); 3489 return validateTexture3DBinding(funcName, target);
3482 return validateTexture2DBinding(funcName, target); 3490 return validateTexture2DBinding(funcName, target);
3483 } 3491 }
3484 3492
3485 void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer, 3493 void WebGL2RenderingContextBase::clearBufferiv(
3486 GLint drawbuffer, 3494 GLenum buffer,
3487 DOMInt32Array* value) { 3495 GLint drawbuffer,
3496 const MaybeShared<DOMInt32Array>& value) {
3488 if (isContextLost() || 3497 if (isContextLost() ||
3489 !validateClearBuffer("clearBufferiv", buffer, value->length())) 3498 !validateNotSharedArrayBuffer("clearBufferiv", value) ||
3499 !validateClearBuffer("clearBufferiv", buffer,
3500 value.viewNotShared()->length()))
3490 return; 3501 return;
3491 3502
3492 contextGL()->ClearBufferiv(buffer, drawbuffer, value->data()); 3503 contextGL()->ClearBufferiv(buffer, drawbuffer, value.viewNotShared()->data());
3493 } 3504 }
3494 3505
3495 void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer, 3506 void WebGL2RenderingContextBase::clearBufferiv(GLenum buffer,
3496 GLint drawbuffer, 3507 GLint drawbuffer,
3497 const Vector<GLint>& value) { 3508 const Vector<GLint>& value) {
3498 if (isContextLost() || 3509 if (isContextLost() ||
3499 !validateClearBuffer("clearBufferiv", buffer, value.size())) 3510 !validateClearBuffer("clearBufferiv", buffer, value.size()))
3500 return; 3511 return;
3501 3512
3502 contextGL()->ClearBufferiv(buffer, drawbuffer, value.data()); 3513 contextGL()->ClearBufferiv(buffer, drawbuffer, value.data());
3503 } 3514 }
3504 3515
3505 void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer, 3516 void WebGL2RenderingContextBase::clearBufferuiv(
3506 GLint drawbuffer, 3517 GLenum buffer,
3507 DOMUint32Array* value) { 3518 GLint drawbuffer,
3519 const MaybeShared<DOMUint32Array>& value) {
3508 if (isContextLost() || 3520 if (isContextLost() ||
3509 !validateClearBuffer("clearBufferuiv", buffer, value->length())) 3521 !validateNotSharedArrayBuffer("clearBufferuiv", value) ||
3522 !validateClearBuffer("clearBufferuiv", buffer,
3523 value.viewNotShared()->length()))
3510 return; 3524 return;
3511 3525
3512 contextGL()->ClearBufferuiv(buffer, drawbuffer, value->data()); 3526 contextGL()->ClearBufferuiv(buffer, drawbuffer,
3527 value.viewNotShared()->data());
3513 } 3528 }
3514 3529
3515 void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer, 3530 void WebGL2RenderingContextBase::clearBufferuiv(GLenum buffer,
3516 GLint drawbuffer, 3531 GLint drawbuffer,
3517 const Vector<GLuint>& value) { 3532 const Vector<GLuint>& value) {
3518 if (isContextLost() || 3533 if (isContextLost() ||
3519 !validateClearBuffer("clearBufferuiv", buffer, value.size())) 3534 !validateClearBuffer("clearBufferuiv", buffer, value.size()))
3520 return; 3535 return;
3521 3536
3522 contextGL()->ClearBufferuiv(buffer, drawbuffer, value.data()); 3537 contextGL()->ClearBufferuiv(buffer, drawbuffer, value.data());
3523 } 3538 }
3524 3539
3525 void WebGL2RenderingContextBase::clearBufferfv(GLenum buffer, 3540 void WebGL2RenderingContextBase::clearBufferfv(
3526 GLint drawbuffer, 3541 GLenum buffer,
3527 DOMFloat32Array* value) { 3542 GLint drawbuffer,
3543 const MaybeShared<DOMFloat32Array>& value) {
3528 if (isContextLost() || 3544 if (isContextLost() ||
3529 !validateClearBuffer("clearBufferfv", buffer, value->length())) 3545 !validateNotSharedArrayBuffer("clearBufferfv", value) ||
3546 !validateClearBuffer("clearBufferfv", buffer,
3547 value.viewNotShared()->length()))
3530 return; 3548 return;
3531 3549
3532 contextGL()->ClearBufferfv(buffer, drawbuffer, value->data()); 3550 contextGL()->ClearBufferfv(buffer, drawbuffer, value.viewNotShared()->data());
3533 } 3551 }
3534 3552
3535 void WebGL2RenderingContextBase::clearBufferfv(GLenum buffer, 3553 void WebGL2RenderingContextBase::clearBufferfv(GLenum buffer,
3536 GLint drawbuffer, 3554 GLint drawbuffer,
3537 const Vector<GLfloat>& value) { 3555 const Vector<GLfloat>& value) {
3538 if (isContextLost() || 3556 if (isContextLost() ||
3539 !validateClearBuffer("clearBufferfv", buffer, value.size())) 3557 !validateClearBuffer("clearBufferfv", buffer, value.size()))
3540 return; 3558 return;
3541 3559
3542 contextGL()->ClearBufferfv(buffer, drawbuffer, value.data()); 3560 contextGL()->ClearBufferfv(buffer, drawbuffer, value.data());
(...skipping 2124 matching lines...) Expand 10 before | Expand all | Expand 10 after
5667 5685
5668 void WebGL2RenderingContextBase:: 5686 void WebGL2RenderingContextBase::
5669 DrawingBufferClientRestorePixelUnpackBufferBinding() { 5687 DrawingBufferClientRestorePixelUnpackBufferBinding() {
5670 if (!contextGL()) 5688 if (!contextGL())
5671 return; 5689 return;
5672 contextGL()->BindBuffer(GL_PIXEL_UNPACK_BUFFER, 5690 contextGL()->BindBuffer(GL_PIXEL_UNPACK_BUFFER,
5673 objectOrZero(m_boundPixelUnpackBuffer.get())); 5691 objectOrZero(m_boundPixelUnpackBuffer.get()));
5674 } 5692 }
5675 5693
5676 } // namespace blink 5694 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698