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

Side by Side Diff: third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp

Issue 1815803003: Move simple methods [T-Z] from WebGraphicsContext3D to GLES2Interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@simples-fplus
Patch Set: simples-tplus: fixed Created 4 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 /* 1 /*
2 * Copyright (C) 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2009 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 // It's not convenient or necessary to pass a ScriptState this far down; whi le one is available 973 // It's not convenient or necessary to pass a ScriptState this far down; whi le one is available
974 // during WebGLRenderingContext construction, the wrapper for the context it self hasn't been 974 // during WebGLRenderingContext construction, the wrapper for the context it self hasn't been
975 // created yet. It's simpler to instead lazily instantiate and preserve the JavaScript wrapper 975 // created yet. It's simpler to instead lazily instantiate and preserve the JavaScript wrapper
976 // for the default VAO. (This object is never exposed to JavaScript, but we need to link other 976 // for the default VAO. (This object is never exposed to JavaScript, but we need to link other
977 // JavaScript wrappers to it.) 977 // JavaScript wrappers to it.)
978 m_preservedDefaultVAOObjectWrapper = false; 978 m_preservedDefaultVAOObjectWrapper = false;
979 m_boundVertexArrayObject = m_defaultVertexArrayObject; 979 m_boundVertexArrayObject = m_defaultVertexArrayObject;
980 980
981 m_vertexAttribType.resize(m_maxVertexAttribs); 981 m_vertexAttribType.resize(m_maxVertexAttribs);
982 982
983 webContext()->viewport(0, 0, drawingBufferWidth(), drawingBufferHeight()); 983 contextGL()->Viewport(0, 0, drawingBufferWidth(), drawingBufferHeight());
984 contextGL()->Scissor(0, 0, drawingBufferWidth(), drawingBufferHeight()); 984 contextGL()->Scissor(0, 0, drawingBufferWidth(), drawingBufferHeight());
985 985
986 m_contextLostCallbackAdapter = WebGLRenderingContextLostCallback::create(thi s); 986 m_contextLostCallbackAdapter = WebGLRenderingContextLostCallback::create(thi s);
987 m_errorMessageCallbackAdapter = WebGLRenderingContextErrorMessageCallback::c reate(this); 987 m_errorMessageCallbackAdapter = WebGLRenderingContextErrorMessageCallback::c reate(this);
988 988
989 webContext()->setContextLostCallback(m_contextLostCallbackAdapter.get()); 989 webContext()->setContextLostCallback(m_contextLostCallbackAdapter.get());
990 webContext()->setErrorMessageCallback(m_errorMessageCallbackAdapter.get()); 990 webContext()->setErrorMessageCallback(m_errorMessageCallbackAdapter.get());
991 991
992 // This ensures that the context has a valid "lastFlushID" and won't be mist akenly identified as the "least recently used" context. 992 // This ensures that the context has a valid "lastFlushID" and won't be mist akenly identified as the "least recently used" context.
993 contextGL()->Flush(); 993 contextGL()->Flush();
(...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after
1923 { 1923 {
1924 if (isContextLost() || !object) 1924 if (isContextLost() || !object)
1925 return false; 1925 return false;
1926 if (!object->validate(contextGroup(), this)) { 1926 if (!object->validate(contextGroup(), this)) {
1927 synthesizeGLError(GL_INVALID_OPERATION, "delete", "object does not belon g to this context"); 1927 synthesizeGLError(GL_INVALID_OPERATION, "delete", "object does not belon g to this context");
1928 return false; 1928 return false;
1929 } 1929 }
1930 if (object->hasObject()) { 1930 if (object->hasObject()) {
1931 // We need to pass in context here because we want 1931 // We need to pass in context here because we want
1932 // things in this context unbound. 1932 // things in this context unbound.
1933 object->deleteObject(webContext()); 1933 object->deleteObject(webContext(), contextGL());
1934 } 1934 }
1935 return true; 1935 return true;
1936 } 1936 }
1937 1937
1938 void WebGLRenderingContextBase::deleteBuffer(WebGLBuffer* buffer) 1938 void WebGLRenderingContextBase::deleteBuffer(WebGLBuffer* buffer)
1939 { 1939 {
1940 if (!deleteObject(buffer)) 1940 if (!deleteObject(buffer))
1941 return; 1941 return;
1942 removeBoundBuffer(buffer); 1942 removeBoundBuffer(buffer);
1943 } 1943 }
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
2046 2046
2047 void WebGLRenderingContextBase::detachShader(ScriptState* scriptState, WebGLProg ram* program, WebGLShader* shader) 2047 void WebGLRenderingContextBase::detachShader(ScriptState* scriptState, WebGLProg ram* program, WebGLShader* shader)
2048 { 2048 {
2049 if (isContextLost() || !validateWebGLObject("detachShader", program) || !val idateWebGLObject("detachShader", shader)) 2049 if (isContextLost() || !validateWebGLObject("detachShader", program) || !val idateWebGLObject("detachShader", shader))
2050 return; 2050 return;
2051 if (!program->detachShader(shader)) { 2051 if (!program->detachShader(shader)) {
2052 synthesizeGLError(GL_INVALID_OPERATION, "detachShader", "shader not atta ched"); 2052 synthesizeGLError(GL_INVALID_OPERATION, "detachShader", "shader not atta ched");
2053 return; 2053 return;
2054 } 2054 }
2055 contextGL()->DetachShader(objectOrZero(program), objectOrZero(shader)); 2055 contextGL()->DetachShader(objectOrZero(program), objectOrZero(shader));
2056 shader->onDetached(webContext()); 2056 shader->onDetached(webContext(), contextGL());
2057 preserveObjectWrapper(scriptState, program, "shader", shader->type(), nullpt r); 2057 preserveObjectWrapper(scriptState, program, "shader", shader->type(), nullpt r);
2058 } 2058 }
2059 2059
2060 void WebGLRenderingContextBase::disable(GLenum cap) 2060 void WebGLRenderingContextBase::disable(GLenum cap)
2061 { 2061 {
2062 if (isContextLost() || !validateCapability("disable", cap)) 2062 if (isContextLost() || !validateCapability("disable", cap))
2063 return; 2063 return;
2064 if (cap == GL_STENCIL_TEST) { 2064 if (cap == GL_STENCIL_TEST) {
2065 m_stencilEnabled = false; 2065 m_stencilEnabled = false;
2066 applyStencilTest(); 2066 applyStencilTest();
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
2133 webContext()->drawElements(mode, count, type, static_cast<GLintptr>(offset)) ; 2133 webContext()->drawElements(mode, count, type, static_cast<GLintptr>(offset)) ;
2134 markContextChanged(CanvasChanged); 2134 markContextChanged(CanvasChanged);
2135 } 2135 }
2136 2136
2137 void WebGLRenderingContextBase::drawArraysInstancedANGLE(GLenum mode, GLint firs t, GLsizei count, GLsizei primcount) 2137 void WebGLRenderingContextBase::drawArraysInstancedANGLE(GLenum mode, GLint firs t, GLsizei count, GLsizei primcount)
2138 { 2138 {
2139 if (!validateDrawArrays("drawArraysInstancedANGLE")) 2139 if (!validateDrawArrays("drawArraysInstancedANGLE"))
2140 return; 2140 return;
2141 2141
2142 clearIfComposited(); 2142 clearIfComposited();
2143 webContext()->drawArraysInstancedANGLE(mode, first, count, primcount); 2143 contextGL()->DrawArraysInstancedANGLE(mode, first, count, primcount);
2144 markContextChanged(CanvasChanged); 2144 markContextChanged(CanvasChanged);
2145 } 2145 }
2146 2146
2147 void WebGLRenderingContextBase::drawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, long long offset, GLsizei primcount) 2147 void WebGLRenderingContextBase::drawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, long long offset, GLsizei primcount)
2148 { 2148 {
2149 if (!validateDrawElements("drawElementsInstancedANGLE", type, offset)) 2149 if (!validateDrawElements("drawElementsInstancedANGLE", type, offset))
2150 return; 2150 return;
2151 2151
2152 clearIfComposited(); 2152 clearIfComposited();
2153 webContext()->drawElementsInstancedANGLE(mode, count, type, static_cast<GLin tptr>(offset), primcount); 2153 contextGL()->DrawElementsInstancedANGLE(mode, count, type, reinterpret_cast< void*>(static_cast<intptr_t>(offset)), primcount);
2154 markContextChanged(CanvasChanged); 2154 markContextChanged(CanvasChanged);
2155 } 2155 }
2156 2156
2157 void WebGLRenderingContextBase::enable(GLenum cap) 2157 void WebGLRenderingContextBase::enable(GLenum cap)
2158 { 2158 {
2159 if (isContextLost() || !validateCapability("enable", cap)) 2159 if (isContextLost() || !validateCapability("enable", cap))
2160 return; 2160 return;
2161 if (cap == GL_STENCIL_TEST) { 2161 if (cap == GL_STENCIL_TEST) {
2162 m_stencilEnabled = true; 2162 m_stencilEnabled = true;
2163 applyStencilTest(); 2163 applyStencilTest();
(...skipping 1643 matching lines...) Expand 10 before | Expand all | Expand 10 after
3807 m_valuebufferBinding = valuebuffer; 3807 m_valuebufferBinding = valuebuffer;
3808 contextGL()->BindValuebufferCHROMIUM(target, objectOrZero(valuebuffer)); 3808 contextGL()->BindValuebufferCHROMIUM(target, objectOrZero(valuebuffer));
3809 if (valuebuffer) 3809 if (valuebuffer)
3810 valuebuffer->setHasEverBeenBound(); 3810 valuebuffer->setHasEverBeenBound();
3811 } 3811 }
3812 3812
3813 void WebGLRenderingContextBase::subscribeValueCHROMIUM(GLenum target, GLenum sub scription) 3813 void WebGLRenderingContextBase::subscribeValueCHROMIUM(GLenum target, GLenum sub scription)
3814 { 3814 {
3815 if (isContextLost()) 3815 if (isContextLost())
3816 return; 3816 return;
3817 webContext()->subscribeValueCHROMIUM(target, subscription); 3817 contextGL()->SubscribeValueCHROMIUM(target, subscription);
3818 } 3818 }
3819 3819
3820 void WebGLRenderingContextBase::populateSubscribedValuesCHROMIUM(GLenum target) 3820 void WebGLRenderingContextBase::populateSubscribedValuesCHROMIUM(GLenum target)
3821 { 3821 {
3822 if (isContextLost()) 3822 if (isContextLost())
3823 return; 3823 return;
3824 webContext()->populateSubscribedValuesCHROMIUM(target); 3824 contextGL()->PopulateSubscribedValuesCHROMIUM(target);
3825 } 3825 }
3826 3826
3827 void WebGLRenderingContextBase::uniformValuebufferCHROMIUM(const WebGLUniformLoc ation* location, GLenum target, GLenum subscription) 3827 void WebGLRenderingContextBase::uniformValuebufferCHROMIUM(const WebGLUniformLoc ation* location, GLenum target, GLenum subscription)
3828 { 3828 {
3829 if (isContextLost() || !location) 3829 if (isContextLost() || !location)
3830 return; 3830 return;
3831 webContext()->uniformValuebufferCHROMIUM(location->location(), target, subsc ription); 3831 contextGL()->UniformValuebufferCHROMIUM(location->location(), target, subscr iption);
3832 } 3832 }
3833 3833
3834 GLenum WebGLRenderingContextBase::convertTexInternalFormat(GLenum internalformat , GLenum type) 3834 GLenum WebGLRenderingContextBase::convertTexInternalFormat(GLenum internalformat , GLenum type)
3835 { 3835 {
3836 // Convert to sized internal formats that are renderable with GL_CHROMIUM_co lor_buffer_float_rgb(a). 3836 // Convert to sized internal formats that are renderable with GL_CHROMIUM_co lor_buffer_float_rgb(a).
3837 if (type == GL_FLOAT && internalformat == GL_RGBA 3837 if (type == GL_FLOAT && internalformat == GL_RGBA
3838 && extensionsUtil()->isExtensionEnabled("GL_CHROMIUM_color_buffer_float_ rgba")) 3838 && extensionsUtil()->isExtensionEnabled("GL_CHROMIUM_color_buffer_float_ rgba"))
3839 return GL_RGBA32F_EXT; 3839 return GL_RGBA32F_EXT;
3840 if (type == GL_FLOAT && internalformat == GL_RGB 3840 if (type == GL_FLOAT && internalformat == GL_RGB
3841 && extensionsUtil()->isExtensionEnabled("GL_CHROMIUM_color_buffer_float_ rgb")) 3841 && extensionsUtil()->isExtensionEnabled("GL_CHROMIUM_color_buffer_float_ rgb"))
3842 return GL_RGB32F_EXT; 3842 return GL_RGB32F_EXT;
3843 return internalformat; 3843 return internalformat;
3844 } 3844 }
3845 3845
3846 void WebGLRenderingContextBase::texImage2DBase(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLe num type, const void* pixels) 3846 void WebGLRenderingContextBase::texImage2DBase(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLe num type, const void* pixels)
3847 { 3847 {
3848 // All calling functions check isContextLost, so a duplicate check is not ne eded here. 3848 // All calling functions check isContextLost, so a duplicate check is not ne eded here.
3849 webContext()->texImage2D(target, level, convertTexInternalFormat(internalfor mat, type), width, height, border, format, type, pixels); 3849 contextGL()->TexImage2D(target, level, convertTexInternalFormat(internalform at, type), width, height, border, format, type, pixels);
3850 } 3850 }
3851 3851
3852 void WebGLRenderingContextBase::texImage2DImpl(GLenum target, GLint level, GLint internalformat, GLenum format, GLenum type, Image* image, WebGLImageConversion: :ImageHtmlDomSource domSource, bool flipY, bool premultiplyAlpha) 3852 void WebGLRenderingContextBase::texImage2DImpl(GLenum target, GLint level, GLint internalformat, GLenum format, GLenum type, Image* image, WebGLImageConversion: :ImageHtmlDomSource domSource, bool flipY, bool premultiplyAlpha)
3853 { 3853 {
3854 // All calling functions check isContextLost, so a duplicate check is not ne eded here. 3854 // All calling functions check isContextLost, so a duplicate check is not ne eded here.
3855 if (type == GL_UNSIGNED_INT_10F_11F_11F_REV) { 3855 if (type == GL_UNSIGNED_INT_10F_11F_11F_REV) {
3856 // The UNSIGNED_INT_10F_11F_11F_REV type pack/unpack isn't implemented. 3856 // The UNSIGNED_INT_10F_11F_11F_REV type pack/unpack isn't implemented.
3857 type = GL_FLOAT; 3857 type = GL_FLOAT;
3858 } 3858 }
3859 Vector<uint8_t> data; 3859 Vector<uint8_t> data;
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
4057 possibleDirectCopy = Extensions3DUtil::canUseCopyTextureCHROMIUM(target, internalformat, type, level); 4057 possibleDirectCopy = Extensions3DUtil::canUseCopyTextureCHROMIUM(target, internalformat, type, level);
4058 } 4058 }
4059 4059
4060 // if direct copy is not possible, create a temporary texture and then copy from canvas to temporary texture to target texture. 4060 // if direct copy is not possible, create a temporary texture and then copy from canvas to temporary texture to target texture.
4061 if (!possibleDirectCopy) { 4061 if (!possibleDirectCopy) {
4062 targetLevel = 0; 4062 targetLevel = 0;
4063 targetInternalformat = GL_RGBA; 4063 targetInternalformat = GL_RGBA;
4064 targetType = GL_UNSIGNED_BYTE; 4064 targetType = GL_UNSIGNED_BYTE;
4065 targetTexture = webContext()->createTexture(); 4065 targetTexture = webContext()->createTexture();
4066 contextGL()->BindTexture(GL_TEXTURE_2D, targetTexture); 4066 contextGL()->BindTexture(GL_TEXTURE_2D, targetTexture);
4067 webContext()->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEA REST); 4067 contextGL()->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAR EST);
4068 webContext()->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEA REST); 4068 contextGL()->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAR EST);
4069 webContext()->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_T O_EDGE); 4069 contextGL()->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO _EDGE);
4070 webContext()->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_T O_EDGE); 4070 contextGL()->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO _EDGE);
4071 webContext()->texImage2D(GL_TEXTURE_2D, 0, targetInternalformat, canvas- >width(), 4071 contextGL()->TexImage2D(GL_TEXTURE_2D, 0, targetInternalformat, canvas-> width(),
4072 canvas->height(), 0, GL_RGBA, targetType, 0); 4072 canvas->height(), 0, GL_RGBA, targetType, 0);
4073 } 4073 }
4074 4074
4075 if (!canvas->is3D()) { 4075 if (!canvas->is3D()) {
4076 ImageBuffer* buffer = canvas->buffer(); 4076 ImageBuffer* buffer = canvas->buffer();
4077 if (!buffer->copyToPlatformTexture(webContext(), contextGL(), targetText ure, targetInternalformat, targetType, 4077 if (!buffer->copyToPlatformTexture(webContext(), contextGL(), targetText ure, targetInternalformat, targetType,
4078 targetLevel, m_unpackPremultiplyAlpha, m_unpackFlipY)) { 4078 targetLevel, m_unpackPremultiplyAlpha, m_unpackFlipY)) {
4079 ASSERT_NOT_REACHED(); 4079 ASSERT_NOT_REACHED();
4080 } 4080 }
4081 } else { 4081 } else {
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
4264 if (!isWebGL2OrHigher()) { 4264 if (!isWebGL2OrHigher()) {
4265 synthesizeGLError(GL_INVALID_ENUM, "texParameter", "invalid paramete r name"); 4265 synthesizeGLError(GL_INVALID_ENUM, "texParameter", "invalid paramete r name");
4266 return; 4266 return;
4267 } 4267 }
4268 break; 4268 break;
4269 default: 4269 default:
4270 synthesizeGLError(GL_INVALID_ENUM, "texParameter", "invalid parameter na me"); 4270 synthesizeGLError(GL_INVALID_ENUM, "texParameter", "invalid parameter na me");
4271 return; 4271 return;
4272 } 4272 }
4273 if (isFloat) { 4273 if (isFloat) {
4274 webContext()->texParameterf(target, pname, paramf); 4274 contextGL()->TexParameterf(target, pname, paramf);
4275 } else { 4275 } else {
4276 webContext()->texParameteri(target, pname, parami); 4276 contextGL()->TexParameteri(target, pname, parami);
4277 } 4277 }
4278 } 4278 }
4279 4279
4280 void WebGLRenderingContextBase::texParameterf(GLenum target, GLenum pname, GLflo at param) 4280 void WebGLRenderingContextBase::texParameterf(GLenum target, GLenum pname, GLflo at param)
4281 { 4281 {
4282 texParameter(target, pname, param, 0, true); 4282 texParameter(target, pname, param, 0, true);
4283 } 4283 }
4284 4284
4285 void WebGLRenderingContextBase::texParameteri(GLenum target, GLenum pname, GLint param) 4285 void WebGLRenderingContextBase::texParameteri(GLenum target, GLenum pname, GLint param)
4286 { 4286 {
(...skipping 21 matching lines...) Expand all
4308 if (type == GL_UNSIGNED_BYTE && sourceDataFormat == WebGLImageConversion::Da taFormatRGBA8 && format == GL_RGBA && alphaOp == WebGLImageConversion::AlphaDoNo thing && !flipY) { 4308 if (type == GL_UNSIGNED_BYTE && sourceDataFormat == WebGLImageConversion::Da taFormatRGBA8 && format == GL_RGBA && alphaOp == WebGLImageConversion::AlphaDoNo thing && !flipY) {
4309 needConversion = false; 4309 needConversion = false;
4310 } else { 4310 } else {
4311 if (!WebGLImageConversion::packImageData(image, imagePixelData, format, type, flipY, alphaOp, sourceDataFormat, imageExtractor.imageWidth(), imageExtrac tor.imageHeight(), imageExtractor.imageSourceUnpackAlignment(), data)) { 4311 if (!WebGLImageConversion::packImageData(image, imagePixelData, format, type, flipY, alphaOp, sourceDataFormat, imageExtractor.imageWidth(), imageExtrac tor.imageHeight(), imageExtractor.imageSourceUnpackAlignment(), data)) {
4312 synthesizeGLError(GL_INVALID_VALUE, "texSubImage2D", "bad image data "); 4312 synthesizeGLError(GL_INVALID_VALUE, "texSubImage2D", "bad image data ");
4313 return; 4313 return;
4314 } 4314 }
4315 } 4315 }
4316 4316
4317 resetUnpackParameters(); 4317 resetUnpackParameters();
4318 webContext()->texSubImage2D(target, level, xoffset, yoffset, imageExtractor. imageWidth(), imageExtractor.imageHeight(), format, type, needConversion ? data .data() : imagePixelData); 4318 contextGL()->TexSubImage2D(target, level, xoffset, yoffset, imageExtractor.i mageWidth(), imageExtractor.imageHeight(), format, type, needConversion ? data. data() : imagePixelData);
4319 restoreUnpackParameters(); 4319 restoreUnpackParameters();
4320 } 4320 }
4321 4321
4322 void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, 4322 void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
4323 GLsizei width, GLsizei height, 4323 GLsizei width, GLsizei height,
4324 GLenum format, GLenum type, DOMArrayBufferView* pixels) 4324 GLenum format, GLenum type, DOMArrayBufferView* pixels)
4325 { 4325 {
4326 if (isContextLost()) 4326 if (isContextLost())
4327 return; 4327 return;
4328 if (!validateTexture2DBinding("texSubImage2D", target)) 4328 if (!validateTexture2DBinding("texSubImage2D", target))
4329 return; 4329 return;
4330 if (!validateTexFunc("texSubImage2D", TexSubImage, SourceArrayBufferView, ta rget, level, 0, width, height, 1, 0, format, type, xoffset, yoffset, 0)) 4330 if (!validateTexFunc("texSubImage2D", TexSubImage, SourceArrayBufferView, ta rget, level, 0, width, height, 1, 0, format, type, xoffset, yoffset, 0))
4331 return; 4331 return;
4332 if (!validateTexFuncData("texSubImage2D", Tex2D, level, width, height, 1, fo rmat, type, pixels, NullNotAllowed)) 4332 if (!validateTexFuncData("texSubImage2D", Tex2D, level, width, height, 1, fo rmat, type, pixels, NullNotAllowed))
4333 return; 4333 return;
4334 void* data = pixels->baseAddress(); 4334 void* data = pixels->baseAddress();
4335 Vector<uint8_t> tempData; 4335 Vector<uint8_t> tempData;
4336 bool changeUnpackAlignment = false; 4336 bool changeUnpackAlignment = false;
4337 if (data && (m_unpackFlipY || m_unpackPremultiplyAlpha)) { 4337 if (data && (m_unpackFlipY || m_unpackPremultiplyAlpha)) {
4338 if (!WebGLImageConversion::extractTextureData(width, height, format, typ e, 4338 if (!WebGLImageConversion::extractTextureData(width, height, format, typ e,
4339 m_unpackAlignment, m_unpackFlipY, m_unpackPremultiplyAlpha, data, te mpData)) 4339 m_unpackAlignment, m_unpackFlipY, m_unpackPremultiplyAlpha, data, te mpData))
4340 return; 4340 return;
4341 data = tempData.data(); 4341 data = tempData.data();
4342 changeUnpackAlignment = true; 4342 changeUnpackAlignment = true;
4343 } 4343 }
4344 if (changeUnpackAlignment) 4344 if (changeUnpackAlignment)
4345 resetUnpackParameters(); 4345 resetUnpackParameters();
4346 webContext()->texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, data); 4346 contextGL()->TexSubImage2D(target, level, xoffset, yoffset, width, height, f ormat, type, data);
4347 if (changeUnpackAlignment) 4347 if (changeUnpackAlignment)
4348 restoreUnpackParameters(); 4348 restoreUnpackParameters();
4349 } 4349 }
4350 4350
4351 void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, 4351 void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
4352 GLenum format, GLenum type, ImageData* pixels) 4352 GLenum format, GLenum type, ImageData* pixels)
4353 { 4353 {
4354 if (isContextLost()) 4354 if (isContextLost())
4355 return; 4355 return;
4356 if (!pixels) { 4356 if (!pixels) {
(...skipping 18 matching lines...) Expand all
4375 // No conversion is needed if destination format is RGBA and type is USIGNED _BYTE and no Flip or Premultiply operation is required. 4375 // No conversion is needed if destination format is RGBA and type is USIGNED _BYTE and no Flip or Premultiply operation is required.
4376 if (format == GL_RGBA && type == GL_UNSIGNED_BYTE && !m_unpackFlipY && !m_un packPremultiplyAlpha) { 4376 if (format == GL_RGBA && type == GL_UNSIGNED_BYTE && !m_unpackFlipY && !m_un packPremultiplyAlpha) {
4377 needConversion = false; 4377 needConversion = false;
4378 } else { 4378 } else {
4379 if (!WebGLImageConversion::extractImageData(pixels->data()->data(), pixe ls->size(), format, type, m_unpackFlipY, m_unpackPremultiplyAlpha, data)) { 4379 if (!WebGLImageConversion::extractImageData(pixels->data()->data(), pixe ls->size(), format, type, m_unpackFlipY, m_unpackPremultiplyAlpha, data)) {
4380 synthesizeGLError(GL_INVALID_VALUE, "texSubImage2D", "bad image data "); 4380 synthesizeGLError(GL_INVALID_VALUE, "texSubImage2D", "bad image data ");
4381 return; 4381 return;
4382 } 4382 }
4383 } 4383 }
4384 resetUnpackParameters(); 4384 resetUnpackParameters();
4385 webContext()->texSubImage2D(target, level, xoffset, yoffset, pixels->width() , pixels->height(), format, type, needConversion ? data.data() : pixels->data()- >data()); 4385 contextGL()->TexSubImage2D(target, level, xoffset, yoffset, pixels->width(), pixels->height(), format, type, needConversion ? data.data() : pixels->data()-> data());
4386 restoreUnpackParameters(); 4386 restoreUnpackParameters();
4387 } 4387 }
4388 4388
4389 void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, 4389 void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
4390 GLenum format, GLenum type, HTMLImageElement* image, ExceptionState& excepti onState) 4390 GLenum format, GLenum type, HTMLImageElement* image, ExceptionState& excepti onState)
4391 { 4391 {
4392 if (isContextLost()) 4392 if (isContextLost())
4393 return; 4393 return;
4394 if (!validateHTMLImageElement("texSubImage2D", image, exceptionState)) 4394 if (!validateHTMLImageElement("texSubImage2D", image, exceptionState))
4395 return; 4395 return;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
4480 if (format == GL_RGBA && type == GL_UNSIGNED_BYTE) { 4480 if (format == GL_RGBA && type == GL_UNSIGNED_BYTE) {
4481 needConversion = false; 4481 needConversion = false;
4482 } else { 4482 } else {
4483 // In the case of ImageBitmap, we do not need to apply flipY or premulti plyAlpha. 4483 // In the case of ImageBitmap, we do not need to apply flipY or premulti plyAlpha.
4484 if (!WebGLImageConversion::extractImageData(pixelData.get(), bitmap->siz e(), format, type, false, false, data)) { 4484 if (!WebGLImageConversion::extractImageData(pixelData.get(), bitmap->siz e(), format, type, false, false, data)) {
4485 synthesizeGLError(GL_INVALID_VALUE, "texSubImage2D", "bad image data "); 4485 synthesizeGLError(GL_INVALID_VALUE, "texSubImage2D", "bad image data ");
4486 return; 4486 return;
4487 } 4487 }
4488 } 4488 }
4489 resetUnpackParameters(); 4489 resetUnpackParameters();
4490 webContext()->texSubImage2D(target, level, xoffset, yoffset, bitmap->width() , bitmap->height(), format, type, needConversion ? data.data() : pixelData.get() ); 4490 contextGL()->TexSubImage2D(target, level, xoffset, yoffset, bitmap->width(), bitmap->height(), format, type, needConversion ? data.data() : pixelData.get()) ;
4491 restoreUnpackParameters(); 4491 restoreUnpackParameters();
4492 } 4492 }
4493 4493
4494 void WebGLRenderingContextBase::uniform1f(const WebGLUniformLocation* location, GLfloat x) 4494 void WebGLRenderingContextBase::uniform1f(const WebGLUniformLocation* location, GLfloat x)
4495 { 4495 {
4496 if (isContextLost() || !location) 4496 if (isContextLost() || !location)
4497 return; 4497 return;
4498 4498
4499 if (location->program() != m_currentProgram) { 4499 if (location->program() != m_currentProgram) {
4500 synthesizeGLError(GL_INVALID_OPERATION, "uniform1f", "location not for c urrent program"); 4500 synthesizeGLError(GL_INVALID_OPERATION, "uniform1f", "location not for c urrent program");
4501 return; 4501 return;
4502 } 4502 }
4503 4503
4504 webContext()->uniform1f(location->location(), x); 4504 contextGL()->Uniform1f(location->location(), x);
4505 } 4505 }
4506 4506
4507 void WebGLRenderingContextBase::uniform1fv(const WebGLUniformLocation* location, const FlexibleFloat32ArrayView& v) 4507 void WebGLRenderingContextBase::uniform1fv(const WebGLUniformLocation* location, const FlexibleFloat32ArrayView& v)
4508 { 4508 {
4509 if (isContextLost() || !validateUniformParameters<WTF::Float32Array>("unifor m1fv", location, v, 1)) 4509 if (isContextLost() || !validateUniformParameters<WTF::Float32Array>("unifor m1fv", location, v, 1))
4510 return; 4510 return;
4511 4511
4512 webContext()->uniform1fv(location->location(), v.length(), v.dataMaybeOnStac k()); 4512 contextGL()->Uniform1fv(location->location(), v.length(), v.dataMaybeOnStack ());
4513 } 4513 }
4514 4514
4515 void WebGLRenderingContextBase::uniform1fv(const WebGLUniformLocation* location, Vector<GLfloat>& v) 4515 void WebGLRenderingContextBase::uniform1fv(const WebGLUniformLocation* location, Vector<GLfloat>& v)
4516 { 4516 {
4517 if (isContextLost() || !validateUniformParameters("uniform1fv", location, v. data(), v.size(), 1)) 4517 if (isContextLost() || !validateUniformParameters("uniform1fv", location, v. data(), v.size(), 1))
4518 return; 4518 return;
4519 4519
4520 webContext()->uniform1fv(location->location(), v.size(), v.data()); 4520 contextGL()->Uniform1fv(location->location(), v.size(), v.data());
4521 } 4521 }
4522 4522
4523 void WebGLRenderingContextBase::uniform1i(const WebGLUniformLocation* location, GLint x) 4523 void WebGLRenderingContextBase::uniform1i(const WebGLUniformLocation* location, GLint x)
4524 { 4524 {
4525 if (isContextLost() || !location) 4525 if (isContextLost() || !location)
4526 return; 4526 return;
4527 4527
4528 if (location->program() != m_currentProgram) { 4528 if (location->program() != m_currentProgram) {
4529 synthesizeGLError(GL_INVALID_OPERATION, "uniform1i", "location not for c urrent program"); 4529 synthesizeGLError(GL_INVALID_OPERATION, "uniform1i", "location not for c urrent program");
4530 return; 4530 return;
4531 } 4531 }
4532 4532
4533 webContext()->uniform1i(location->location(), x); 4533 contextGL()->Uniform1i(location->location(), x);
4534 } 4534 }
4535 4535
4536 void WebGLRenderingContextBase::uniform1iv(const WebGLUniformLocation* location, const FlexibleInt32ArrayView& v) 4536 void WebGLRenderingContextBase::uniform1iv(const WebGLUniformLocation* location, const FlexibleInt32ArrayView& v)
4537 { 4537 {
4538 if (isContextLost() || !validateUniformParameters<WTF::Int32Array>("uniform1 iv", location, v, 1)) 4538 if (isContextLost() || !validateUniformParameters<WTF::Int32Array>("uniform1 iv", location, v, 1))
4539 return; 4539 return;
4540 4540
4541 webContext()->uniform1iv(location->location(), v.length(), v.dataMaybeOnStac k()); 4541 contextGL()->Uniform1iv(location->location(), v.length(), v.dataMaybeOnStack ());
4542 } 4542 }
4543 4543
4544 void WebGLRenderingContextBase::uniform1iv(const WebGLUniformLocation* location, Vector<GLint>& v) 4544 void WebGLRenderingContextBase::uniform1iv(const WebGLUniformLocation* location, Vector<GLint>& v)
4545 { 4545 {
4546 if (isContextLost() || !validateUniformParameters("uniform1iv", location, v. data(), v.size(), 1)) 4546 if (isContextLost() || !validateUniformParameters("uniform1iv", location, v. data(), v.size(), 1))
4547 return; 4547 return;
4548 4548
4549 webContext()->uniform1iv(location->location(), v.size(), v.data()); 4549 contextGL()->Uniform1iv(location->location(), v.size(), v.data());
4550 } 4550 }
4551 4551
4552 void WebGLRenderingContextBase::uniform2f(const WebGLUniformLocation* location, GLfloat x, GLfloat y) 4552 void WebGLRenderingContextBase::uniform2f(const WebGLUniformLocation* location, GLfloat x, GLfloat y)
4553 { 4553 {
4554 if (isContextLost() || !location) 4554 if (isContextLost() || !location)
4555 return; 4555 return;
4556 4556
4557 if (location->program() != m_currentProgram) { 4557 if (location->program() != m_currentProgram) {
4558 synthesizeGLError(GL_INVALID_OPERATION, "uniform2f", "location not for c urrent program"); 4558 synthesizeGLError(GL_INVALID_OPERATION, "uniform2f", "location not for c urrent program");
4559 return; 4559 return;
4560 } 4560 }
4561 4561
4562 webContext()->uniform2f(location->location(), x, y); 4562 contextGL()->Uniform2f(location->location(), x, y);
4563 } 4563 }
4564 4564
4565 void WebGLRenderingContextBase::uniform2fv(const WebGLUniformLocation* location, const FlexibleFloat32ArrayView& v) 4565 void WebGLRenderingContextBase::uniform2fv(const WebGLUniformLocation* location, const FlexibleFloat32ArrayView& v)
4566 { 4566 {
4567 if (isContextLost() || !validateUniformParameters<WTF::Float32Array>("unifor m2fv", location, v, 2)) 4567 if (isContextLost() || !validateUniformParameters<WTF::Float32Array>("unifor m2fv", location, v, 2))
4568 return; 4568 return;
4569 4569
4570 webContext()->uniform2fv(location->location(), v.length() >> 1, v.dataMaybeO nStack()); 4570 contextGL()->Uniform2fv(location->location(), v.length() >> 1, v.dataMaybeOn Stack());
4571 } 4571 }
4572 4572
4573 void WebGLRenderingContextBase::uniform2fv(const WebGLUniformLocation* location, Vector<GLfloat>& v) 4573 void WebGLRenderingContextBase::uniform2fv(const WebGLUniformLocation* location, Vector<GLfloat>& v)
4574 { 4574 {
4575 if (isContextLost() || !validateUniformParameters("uniform2fv", location, v. data(), v.size(), 2)) 4575 if (isContextLost() || !validateUniformParameters("uniform2fv", location, v. data(), v.size(), 2))
4576 return; 4576 return;
4577 4577
4578 webContext()->uniform2fv(location->location(), v.size() >> 1, v.data()); 4578 contextGL()->Uniform2fv(location->location(), v.size() >> 1, v.data());
4579 } 4579 }
4580 4580
4581 void WebGLRenderingContextBase::uniform2i(const WebGLUniformLocation* location, GLint x, GLint y) 4581 void WebGLRenderingContextBase::uniform2i(const WebGLUniformLocation* location, GLint x, GLint y)
4582 { 4582 {
4583 if (isContextLost() || !location) 4583 if (isContextLost() || !location)
4584 return; 4584 return;
4585 4585
4586 if (location->program() != m_currentProgram) { 4586 if (location->program() != m_currentProgram) {
4587 synthesizeGLError(GL_INVALID_OPERATION, "uniform2i", "location not for c urrent program"); 4587 synthesizeGLError(GL_INVALID_OPERATION, "uniform2i", "location not for c urrent program");
4588 return; 4588 return;
4589 } 4589 }
4590 4590
4591 webContext()->uniform2i(location->location(), x, y); 4591 contextGL()->Uniform2i(location->location(), x, y);
4592 } 4592 }
4593 4593
4594 void WebGLRenderingContextBase::uniform2iv(const WebGLUniformLocation* location, const FlexibleInt32ArrayView& v) 4594 void WebGLRenderingContextBase::uniform2iv(const WebGLUniformLocation* location, const FlexibleInt32ArrayView& v)
4595 { 4595 {
4596 if (isContextLost() || !validateUniformParameters<WTF::Int32Array>("uniform2 iv", location, v, 2)) 4596 if (isContextLost() || !validateUniformParameters<WTF::Int32Array>("uniform2 iv", location, v, 2))
4597 return; 4597 return;
4598 4598
4599 webContext()->uniform2iv(location->location(), v.length() >> 1, v.dataMaybeO nStack()); 4599 contextGL()->Uniform2iv(location->location(), v.length() >> 1, v.dataMaybeOn Stack());
4600 } 4600 }
4601 4601
4602 void WebGLRenderingContextBase::uniform2iv(const WebGLUniformLocation* location, Vector<GLint>& v) 4602 void WebGLRenderingContextBase::uniform2iv(const WebGLUniformLocation* location, Vector<GLint>& v)
4603 { 4603 {
4604 if (isContextLost() || !validateUniformParameters("uniform2iv", location, v. data(), v.size(), 2)) 4604 if (isContextLost() || !validateUniformParameters("uniform2iv", location, v. data(), v.size(), 2))
4605 return; 4605 return;
4606 4606
4607 webContext()->uniform2iv(location->location(), v.size() >> 1, v.data()); 4607 contextGL()->Uniform2iv(location->location(), v.size() >> 1, v.data());
4608 } 4608 }
4609 4609
4610 void WebGLRenderingContextBase::uniform3f(const WebGLUniformLocation* location, GLfloat x, GLfloat y, GLfloat z) 4610 void WebGLRenderingContextBase::uniform3f(const WebGLUniformLocation* location, GLfloat x, GLfloat y, GLfloat z)
4611 { 4611 {
4612 if (isContextLost() || !location) 4612 if (isContextLost() || !location)
4613 return; 4613 return;
4614 4614
4615 if (location->program() != m_currentProgram) { 4615 if (location->program() != m_currentProgram) {
4616 synthesizeGLError(GL_INVALID_OPERATION, "uniform3f", "location not for c urrent program"); 4616 synthesizeGLError(GL_INVALID_OPERATION, "uniform3f", "location not for c urrent program");
4617 return; 4617 return;
4618 } 4618 }
4619 4619
4620 webContext()->uniform3f(location->location(), x, y, z); 4620 contextGL()->Uniform3f(location->location(), x, y, z);
4621 } 4621 }
4622 4622
4623 void WebGLRenderingContextBase::uniform3fv(const WebGLUniformLocation* location, const FlexibleFloat32ArrayView& v) 4623 void WebGLRenderingContextBase::uniform3fv(const WebGLUniformLocation* location, const FlexibleFloat32ArrayView& v)
4624 { 4624 {
4625 if (isContextLost() || !validateUniformParameters<WTF::Float32Array>("unifor m3fv", location, v, 3)) 4625 if (isContextLost() || !validateUniformParameters<WTF::Float32Array>("unifor m3fv", location, v, 3))
4626 return; 4626 return;
4627 4627
4628 webContext()->uniform3fv(location->location(), v.length() / 3, v.dataMaybeOn Stack()); 4628 contextGL()->Uniform3fv(location->location(), v.length() / 3, v.dataMaybeOnS tack());
4629 } 4629 }
4630 4630
4631 void WebGLRenderingContextBase::uniform3fv(const WebGLUniformLocation* location, Vector<GLfloat>& v) 4631 void WebGLRenderingContextBase::uniform3fv(const WebGLUniformLocation* location, Vector<GLfloat>& v)
4632 { 4632 {
4633 if (isContextLost() || !validateUniformParameters("uniform3fv", location, v. data(), v.size(), 3)) 4633 if (isContextLost() || !validateUniformParameters("uniform3fv", location, v. data(), v.size(), 3))
4634 return; 4634 return;
4635 4635
4636 webContext()->uniform3fv(location->location(), v.size() / 3, v.data()); 4636 contextGL()->Uniform3fv(location->location(), v.size() / 3, v.data());
4637 } 4637 }
4638 4638
4639 void WebGLRenderingContextBase::uniform3i(const WebGLUniformLocation* location, GLint x, GLint y, GLint z) 4639 void WebGLRenderingContextBase::uniform3i(const WebGLUniformLocation* location, GLint x, GLint y, GLint z)
4640 { 4640 {
4641 if (isContextLost() || !location) 4641 if (isContextLost() || !location)
4642 return; 4642 return;
4643 4643
4644 if (location->program() != m_currentProgram) { 4644 if (location->program() != m_currentProgram) {
4645 synthesizeGLError(GL_INVALID_OPERATION, "uniform3i", "location not for c urrent program"); 4645 synthesizeGLError(GL_INVALID_OPERATION, "uniform3i", "location not for c urrent program");
4646 return; 4646 return;
4647 } 4647 }
4648 4648
4649 webContext()->uniform3i(location->location(), x, y, z); 4649 contextGL()->Uniform3i(location->location(), x, y, z);
4650 } 4650 }
4651 4651
4652 void WebGLRenderingContextBase::uniform3iv(const WebGLUniformLocation* location, const FlexibleInt32ArrayView& v) 4652 void WebGLRenderingContextBase::uniform3iv(const WebGLUniformLocation* location, const FlexibleInt32ArrayView& v)
4653 { 4653 {
4654 if (isContextLost() || !validateUniformParameters<WTF::Int32Array>("uniform3 iv", location, v, 3)) 4654 if (isContextLost() || !validateUniformParameters<WTF::Int32Array>("uniform3 iv", location, v, 3))
4655 return; 4655 return;
4656 4656
4657 webContext()->uniform3iv(location->location(), v.length() / 3, v.dataMaybeOn Stack()); 4657 contextGL()->Uniform3iv(location->location(), v.length() / 3, v.dataMaybeOnS tack());
4658 } 4658 }
4659 4659
4660 void WebGLRenderingContextBase::uniform3iv(const WebGLUniformLocation* location, Vector<GLint>& v) 4660 void WebGLRenderingContextBase::uniform3iv(const WebGLUniformLocation* location, Vector<GLint>& v)
4661 { 4661 {
4662 if (isContextLost() || !validateUniformParameters("uniform3iv", location, v. data(), v.size(), 3)) 4662 if (isContextLost() || !validateUniformParameters("uniform3iv", location, v. data(), v.size(), 3))
4663 return; 4663 return;
4664 4664
4665 webContext()->uniform3iv(location->location(), v.size() / 3, v.data()); 4665 contextGL()->Uniform3iv(location->location(), v.size() / 3, v.data());
4666 } 4666 }
4667 4667
4668 void WebGLRenderingContextBase::uniform4f(const WebGLUniformLocation* location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) 4668 void WebGLRenderingContextBase::uniform4f(const WebGLUniformLocation* location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
4669 { 4669 {
4670 if (isContextLost() || !location) 4670 if (isContextLost() || !location)
4671 return; 4671 return;
4672 4672
4673 if (location->program() != m_currentProgram) { 4673 if (location->program() != m_currentProgram) {
4674 synthesizeGLError(GL_INVALID_OPERATION, "uniform4f", "location not for c urrent program"); 4674 synthesizeGLError(GL_INVALID_OPERATION, "uniform4f", "location not for c urrent program");
4675 return; 4675 return;
4676 } 4676 }
4677 4677
4678 webContext()->uniform4f(location->location(), x, y, z, w); 4678 contextGL()->Uniform4f(location->location(), x, y, z, w);
4679 } 4679 }
4680 4680
4681 void WebGLRenderingContextBase::uniform4fv(const WebGLUniformLocation* location, const FlexibleFloat32ArrayView& v) 4681 void WebGLRenderingContextBase::uniform4fv(const WebGLUniformLocation* location, const FlexibleFloat32ArrayView& v)
4682 { 4682 {
4683 if (isContextLost() || !validateUniformParameters<WTF::Float32Array>("unifor m4fv", location, v, 4)) 4683 if (isContextLost() || !validateUniformParameters<WTF::Float32Array>("unifor m4fv", location, v, 4))
4684 return; 4684 return;
4685 4685
4686 webContext()->uniform4fv(location->location(), v.length() >> 2, v.dataMaybeO nStack()); 4686 contextGL()->Uniform4fv(location->location(), v.length() >> 2, v.dataMaybeOn Stack());
4687 } 4687 }
4688 4688
4689 void WebGLRenderingContextBase::uniform4fv(const WebGLUniformLocation* location, Vector<GLfloat>& v) 4689 void WebGLRenderingContextBase::uniform4fv(const WebGLUniformLocation* location, Vector<GLfloat>& v)
4690 { 4690 {
4691 if (isContextLost() || !validateUniformParameters("uniform4fv", location, v. data(), v.size(), 4)) 4691 if (isContextLost() || !validateUniformParameters("uniform4fv", location, v. data(), v.size(), 4))
4692 return; 4692 return;
4693 4693
4694 webContext()->uniform4fv(location->location(), v.size() >> 2, v.data()); 4694 contextGL()->Uniform4fv(location->location(), v.size() >> 2, v.data());
4695 } 4695 }
4696 4696
4697 void WebGLRenderingContextBase::uniform4i(const WebGLUniformLocation* location, GLint x, GLint y, GLint z, GLint w) 4697 void WebGLRenderingContextBase::uniform4i(const WebGLUniformLocation* location, GLint x, GLint y, GLint z, GLint w)
4698 { 4698 {
4699 if (isContextLost() || !location) 4699 if (isContextLost() || !location)
4700 return; 4700 return;
4701 4701
4702 if (location->program() != m_currentProgram) { 4702 if (location->program() != m_currentProgram) {
4703 synthesizeGLError(GL_INVALID_OPERATION, "uniform4i", "location not for c urrent program"); 4703 synthesizeGLError(GL_INVALID_OPERATION, "uniform4i", "location not for c urrent program");
4704 return; 4704 return;
4705 } 4705 }
4706 4706
4707 webContext()->uniform4i(location->location(), x, y, z, w); 4707 contextGL()->Uniform4i(location->location(), x, y, z, w);
4708 } 4708 }
4709 4709
4710 void WebGLRenderingContextBase::uniform4iv(const WebGLUniformLocation* location, const FlexibleInt32ArrayView& v) 4710 void WebGLRenderingContextBase::uniform4iv(const WebGLUniformLocation* location, const FlexibleInt32ArrayView& v)
4711 { 4711 {
4712 if (isContextLost() || !validateUniformParameters<WTF::Int32Array>("uniform4 iv", location, v, 4)) 4712 if (isContextLost() || !validateUniformParameters<WTF::Int32Array>("uniform4 iv", location, v, 4))
4713 return; 4713 return;
4714 4714
4715 webContext()->uniform4iv(location->location(), v.length() >> 2, v.dataMaybeO nStack()); 4715 contextGL()->Uniform4iv(location->location(), v.length() >> 2, v.dataMaybeOn Stack());
4716 } 4716 }
4717 4717
4718 void WebGLRenderingContextBase::uniform4iv(const WebGLUniformLocation* location, Vector<GLint>& v) 4718 void WebGLRenderingContextBase::uniform4iv(const WebGLUniformLocation* location, Vector<GLint>& v)
4719 { 4719 {
4720 if (isContextLost() || !validateUniformParameters("uniform4iv", location, v. data(), v.size(), 4)) 4720 if (isContextLost() || !validateUniformParameters("uniform4iv", location, v. data(), v.size(), 4))
4721 return; 4721 return;
4722 4722
4723 webContext()->uniform4iv(location->location(), v.size() >> 2, v.data()); 4723 contextGL()->Uniform4iv(location->location(), v.size() >> 2, v.data());
4724 } 4724 }
4725 4725
4726 void WebGLRenderingContextBase::uniformMatrix2fv(const WebGLUniformLocation* loc ation, GLboolean transpose, DOMFloat32Array* v) 4726 void WebGLRenderingContextBase::uniformMatrix2fv(const WebGLUniformLocation* loc ation, GLboolean transpose, DOMFloat32Array* v)
4727 { 4727 {
4728 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2fv", location, transpose, v, 4)) 4728 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2fv", location, transpose, v, 4))
4729 return; 4729 return;
4730 webContext()->uniformMatrix2fv(location->location(), v->length() >> 2, trans pose, v->data()); 4730 contextGL()->UniformMatrix2fv(location->location(), v->length() >> 2, transp ose, v->data());
4731 } 4731 }
4732 4732
4733 void WebGLRenderingContextBase::uniformMatrix2fv(const WebGLUniformLocation* loc ation, GLboolean transpose, Vector<GLfloat>& v) 4733 void WebGLRenderingContextBase::uniformMatrix2fv(const WebGLUniformLocation* loc ation, GLboolean transpose, Vector<GLfloat>& v)
4734 { 4734 {
4735 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2fv", location, transpose, v.data(), v.size(), 4)) 4735 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix2fv", location, transpose, v.data(), v.size(), 4))
4736 return; 4736 return;
4737 webContext()->uniformMatrix2fv(location->location(), v.size() >> 2, transpos e, v.data()); 4737 contextGL()->UniformMatrix2fv(location->location(), v.size() >> 2, transpose , v.data());
4738 } 4738 }
4739 4739
4740 void WebGLRenderingContextBase::uniformMatrix3fv(const WebGLUniformLocation* loc ation, GLboolean transpose, DOMFloat32Array* v) 4740 void WebGLRenderingContextBase::uniformMatrix3fv(const WebGLUniformLocation* loc ation, GLboolean transpose, DOMFloat32Array* v)
4741 { 4741 {
4742 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3fv", location, transpose, v, 9)) 4742 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3fv", location, transpose, v, 9))
4743 return; 4743 return;
4744 webContext()->uniformMatrix3fv(location->location(), v->length() / 9, transp ose, v->data()); 4744 contextGL()->UniformMatrix3fv(location->location(), v->length() / 9, transpo se, v->data());
4745 } 4745 }
4746 4746
4747 void WebGLRenderingContextBase::uniformMatrix3fv(const WebGLUniformLocation* loc ation, GLboolean transpose, Vector<GLfloat>& v) 4747 void WebGLRenderingContextBase::uniformMatrix3fv(const WebGLUniformLocation* loc ation, GLboolean transpose, Vector<GLfloat>& v)
4748 { 4748 {
4749 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3fv", location, transpose, v.data(), v.size(), 9)) 4749 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix3fv", location, transpose, v.data(), v.size(), 9))
4750 return; 4750 return;
4751 webContext()->uniformMatrix3fv(location->location(), v.size() / 9, transpose , v.data()); 4751 contextGL()->UniformMatrix3fv(location->location(), v.size() / 9, transpose, v.data());
4752 } 4752 }
4753 4753
4754 void WebGLRenderingContextBase::uniformMatrix4fv(const WebGLUniformLocation* loc ation, GLboolean transpose, DOMFloat32Array* v) 4754 void WebGLRenderingContextBase::uniformMatrix4fv(const WebGLUniformLocation* loc ation, GLboolean transpose, DOMFloat32Array* v)
4755 { 4755 {
4756 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4fv", location, transpose, v, 16)) 4756 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4fv", location, transpose, v, 16))
4757 return; 4757 return;
4758 webContext()->uniformMatrix4fv(location->location(), v->length() >> 4, trans pose, v->data()); 4758 contextGL()->UniformMatrix4fv(location->location(), v->length() >> 4, transp ose, v->data());
4759 } 4759 }
4760 4760
4761 void WebGLRenderingContextBase::uniformMatrix4fv(const WebGLUniformLocation* loc ation, GLboolean transpose, Vector<GLfloat>& v) 4761 void WebGLRenderingContextBase::uniformMatrix4fv(const WebGLUniformLocation* loc ation, GLboolean transpose, Vector<GLfloat>& v)
4762 { 4762 {
4763 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4fv", location, transpose, v.data(), v.size(), 16)) 4763 if (isContextLost() || !validateUniformMatrixParameters("uniformMatrix4fv", location, transpose, v.data(), v.size(), 16))
4764 return; 4764 return;
4765 webContext()->uniformMatrix4fv(location->location(), v.size() >> 4, transpos e, v.data()); 4765 contextGL()->UniformMatrix4fv(location->location(), v.size() >> 4, transpose , v.data());
4766 } 4766 }
4767 4767
4768 void WebGLRenderingContextBase::useProgram(ScriptState* scriptState, WebGLProgra m* program) 4768 void WebGLRenderingContextBase::useProgram(ScriptState* scriptState, WebGLProgra m* program)
4769 { 4769 {
4770 bool deleted; 4770 bool deleted;
4771 if (!checkObjectToBeBound("useProgram", program, deleted)) 4771 if (!checkObjectToBeBound("useProgram", program, deleted))
4772 return; 4772 return;
4773 if (deleted) 4773 if (deleted)
4774 program = 0; 4774 program = 0;
4775 if (program && !program->linkStatus()) { 4775 if (program && !program->linkStatus()) {
4776 synthesizeGLError(GL_INVALID_OPERATION, "useProgram", "program not valid "); 4776 synthesizeGLError(GL_INVALID_OPERATION, "useProgram", "program not valid ");
4777 return; 4777 return;
4778 } 4778 }
4779 4779
4780 if (transformFeedbackActive() && !transformFeedbackPaused()) { 4780 if (transformFeedbackActive() && !transformFeedbackPaused()) {
4781 synthesizeGLError(GL_INVALID_OPERATION, "useProgram", "transform feedbac k is active and not paused"); 4781 synthesizeGLError(GL_INVALID_OPERATION, "useProgram", "transform feedbac k is active and not paused");
4782 return; 4782 return;
4783 } 4783 }
4784 4784
4785 if (m_currentProgram != program) { 4785 if (m_currentProgram != program) {
4786 if (m_currentProgram) 4786 if (m_currentProgram)
4787 m_currentProgram->onDetached(webContext()); 4787 m_currentProgram->onDetached(webContext(), contextGL());
4788 m_currentProgram = program; 4788 m_currentProgram = program;
4789 webContext()->useProgram(objectOrZero(program)); 4789 contextGL()->UseProgram(objectOrZero(program));
4790 if (program) 4790 if (program)
4791 program->onAttached(); 4791 program->onAttached();
4792 preserveObjectWrapper(scriptState, this, "program", 0, program); 4792 preserveObjectWrapper(scriptState, this, "program", 0, program);
4793 } 4793 }
4794 } 4794 }
4795 4795
4796 void WebGLRenderingContextBase::validateProgram(WebGLProgram* program) 4796 void WebGLRenderingContextBase::validateProgram(WebGLProgram* program)
4797 { 4797 {
4798 if (isContextLost() || !validateWebGLObject("validateProgram", program)) 4798 if (isContextLost() || !validateWebGLObject("validateProgram", program))
4799 return; 4799 return;
4800 webContext()->validateProgram(objectOrZero(program)); 4800 contextGL()->ValidateProgram(objectOrZero(program));
4801 } 4801 }
4802 4802
4803 void WebGLRenderingContextBase::setVertexAttribType(GLuint index, VertexAttribVa lueType type) 4803 void WebGLRenderingContextBase::setVertexAttribType(GLuint index, VertexAttribVa lueType type)
4804 { 4804 {
4805 if (index < m_maxVertexAttribs) 4805 if (index < m_maxVertexAttribs)
4806 m_vertexAttribType[index] = type; 4806 m_vertexAttribType[index] = type;
4807 } 4807 }
4808 4808
4809 void WebGLRenderingContextBase::vertexAttrib1f(GLuint index, GLfloat v0) 4809 void WebGLRenderingContextBase::vertexAttrib1f(GLuint index, GLfloat v0)
4810 { 4810 {
4811 if (isContextLost()) 4811 if (isContextLost())
4812 return; 4812 return;
4813 webContext()->vertexAttrib1f(index, v0); 4813 contextGL()->VertexAttrib1f(index, v0);
4814 setVertexAttribType(index, Float32ArrayType); 4814 setVertexAttribType(index, Float32ArrayType);
4815 } 4815 }
4816 4816
4817 void WebGLRenderingContextBase::vertexAttrib1fv(GLuint index, const DOMFloat32Ar ray* v) 4817 void WebGLRenderingContextBase::vertexAttrib1fv(GLuint index, const DOMFloat32Ar ray* v)
4818 { 4818 {
4819 if (isContextLost()) 4819 if (isContextLost())
4820 return; 4820 return;
4821 if (!v || v->length() < 1) { 4821 if (!v || v->length() < 1) {
4822 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib1fv", "invalid array"); 4822 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib1fv", "invalid array");
4823 return; 4823 return;
4824 } 4824 }
4825 webContext()->vertexAttrib1fv(index, v->data()); 4825 contextGL()->VertexAttrib1fv(index, v->data());
4826 setVertexAttribType(index, Float32ArrayType); 4826 setVertexAttribType(index, Float32ArrayType);
4827 } 4827 }
4828 4828
4829 void WebGLRenderingContextBase::vertexAttrib1fv(GLuint index, const Vector<GLflo at>& v) 4829 void WebGLRenderingContextBase::vertexAttrib1fv(GLuint index, const Vector<GLflo at>& v)
4830 { 4830 {
4831 if (isContextLost()) 4831 if (isContextLost())
4832 return; 4832 return;
4833 if (v.size() < 1) { 4833 if (v.size() < 1) {
4834 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib1fv", "invalid array"); 4834 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib1fv", "invalid array");
4835 return; 4835 return;
4836 } 4836 }
4837 webContext()->vertexAttrib1fv(index, v.data()); 4837 contextGL()->VertexAttrib1fv(index, v.data());
4838 setVertexAttribType(index, Float32ArrayType); 4838 setVertexAttribType(index, Float32ArrayType);
4839 } 4839 }
4840 4840
4841 void WebGLRenderingContextBase::vertexAttrib2f(GLuint index, GLfloat v0, GLfloat v1) 4841 void WebGLRenderingContextBase::vertexAttrib2f(GLuint index, GLfloat v0, GLfloat v1)
4842 { 4842 {
4843 if (isContextLost()) 4843 if (isContextLost())
4844 return; 4844 return;
4845 webContext()->vertexAttrib2f(index, v0, v1); 4845 contextGL()->VertexAttrib2f(index, v0, v1);
4846 setVertexAttribType(index, Float32ArrayType); 4846 setVertexAttribType(index, Float32ArrayType);
4847 } 4847 }
4848 4848
4849 void WebGLRenderingContextBase::vertexAttrib2fv(GLuint index, const DOMFloat32Ar ray* v) 4849 void WebGLRenderingContextBase::vertexAttrib2fv(GLuint index, const DOMFloat32Ar ray* v)
4850 { 4850 {
4851 if (isContextLost()) 4851 if (isContextLost())
4852 return; 4852 return;
4853 if (!v || v->length() < 2) { 4853 if (!v || v->length() < 2) {
4854 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib2fv", "invalid array"); 4854 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib2fv", "invalid array");
4855 return; 4855 return;
4856 } 4856 }
4857 webContext()->vertexAttrib2fv(index, v->data()); 4857 contextGL()->VertexAttrib2fv(index, v->data());
4858 setVertexAttribType(index, Float32ArrayType); 4858 setVertexAttribType(index, Float32ArrayType);
4859 } 4859 }
4860 4860
4861 void WebGLRenderingContextBase::vertexAttrib2fv(GLuint index, const Vector<GLflo at>& v) 4861 void WebGLRenderingContextBase::vertexAttrib2fv(GLuint index, const Vector<GLflo at>& v)
4862 { 4862 {
4863 if (isContextLost()) 4863 if (isContextLost())
4864 return; 4864 return;
4865 if (v.size() < 2) { 4865 if (v.size() < 2) {
4866 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib2fv", "invalid array"); 4866 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib2fv", "invalid array");
4867 return; 4867 return;
4868 } 4868 }
4869 webContext()->vertexAttrib2fv(index, v.data()); 4869 contextGL()->VertexAttrib2fv(index, v.data());
4870 setVertexAttribType(index, Float32ArrayType); 4870 setVertexAttribType(index, Float32ArrayType);
4871 } 4871 }
4872 4872
4873 void WebGLRenderingContextBase::vertexAttrib3f(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2) 4873 void WebGLRenderingContextBase::vertexAttrib3f(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2)
4874 { 4874 {
4875 if (isContextLost()) 4875 if (isContextLost())
4876 return; 4876 return;
4877 webContext()->vertexAttrib3f(index, v0, v1, v2); 4877 contextGL()->VertexAttrib3f(index, v0, v1, v2);
4878 setVertexAttribType(index, Float32ArrayType); 4878 setVertexAttribType(index, Float32ArrayType);
4879 } 4879 }
4880 4880
4881 void WebGLRenderingContextBase::vertexAttrib3fv(GLuint index, const DOMFloat32Ar ray* v) 4881 void WebGLRenderingContextBase::vertexAttrib3fv(GLuint index, const DOMFloat32Ar ray* v)
4882 { 4882 {
4883 if (isContextLost()) 4883 if (isContextLost())
4884 return; 4884 return;
4885 if (!v || v->length() < 3) { 4885 if (!v || v->length() < 3) {
4886 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib3fv", "invalid array"); 4886 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib3fv", "invalid array");
4887 return; 4887 return;
4888 } 4888 }
4889 webContext()->vertexAttrib3fv(index, v->data()); 4889 contextGL()->VertexAttrib3fv(index, v->data());
4890 setVertexAttribType(index, Float32ArrayType); 4890 setVertexAttribType(index, Float32ArrayType);
4891 } 4891 }
4892 4892
4893 void WebGLRenderingContextBase::vertexAttrib3fv(GLuint index, const Vector<GLflo at>& v) 4893 void WebGLRenderingContextBase::vertexAttrib3fv(GLuint index, const Vector<GLflo at>& v)
4894 { 4894 {
4895 if (isContextLost()) 4895 if (isContextLost())
4896 return; 4896 return;
4897 if (v.size() < 3) { 4897 if (v.size() < 3) {
4898 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib3fv", "invalid array"); 4898 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib3fv", "invalid array");
4899 return; 4899 return;
4900 } 4900 }
4901 webContext()->vertexAttrib3fv(index, v.data()); 4901 contextGL()->VertexAttrib3fv(index, v.data());
4902 setVertexAttribType(index, Float32ArrayType); 4902 setVertexAttribType(index, Float32ArrayType);
4903 } 4903 }
4904 4904
4905 void WebGLRenderingContextBase::vertexAttrib4f(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) 4905 void WebGLRenderingContextBase::vertexAttrib4f(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
4906 { 4906 {
4907 if (isContextLost()) 4907 if (isContextLost())
4908 return; 4908 return;
4909 webContext()->vertexAttrib4f(index, v0, v1, v2, v3); 4909 contextGL()->VertexAttrib4f(index, v0, v1, v2, v3);
4910 setVertexAttribType(index, Float32ArrayType); 4910 setVertexAttribType(index, Float32ArrayType);
4911 } 4911 }
4912 4912
4913 void WebGLRenderingContextBase::vertexAttrib4fv(GLuint index, const DOMFloat32Ar ray* v) 4913 void WebGLRenderingContextBase::vertexAttrib4fv(GLuint index, const DOMFloat32Ar ray* v)
4914 { 4914 {
4915 if (isContextLost()) 4915 if (isContextLost())
4916 return; 4916 return;
4917 if (!v || v->length() < 4) { 4917 if (!v || v->length() < 4) {
4918 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib4fv", "invalid array"); 4918 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib4fv", "invalid array");
4919 return; 4919 return;
4920 } 4920 }
4921 webContext()->vertexAttrib4fv(index, v->data()); 4921 contextGL()->VertexAttrib4fv(index, v->data());
4922 setVertexAttribType(index, Float32ArrayType); 4922 setVertexAttribType(index, Float32ArrayType);
4923 } 4923 }
4924 4924
4925 void WebGLRenderingContextBase::vertexAttrib4fv(GLuint index, const Vector<GLflo at>& v) 4925 void WebGLRenderingContextBase::vertexAttrib4fv(GLuint index, const Vector<GLflo at>& v)
4926 { 4926 {
4927 if (isContextLost()) 4927 if (isContextLost())
4928 return; 4928 return;
4929 if (v.size() < 4) { 4929 if (v.size() < 4) {
4930 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib4fv", "invalid array"); 4930 synthesizeGLError(GL_INVALID_VALUE, "vertexAttrib4fv", "invalid array");
4931 return; 4931 return;
4932 } 4932 }
4933 webContext()->vertexAttrib4fv(index, v.data()); 4933 contextGL()->VertexAttrib4fv(index, v.data());
4934 setVertexAttribType(index, Float32ArrayType); 4934 setVertexAttribType(index, Float32ArrayType);
4935 } 4935 }
4936 4936
4937 void WebGLRenderingContextBase::vertexAttribPointer(ScriptState* scriptState, GL uint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, long long offset) 4937 void WebGLRenderingContextBase::vertexAttribPointer(ScriptState* scriptState, GL uint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, long long offset)
4938 { 4938 {
4939 if (isContextLost()) 4939 if (isContextLost())
4940 return; 4940 return;
4941 if (index >= m_maxVertexAttribs) { 4941 if (index >= m_maxVertexAttribs) {
4942 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribPointer", "index out of range"); 4942 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribPointer", "index out of range");
4943 return; 4943 return;
(...skipping 14 matching lines...) Expand all
4958 void WebGLRenderingContextBase::vertexAttribDivisorANGLE(GLuint index, GLuint di visor) 4958 void WebGLRenderingContextBase::vertexAttribDivisorANGLE(GLuint index, GLuint di visor)
4959 { 4959 {
4960 if (isContextLost()) 4960 if (isContextLost())
4961 return; 4961 return;
4962 4962
4963 if (index >= m_maxVertexAttribs) { 4963 if (index >= m_maxVertexAttribs) {
4964 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribDivisorANGLE", "index o ut of range"); 4964 synthesizeGLError(GL_INVALID_VALUE, "vertexAttribDivisorANGLE", "index o ut of range");
4965 return; 4965 return;
4966 } 4966 }
4967 4967
4968 webContext()->vertexAttribDivisorANGLE(index, divisor); 4968 contextGL()->VertexAttribDivisorANGLE(index, divisor);
4969 } 4969 }
4970 4970
4971 void WebGLRenderingContextBase::viewport(GLint x, GLint y, GLsizei width, GLsize i height) 4971 void WebGLRenderingContextBase::viewport(GLint x, GLint y, GLsizei width, GLsize i height)
4972 { 4972 {
4973 if (isContextLost()) 4973 if (isContextLost())
4974 return; 4974 return;
4975 webContext()->viewport(x, y, width, height); 4975 contextGL()->Viewport(x, y, width, height);
4976 } 4976 }
4977 4977
4978 // Added to provide a unified interface with CanvasRenderingContext2D. Prefer ca lling forceLostContext instead. 4978 // Added to provide a unified interface with CanvasRenderingContext2D. Prefer ca lling forceLostContext instead.
4979 void WebGLRenderingContextBase::loseContext(LostContextMode mode) 4979 void WebGLRenderingContextBase::loseContext(LostContextMode mode)
4980 { 4980 {
4981 forceLostContext(mode, Manual); 4981 forceLostContext(mode, Manual);
4982 } 4982 }
4983 4983
4984 void WebGLRenderingContextBase::forceLostContext(LostContextMode mode, AutoRecov eryMethod autoRecoveryMethod) 4984 void WebGLRenderingContextBase::forceLostContext(LostContextMode mode, AutoRecov eryMethod autoRecoveryMethod)
4985 { 4985 {
(...skipping 1303 matching lines...) Expand 10 before | Expand all | Expand 10 after
6289 contextGL()->PixelStorei(GL_UNPACK_ALIGNMENT, 1); 6289 contextGL()->PixelStorei(GL_UNPACK_ALIGNMENT, 1);
6290 } 6290 }
6291 6291
6292 void WebGLRenderingContextBase::restoreUnpackParameters() 6292 void WebGLRenderingContextBase::restoreUnpackParameters()
6293 { 6293 {
6294 if (m_unpackAlignment != 1) 6294 if (m_unpackAlignment != 1)
6295 contextGL()->PixelStorei(GL_UNPACK_ALIGNMENT, m_unpackAlignment); 6295 contextGL()->PixelStorei(GL_UNPACK_ALIGNMENT, m_unpackAlignment);
6296 } 6296 }
6297 6297
6298 } // namespace blink 6298 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/webgl/WebGLRenderbuffer.cpp ('k') | third_party/WebKit/Source/modules/webgl/WebGLSampler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698