Changeset 51884 in webkit
- Timestamp:
- Dec 8, 2009 6:38:06 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 7 added
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r51883 r51884 1 2009-12-08 Peterson Trethewey <petersont@google.com> 2 3 Reviewed by Oliver Hunt. 4 5 Implement WebGLUniformLocation and change API to use it. 6 https://bugs.webkit.org/show_bug.cgi?id=31173 7 8 * fast/canvas/webgl/resources/structUniformShader.vert: Added. 9 * fast/canvas/webgl/script-tests/uniform-location.js: Added. 10 * fast/canvas/webgl/uniform-location-expected.txt: Added. 11 * fast/canvas/webgl/uniform-location.html: Added. 12 1 13 2009-12-08 Adam Langley <agl@google.com> 2 14 -
trunk/WebCore/ChangeLog
r51883 r51884 1 2009-12-08 Peterson Trethewey <petersont@google.com> 2 3 Reviewed by Oliver Hunt. 4 5 Implement WebGLUniformLocation and change API to use it. 6 https://bugs.webkit.org/show_bug.cgi?id=31173 7 8 Test: fast/canvas/webgl/uniform-location.html 9 10 * DerivedSources.make: 11 * WebCore.gypi: 12 * WebCore.xcodeproj/project.pbxproj: 13 * bindings/js/JSWebGLRenderingContextCustom.cpp: 14 (WebCore::JSWebGLRenderingContext::getProgramParameter): 15 (WebCore::JSWebGLRenderingContext::getUniform): 16 (WebCore::functionForUniform): 17 (WebCore::dataFunctionf): 18 (WebCore::dataFunctioni): 19 (WebCore::dataFunctionMatrix): 20 * bindings/scripts/CodeGeneratorV8.pm: 21 * bindings/v8/DerivedSourcesAllInOne.cpp: 22 * bindings/v8/V8Index.cpp: 23 * bindings/v8/V8Index.h: 24 * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: 25 (WebCore::toWebGLUniformLocation): 26 (WebCore::): 27 (WebCore::CALLBACK_FUNC_DECL): 28 (WebCore::isFunctionToCallForAttribute): 29 (WebCore::vertexAttribAndUniformHelperf): 30 (WebCore::uniformHelperi): 31 (WebCore::uniformMatrixHelper): 32 * html/canvas/WebGLRenderingContext.cpp: 33 (WebCore::WebGLRenderingContext::getUniform): 34 (WebCore::WebGLRenderingContext::getUniformLocation): 35 (WebCore::WebGLRenderingContext::uniform1f): 36 (WebCore::WebGLRenderingContext::uniform1fv): 37 (WebCore::WebGLRenderingContext::uniform1i): 38 (WebCore::WebGLRenderingContext::uniform1iv): 39 (WebCore::WebGLRenderingContext::uniform2f): 40 (WebCore::WebGLRenderingContext::uniform2fv): 41 (WebCore::WebGLRenderingContext::uniform2i): 42 (WebCore::WebGLRenderingContext::uniform2iv): 43 (WebCore::WebGLRenderingContext::uniform3f): 44 (WebCore::WebGLRenderingContext::uniform3fv): 45 (WebCore::WebGLRenderingContext::uniform3i): 46 (WebCore::WebGLRenderingContext::uniform3iv): 47 (WebCore::WebGLRenderingContext::uniform4f): 48 (WebCore::WebGLRenderingContext::uniform4fv): 49 (WebCore::WebGLRenderingContext::uniform4i): 50 (WebCore::WebGLRenderingContext::uniform4iv): 51 (WebCore::WebGLRenderingContext::uniformMatrix2fv): 52 (WebCore::WebGLRenderingContext::uniformMatrix3fv): 53 (WebCore::WebGLRenderingContext::uniformMatrix4fv): 54 * html/canvas/WebGLRenderingContext.h: 55 * html/canvas/WebGLRenderingContext.idl: 56 * html/canvas/WebGLUniformLocation.cpp: Added. 57 (WebCore::WebGLUniformLocation::create): 58 (WebCore::WebGLUniformLocation::WebGLUniformLocation): 59 * html/canvas/WebGLUniformLocation.h: Added. 60 (WebCore::WebGLUniformLocation::~WebGLUniformLocation): 61 (WebCore::WebGLUniformLocation::program): 62 (WebCore::WebGLUniformLocation::location): 63 * html/canvas/WebGLUniformLocation.idl: Added. 64 1 65 2009-12-08 Adam Langley <agl@google.com> 2 66 -
trunk/WebCore/DerivedSources.make
r51793 r51884 89 89 WebGLShortArray \ 90 90 WebGLTexture \ 91 WebGLUniformLocation \ 91 92 WebGLUnsignedByteArray \ 92 93 WebGLUnsignedIntArray \ -
trunk/WebCore/WebCore.gypi
r51839 r51884 97 97 'html/canvas/WebGLShader.idl', 98 98 'html/canvas/WebGLShortArray.idl', 99 'html/canvas/WebGLUniformLocation.idl', 99 100 'html/canvas/WebGLUnsignedByteArray.idl', 100 101 'html/canvas/WebGLUnsignedIntArray.idl', … … 1325 1326 'html/canvas/WebGLTexture.cpp', 1326 1327 'html/canvas/WebGLTexture.h', 1328 'html/canvas/WebGLUniformLocation.cpp', 1329 'html/canvas/WebGLUniformLocation.h', 1327 1330 'html/canvas/WebGLUnsignedByteArray.cpp', 1328 1331 'html/canvas/WebGLUnsignedByteArray.h', -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r51839 r51884 157 157 0B9056F90F2685F30095FF6A /* WorkerThreadableLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B9056F70F2685F30095FF6A /* WorkerThreadableLoader.h */; settings = {ATTRIBUTES = (); }; }; 158 158 0BE030A20F3112FB003C1A46 /* RenderLineBoxList.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BE030A10F3112FB003C1A46 /* RenderLineBoxList.h */; settings = {ATTRIBUTES = (Private, ); }; }; 159 0C3F1F5A10C8871200D72CE1 /* WebGLUniformLocation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0C3F1F5710C8871200D72CE1 /* WebGLUniformLocation.cpp */; }; 160 0C3F1F5B10C8871200D72CE1 /* WebGLUniformLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C3F1F5810C8871200D72CE1 /* WebGLUniformLocation.h */; }; 161 0C3F1F5C10C8871200D72CE1 /* WebGLUniformLocation.idl in Resources */ = {isa = PBXBuildFile; fileRef = 0C3F1F5910C8871200D72CE1 /* WebGLUniformLocation.idl */; }; 162 0C45342710CDBBFA00869157 /* JSWebGLUniformLocation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0C45342510CDBBFA00869157 /* JSWebGLUniformLocation.cpp */; }; 163 0C45342810CDBBFA00869157 /* JSWebGLUniformLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C45342610CDBBFA00869157 /* JSWebGLUniformLocation.h */; }; 159 164 0F11A54F0F39233100C37884 /* RenderSelectionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F11A54E0F39233100C37884 /* RenderSelectionInfo.h */; }; 160 165 0F15DA8A0F3AAEE70000CE47 /* AnimationControllerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F15DA890F3AAEE70000CE47 /* AnimationControllerPrivate.h */; }; … … 5352 5357 0B9056F70F2685F30095FF6A /* WorkerThreadableLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkerThreadableLoader.h; sourceTree = "<group>"; }; 5353 5358 0BE030A10F3112FB003C1A46 /* RenderLineBoxList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderLineBoxList.h; sourceTree = "<group>"; }; 5359 0C3F1F5710C8871200D72CE1 /* WebGLUniformLocation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebGLUniformLocation.cpp; path = canvas/WebGLUniformLocation.cpp; sourceTree = "<group>"; }; 5360 0C3F1F5810C8871200D72CE1 /* WebGLUniformLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebGLUniformLocation.h; path = canvas/WebGLUniformLocation.h; sourceTree = "<group>"; }; 5361 0C3F1F5910C8871200D72CE1 /* WebGLUniformLocation.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebGLUniformLocation.idl; path = canvas/WebGLUniformLocation.idl; sourceTree = "<group>"; }; 5362 0C45342510CDBBFA00869157 /* JSWebGLUniformLocation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebGLUniformLocation.cpp; sourceTree = "<group>"; }; 5363 0C45342610CDBBFA00869157 /* JSWebGLUniformLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWebGLUniformLocation.h; sourceTree = "<group>"; }; 5354 5364 0F11A54E0F39233100C37884 /* RenderSelectionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSelectionInfo.h; sourceTree = "<group>"; }; 5355 5365 0F15DA890F3AAEE70000CE47 /* AnimationControllerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AnimationControllerPrivate.h; path = animation/AnimationControllerPrivate.h; sourceTree = "<group>"; }; … … 10740 10750 49C7B9C61042D32F0009D447 /* WebGLTexture.h */, 10741 10751 49C7B9C71042D32F0009D447 /* WebGLTexture.idl */, 10752 0C3F1F5710C8871200D72CE1 /* WebGLUniformLocation.cpp */, 10753 0C3F1F5810C8871200D72CE1 /* WebGLUniformLocation.h */, 10754 0C3F1F5910C8871200D72CE1 /* WebGLUniformLocation.idl */, 10742 10755 49EECDD610503C2300099FAB /* WebGLUnsignedByteArray.cpp */, 10743 10756 49EECDD710503C2300099FAB /* WebGLUnsignedByteArray.h */, … … 12900 12913 49C7B9911042D2D30009D447 /* JSWebGLTexture.cpp */, 12901 12914 49C7B9921042D2D30009D447 /* JSWebGLTexture.h */, 12915 0C45342510CDBBFA00869157 /* JSWebGLUniformLocation.cpp */, 12916 0C45342610CDBBFA00869157 /* JSWebGLUniformLocation.h */, 12902 12917 49EECEFA105070C400099FAB /* JSWebGLUnsignedByteArray.cpp */, 12903 12918 49EECEFB105070C400099FAB /* JSWebGLUnsignedByteArray.h */, … … 18230 18245 599D1E3310C97D6E00E0EF12 /* jni_utility_private.h in Headers */, 18231 18246 7ADE722610CBBB9B006B3B3A /* ContextMenuSelectionHandler.h in Headers */, 18247 0C3F1F5B10C8871200D72CE1 /* WebGLUniformLocation.h in Headers */, 18248 0C45342810CDBBFA00869157 /* JSWebGLUniformLocation.h in Headers */, 18232 18249 ); 18233 18250 runOnlyForDeploymentPostprocessing = 0; … … 18331 18348 1AB1AE7B0C051FDE00139F4F /* zoomOutCursor.png in Resources */, 18332 18349 5174E20C10A1F49A00F95E6F /* PopStateEvent.idl in Resources */, 18350 0C3F1F5C10C8871200D72CE1 /* WebGLUniformLocation.idl in Resources */, 18333 18351 ); 18334 18352 runOnlyForDeploymentPostprocessing = 0; … … 20384 20402 F4EAF4AE10C742B1009100D3 /* OpenTypeSanitizer.cpp in Sources */, 20385 20403 599D1E3210C97D6E00E0EF12 /* jni_utility_private.cpp in Sources */, 20404 0C3F1F5A10C8871200D72CE1 /* WebGLUniformLocation.cpp in Sources */, 20405 0C45342710CDBBFA00869157 /* JSWebGLUniformLocation.cpp in Sources */, 20386 20406 ); 20387 20407 runOnlyForDeploymentPostprocessing = 0; -
trunk/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp
r51348 r51884 44 44 #include "JSWebGLShader.h" 45 45 #include "JSWebGLTexture.h" 46 #include "JSWebGLUniformLocation.h" 46 47 #include "JSWebGLUnsignedByteArray.h" 47 48 #include "JSWebKitCSSMatrix.h" … … 188 189 }; 189 190 190 static JSValue getProgramParameterHelper(JSWebGLRenderingContext* obj, ExecState* exec, const ArgList& args, WhichProgramCall programCall) 191 JSValue JSWebGLRenderingContext::getBufferParameter(ExecState* exec, const ArgList& args) 192 { 193 return getObjectParameter(this, exec, args, kBuffer); 194 } 195 196 JSValue JSWebGLRenderingContext::getFramebufferAttachmentParameter(ExecState* exec, const ArgList& args) 197 { 198 if (args.size() != 3) 199 return throwError(exec, SyntaxError); 200 201 ExceptionCode ec = 0; 202 WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl()); 203 unsigned target = args.at(0).toInt32(exec); 204 if (exec->hadException()) 205 return jsUndefined(); 206 unsigned attachment = args.at(1).toInt32(exec); 207 if (exec->hadException()) 208 return jsUndefined(); 209 unsigned pname = args.at(2).toInt32(exec); 210 if (exec->hadException()) 211 return jsUndefined(); 212 WebGLGetInfo info = context->getFramebufferAttachmentParameter(target, attachment, pname, ec); 213 if (ec) { 214 setDOMException(exec, ec); 215 return jsUndefined(); 216 } 217 return toJS(exec, globalObject(), info); 218 } 219 220 JSValue JSWebGLRenderingContext::getParameter(ExecState* exec, const ArgList& args) 221 { 222 if (args.size() != 1) 223 return throwError(exec, SyntaxError); 224 225 ExceptionCode ec = 0; 226 WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl()); 227 unsigned pname = args.at(0).toInt32(exec); 228 if (exec->hadException()) 229 return jsUndefined(); 230 WebGLGetInfo info = context->getParameter(pname, ec); 231 if (ec) { 232 setDOMException(exec, ec); 233 return jsUndefined(); 234 } 235 return toJS(exec, globalObject(), info); 236 } 237 238 JSValue JSWebGLRenderingContext::getProgramParameter(ExecState* exec, const ArgList& args) 191 239 { 192 240 if (args.size() != 2) … … 194 242 195 243 ExceptionCode ec = 0; 196 WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>( obj->impl());244 WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl()); 197 245 WebGLProgram* program = toWebGLProgram(args.at(0)); 198 246 unsigned pname = args.at(1).toInt32(exec); 199 247 if (exec->hadException()) 200 248 return jsUndefined(); 201 WebGLGetInfo info; 202 switch (programCall) { 203 case kProgramParameter: 204 info = context->getProgramParameter(program, pname, ec); 205 break; 206 case kUniform: 207 // pname -> location 208 info = context->getUniform(program, pname, ec); 209 break; 210 default: 211 notImplemented(); 212 break; 213 } 249 WebGLGetInfo info = context->getProgramParameter(program, pname, ec); 214 250 if (ec) { 215 251 setDOMException(exec, ec); 216 252 return jsUndefined(); 217 253 } 218 return toJS(exec, obj->globalObject(), info);219 }220 221 JSValue JSWebGLRenderingContext::getBufferParameter(ExecState* exec, const ArgList& args)222 {223 return getObjectParameter(this, exec, args, kBuffer);224 }225 226 JSValue JSWebGLRenderingContext::getFramebufferAttachmentParameter(ExecState* exec, const ArgList& args)227 {228 if (args.size() != 3)229 return throwError(exec, SyntaxError);230 231 ExceptionCode ec = 0;232 WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());233 unsigned target = args.at(0).toInt32(exec);234 if (exec->hadException())235 return jsUndefined();236 unsigned attachment = args.at(1).toInt32(exec);237 if (exec->hadException())238 return jsUndefined();239 unsigned pname = args.at(2).toInt32(exec);240 if (exec->hadException())241 return jsUndefined();242 WebGLGetInfo info = context->getFramebufferAttachmentParameter(target, attachment, pname, ec);243 if (ec) {244 setDOMException(exec, ec);245 return jsUndefined();246 }247 254 return toJS(exec, globalObject(), info); 248 }249 250 JSValue JSWebGLRenderingContext::getParameter(ExecState* exec, const ArgList& args)251 {252 if (args.size() != 1)253 return throwError(exec, SyntaxError);254 255 ExceptionCode ec = 0;256 WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl());257 unsigned pname = args.at(0).toInt32(exec);258 if (exec->hadException())259 return jsUndefined();260 WebGLGetInfo info = context->getParameter(pname, ec);261 if (ec) {262 setDOMException(exec, ec);263 return jsUndefined();264 }265 return toJS(exec, globalObject(), info);266 }267 268 JSValue JSWebGLRenderingContext::getProgramParameter(ExecState* exec, const ArgList& args)269 {270 return getProgramParameterHelper(this, exec, args, kProgramParameter);271 255 } 272 256 … … 302 286 JSValue JSWebGLRenderingContext::getUniform(ExecState* exec, const ArgList& args) 303 287 { 304 return getProgramParameterHelper(this, exec, args, kUniform); 288 if (args.size() != 2) 289 return throwError(exec, SyntaxError); 290 291 ExceptionCode ec = 0; 292 WebGLRenderingContext* context = static_cast<WebGLRenderingContext*>(impl()); 293 WebGLProgram* program = toWebGLProgram(args.at(0)); 294 WebGLUniformLocation* loc = toWebGLUniformLocation(args.at(1)); 295 if (exec->hadException()) 296 return jsUndefined(); 297 WebGLGetInfo info = context->getUniform(program, loc, ec); 298 if (ec) { 299 setDOMException(exec, ec); 300 return jsUndefined(); 301 } 302 return toJS(exec, globalObject(), info); 305 303 } 306 304 … … 464 462 }; 465 463 464 bool functionForUniform(DataFunctionToCall f) 465 { 466 switch (f) { 467 case f_uniform1v: 468 case f_uniform2v: 469 case f_uniform3v: 470 case f_uniform4v: 471 return true; 472 break; 473 default: break; 474 } 475 return false; 476 } 477 466 478 static JSC::JSValue dataFunctionf(DataFunctionToCall f, JSC::ExecState* exec, const JSC::ArgList& args, WebGLRenderingContext* context) 467 479 { 468 480 if (args.size() != 2) 469 481 return throwError(exec, SyntaxError); 470 471 long location = args.at(0).toInt32(exec); 472 if (exec->hadException()) 482 483 WebGLUniformLocation* location = 0; 484 long index = -1; 485 486 if (functionForUniform(f)) 487 location = toWebGLUniformLocation(args.at(0)); 488 else 489 index = args.at(0).toInt32(exec); 490 491 if (exec->hadException()) 473 492 return jsUndefined(); 474 493 … … 477 496 return jsUndefined(); 478 497 498 ExceptionCode ec = 0; 479 499 if (webGLArray) { 480 500 switch(f) { 481 case f_uniform1v: context->uniform1fv(location, webGLArray.get() ); break;482 case f_uniform2v: context->uniform2fv(location, webGLArray.get() ); break;483 case f_uniform3v: context->uniform3fv(location, webGLArray.get() ); break;484 case f_uniform4v: context->uniform4fv(location, webGLArray.get() ); break;485 case f_vertexAttrib1v: context->vertexAttrib1fv( location, webGLArray.get()); break;486 case f_vertexAttrib2v: context->vertexAttrib2fv( location, webGLArray.get()); break;487 case f_vertexAttrib3v: context->vertexAttrib3fv( location, webGLArray.get()); break;488 case f_vertexAttrib4v: context->vertexAttrib4fv( location, webGLArray.get()); break;501 case f_uniform1v: context->uniform1fv(location, webGLArray.get(), ec); break; 502 case f_uniform2v: context->uniform2fv(location, webGLArray.get(), ec); break; 503 case f_uniform3v: context->uniform3fv(location, webGLArray.get(), ec); break; 504 case f_uniform4v: context->uniform4fv(location, webGLArray.get(), ec); break; 505 case f_vertexAttrib1v: context->vertexAttrib1fv(index, webGLArray.get()); break; 506 case f_vertexAttrib2v: context->vertexAttrib2fv(index, webGLArray.get()); break; 507 case f_vertexAttrib3v: context->vertexAttrib3fv(index, webGLArray.get()); break; 508 case f_vertexAttrib4v: context->vertexAttrib4fv(index, webGLArray.get()); break; 489 509 } 510 if (ec != 0) 511 setDOMException(exec, ec); 490 512 return jsUndefined(); 491 513 } … … 499 521 500 522 switch(f) { 501 case f_uniform1v: context->uniform1fv(location, array, size); break; 502 case f_uniform2v: context->uniform2fv(location, array, size); break; 503 case f_uniform3v: context->uniform3fv(location, array, size); break; 504 case f_uniform4v: context->uniform4fv(location, array, size); break; 505 case f_vertexAttrib1v: context->vertexAttrib1fv(location, array, size); break; 506 case f_vertexAttrib2v: context->vertexAttrib2fv(location, array, size); break; 507 case f_vertexAttrib3v: context->vertexAttrib3fv(location, array, size); break; 508 case f_vertexAttrib4v: context->vertexAttrib4fv(location, array, size); break; 509 } 523 case f_uniform1v: context->uniform1fv(location, array, size, ec); break; 524 case f_uniform2v: context->uniform2fv(location, array, size, ec); break; 525 case f_uniform3v: context->uniform3fv(location, array, size, ec); break; 526 case f_uniform4v: context->uniform4fv(location, array, size, ec); break; 527 case f_vertexAttrib1v: context->vertexAttrib1fv(index, array, size); break; 528 case f_vertexAttrib2v: context->vertexAttrib2fv(index, array, size); break; 529 case f_vertexAttrib3v: context->vertexAttrib3fv(index, array, size); break; 530 case f_vertexAttrib4v: context->vertexAttrib4fv(index, array, size); break; 531 } 532 if (ec != 0) 533 setDOMException(exec, ec); 510 534 return jsUndefined(); 511 535 } … … 516 540 return throwError(exec, SyntaxError); 517 541 518 long location = args.at(0).toInt32(exec); 519 if (exec->hadException()) 542 WebGLUniformLocation* location = toWebGLUniformLocation(args.at(0)); 543 544 if (exec->hadException()) 520 545 return jsUndefined(); 521 546 … … 524 549 return jsUndefined(); 525 550 551 ExceptionCode ec = 0; 526 552 if (webGLArray) { 527 553 switch(f) { 528 case f_uniform1v: context->uniform1iv(location, webGLArray.get() ); break;529 case f_uniform2v: context->uniform2iv(location, webGLArray.get() ); break;530 case f_uniform3v: context->uniform3iv(location, webGLArray.get() ); break;531 case f_uniform4v: context->uniform4iv(location, webGLArray.get() ); break;554 case f_uniform1v: context->uniform1iv(location, webGLArray.get(), ec); break; 555 case f_uniform2v: context->uniform2iv(location, webGLArray.get(), ec); break; 556 case f_uniform3v: context->uniform3iv(location, webGLArray.get(), ec); break; 557 case f_uniform4v: context->uniform4iv(location, webGLArray.get(), ec); break; 532 558 default: break; 533 559 } 560 if (ec != 0) 561 setDOMException(exec, ec); 534 562 return jsUndefined(); 535 563 } … … 543 571 544 572 switch(f) { 545 case f_uniform1v: context->uniform1iv(location, array, size ); break;546 case f_uniform2v: context->uniform2iv(location, array, size ); break;547 case f_uniform3v: context->uniform3iv(location, array, size ); break;548 case f_uniform4v: context->uniform4iv(location, array, size ); break;573 case f_uniform1v: context->uniform1iv(location, array, size, ec); break; 574 case f_uniform2v: context->uniform2iv(location, array, size, ec); break; 575 case f_uniform3v: context->uniform3iv(location, array, size, ec); break; 576 case f_uniform4v: context->uniform4iv(location, array, size, ec); break; 549 577 default: break; 550 578 } 579 if (ec != 0) 580 setDOMException(exec, ec); 551 581 return jsUndefined(); 552 582 } … … 557 587 return throwError(exec, SyntaxError); 558 588 559 long location = args.at(0).toInt32(exec); 589 WebGLUniformLocation* location = toWebGLUniformLocation(args.at(0)); 590 560 591 if (exec->hadException()) 561 592 return jsUndefined(); … … 569 600 return jsUndefined(); 570 601 602 ExceptionCode ec = 0; 571 603 if (webGLArray) { 572 604 switch(f) { 573 case f_uniformMatrix2fv: context->uniformMatrix2fv(location, transpose, webGLArray.get() ); break;574 case f_uniformMatrix3fv: context->uniformMatrix3fv(location, transpose, webGLArray.get() ); break;575 case f_uniformMatrix4fv: context->uniformMatrix4fv(location, transpose, webGLArray.get() ); break;605 case f_uniformMatrix2fv: context->uniformMatrix2fv(location, transpose, webGLArray.get(), ec); break; 606 case f_uniformMatrix3fv: context->uniformMatrix3fv(location, transpose, webGLArray.get(), ec); break; 607 case f_uniformMatrix4fv: context->uniformMatrix4fv(location, transpose, webGLArray.get(), ec); break; 576 608 } 609 if (ec != 0) 610 setDOMException(exec, ec); 577 611 return jsUndefined(); 578 612 } … … 586 620 587 621 switch(f) { 588 case f_uniformMatrix2fv: context->uniformMatrix2fv(location, transpose, array, size); break; 589 case f_uniformMatrix3fv: context->uniformMatrix3fv(location, transpose, array, size); break; 590 case f_uniformMatrix4fv: context->uniformMatrix4fv(location, transpose, array, size); break; 591 } 622 case f_uniformMatrix2fv: context->uniformMatrix2fv(location, transpose, array, size, ec); break; 623 case f_uniformMatrix3fv: context->uniformMatrix3fv(location, transpose, array, size, ec); break; 624 case f_uniformMatrix4fv: context->uniformMatrix4fv(location, transpose, array, size, ec); break; 625 } 626 if (ec != 0) 627 setDOMException(exec, ec); 592 628 return jsUndefined(); 593 629 } -
trunk/WebCore/bindings/scripts/CodeGeneratorV8.pm
r51125 r51884 1817 1817 return 1 if $type eq "WebGLShortArray"; 1818 1818 return 1 if $type eq "WebGLTexture"; 1819 return 1 if $type eq "WebGLUniformLocation"; 1819 1820 return 1 if $type eq "WebGLUnsignedByteArray"; 1820 1821 return 1 if $type eq "WebGLUnsignedIntArray"; … … 1919 1920 "WebGLShortArray" => 0, 1920 1921 "WebGLTexture" => 0, 1922 "WebGLUniformLocation" => 0, 1921 1923 "CompareHow" => 0, 1922 1924 "DataGridColumn" => 0, -
trunk/WebCore/bindings/v8/DerivedSourcesAllInOne.cpp
r51540 r51884 58 58 #include "bindings/V8WebGLShortArray.cpp" 59 59 #include "bindings/V8WebGLTexture.cpp" 60 #include "bindings/V8WebGLUniformLocation.cpp" 60 61 #include "bindings/V8WebGLUnsignedByteArray.cpp" 61 62 #include "bindings/V8WebGLUnsignedIntArray.cpp" -
trunk/WebCore/bindings/v8/V8Index.cpp
r51540 r51884 408 408 #include "V8WebGLShortArray.h" 409 409 #include "V8WebGLTexture.h" 410 #include "V8WebGLUniformLocation.h" 410 411 #include "V8WebGLUnsignedByteArray.h" 411 412 #include "V8WebGLUnsignedIntArray.h" -
trunk/WebCore/bindings/v8/V8Index.h
r51540 r51884 461 461 V(WEBGLSHORTARRAY, WebGLShortArray) \ 462 462 V(WEBGLTEXTURE, WebGLTexture) \ 463 V(WEBGLUNIFORMLOCATION, WebGLUniformLocation) \ 463 464 V(WEBGLUNSIGNEDBYTEARRAY, WebGLUnsignedByteArray) \ 464 465 V(WEBGLUNSIGNEDINTARRAY, WebGLUnsignedIntArray) \ -
trunk/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp
r51348 r51884 49 49 #include "V8WebGLShader.h" 50 50 #include "V8WebGLShortArray.h" 51 #include "V8WebGLUniformLocation.h" 51 52 #include "V8WebGLUnsignedByteArray.h" 52 53 #include "V8WebGLUnsignedIntArray.h" … … 263 264 } 264 265 266 static WebGLUniformLocation* toWebGLUniformLocation(v8::Handle<v8::Value> value, bool& ok) 267 { 268 ok = false; 269 WebGLUniformLocation* location = 0; 270 if (V8WebGLUniformLocation::HasInstance(value)) { 271 location = V8DOMWrapper::convertToNativeObject<WebGLUniformLocation>( 272 V8ClassIndex::WEBGLUNIFORMLOCATION, value->ToObject()); 273 ok = true; 274 } 275 return location; 276 } 277 265 278 enum WhichProgramCall { 266 279 kProgramParameter, kUniform 267 280 }; 268 269 static v8::Handle<v8::Value> getProgramParameter(const v8::Arguments& args, WhichProgramCall programCall)270 {271 if (args.Length() != 2) {272 V8Proxy::setDOMException(SYNTAX_ERR);273 return notHandledByInterceptor();274 }275 276 ExceptionCode ec = 0;277 WebGLRenderingContext* context =278 V8DOMWrapper::convertDOMWrapperToNative<WebGLRenderingContext>(args.Holder());279 WebGLProgram* program = V8WebGLProgram::HasInstance(args[0]) ? v8DOMWrapperTo<WebGLProgram>(V8ClassIndex::WEBGLPROGRAM, v8::Handle<v8::Object>::Cast(args[0])) : 0;280 bool ok;281 unsigned pname = toInt32(args[1], ok);282 if (!ok) {283 V8Proxy::setDOMException(SYNTAX_ERR);284 return notHandledByInterceptor();285 }286 WebGLGetInfo info;287 switch (programCall) {288 case kProgramParameter:289 info = context->getProgramParameter(program, pname, ec);290 break;291 case kUniform:292 // pname -> location293 info = context->getUniform(program, pname, ec);294 break;295 default:296 notImplemented();297 break;298 }299 if (ec) {300 V8Proxy::setDOMException(ec);301 return v8::Undefined();302 }303 return toV8(info);304 }305 306 281 307 282 CALLBACK_FUNC_DECL(WebGLRenderingContextGetBufferParameter) … … 376 351 { 377 352 INC_STATS("DOM.WebGLRenderingContext.getProgramParameter()"); 378 return getProgramParameter(args, kProgramParameter); 353 354 if (args.Length() != 2) { 355 V8Proxy::setDOMException(SYNTAX_ERR); 356 return notHandledByInterceptor(); 357 } 358 359 ExceptionCode ec = 0; 360 WebGLRenderingContext* context = 361 V8DOMWrapper::convertDOMWrapperToNative<WebGLRenderingContext>(args.Holder()); 362 WebGLProgram* program = V8WebGLProgram::HasInstance(args[0]) ? v8DOMWrapperTo<WebGLProgram>(V8ClassIndex::WEBGLPROGRAM, v8::Handle<v8::Object>::Cast(args[0])) : 0; 363 bool ok; 364 unsigned pname = toInt32(args[1], ok); 365 if (!ok) { 366 V8Proxy::setDOMException(SYNTAX_ERR); 367 return notHandledByInterceptor(); 368 } 369 WebGLGetInfo info = context->getProgramParameter(program, pname, ec); 370 if (ec) { 371 V8Proxy::setDOMException(ec); 372 return v8::Undefined(); 373 } 374 return toV8(info); 379 375 } 380 376 … … 421 417 { 422 418 INC_STATS("DOM.WebGLRenderingContext.getUniform()"); 423 return getProgramParameter(args, kUniform); 419 420 if (args.Length() != 2) { 421 V8Proxy::setDOMException(SYNTAX_ERR); 422 return notHandledByInterceptor(); 423 } 424 425 ExceptionCode ec = 0; 426 WebGLRenderingContext* context = 427 V8DOMWrapper::convertDOMWrapperToNative<WebGLRenderingContext>(args.Holder()); 428 WebGLProgram* program = V8WebGLProgram::HasInstance(args[0]) ? v8DOMWrapperTo<WebGLProgram>(V8ClassIndex::WEBGLPROGRAM, v8::Handle<v8::Object>::Cast(args[0])) : 0; 429 430 bool ok = false; 431 WebGLUniformLocation* location = toWebGLUniformLocation(args[1], ok); 432 433 if (!ok) { 434 V8Proxy::setDOMException(SYNTAX_ERR); 435 return notHandledByInterceptor(); 436 } 437 WebGLGetInfo info = context->getUniform(program, location, ec); 438 if (ec) { 439 V8Proxy::setDOMException(ec); 440 return v8::Undefined(); 441 } 442 return toV8(info); 424 443 } 425 444 … … 561 580 }; 562 581 582 bool isFunctionToCallForAttribute(FunctionToCall functionToCall) 583 { 584 switch (functionToCall) { 585 case kVertexAttrib1v: 586 case kVertexAttrib2v: 587 case kVertexAttrib3v: 588 case kVertexAttrib4v: 589 return true; 590 default: 591 break; 592 } 593 return false; 594 } 595 563 596 static v8::Handle<v8::Value> vertexAttribAndUniformHelperf(const v8::Arguments& args, 564 597 FunctionToCall functionToCall) { 565 598 // Forms: 566 // * glUniform1fv( GLintlocation, Array data);567 // * glUniform1fv( GLintlocation, WebGLFloatArray data);568 // * glUniform2fv( GLintlocation, Array data);569 // * glUniform2fv( GLintlocation, WebGLFloatArray data);570 // * glUniform3fv( GLintlocation, Array data);571 // * glUniform3fv( GLintlocation, WebGLFloatArray data);572 // * glUniform4fv( GLintlocation, Array data);573 // * glUniform4fv( GLintlocation, WebGLFloatArray data);574 // * glVertexAttrib1fv(GLint location, Array data);575 // * glVertexAttrib1fv(GLint location, WebGLFloatArray data);576 // * glVertexAttrib2fv(GLint location, Array data);577 // * glVertexAttrib2fv(GLint location, WebGLFloatArray data);578 // * glVertexAttrib3fv(GLint location, Array data);579 // * glVertexAttrib3fv(GLint location, WebGLFloatArray data);580 // * glVertexAttrib4fv(GLint location, Array data);581 // * glVertexAttrib4fv(GLint location, WebGLFloatArray data);599 // * glUniform1fv(WebGLUniformLocation location, Array data); 600 // * glUniform1fv(WebGLUniformLocation location, WebGLFloatArray data); 601 // * glUniform2fv(WebGLUniformLocation location, Array data); 602 // * glUniform2fv(WebGLUniformLocation location, WebGLFloatArray data); 603 // * glUniform3fv(WebGLUniformLocation location, Array data); 604 // * glUniform3fv(WebGLUniformLocation location, WebGLFloatArray data); 605 // * glUniform4fv(WebGLUniformLocation location, Array data); 606 // * glUniform4fv(WebGLUniformLocation location, WebGLFloatArray data); 607 // * glVertexAttrib1fv(GLint index, Array data); 608 // * glVertexAttrib1fv(GLint index, WebGLFloatArray data); 609 // * glVertexAttrib2fv(GLint index, Array data); 610 // * glVertexAttrib2fv(GLint index, WebGLFloatArray data); 611 // * glVertexAttrib3fv(GLint index, Array data); 612 // * glVertexAttrib3fv(GLint index, WebGLFloatArray data); 613 // * glVertexAttrib4fv(GLint index, Array data); 614 // * glVertexAttrib4fv(GLint index, WebGLFloatArray data); 582 615 583 616 if (args.Length() != 3) { … … 586 619 } 587 620 588 WebGLRenderingContext* context = 589 V8DOMWrapper::convertDOMWrapperToNative<WebGLRenderingContext>(args.Holder()); 590 bool ok; 591 int location = toInt32(args[0], ok); 621 bool ok = false; 622 int index = -1; 623 WebGLUniformLocation* location = 0; 624 625 if (isFunctionToCallForAttribute(functionToCall)) 626 index = toInt32(args[0], ok); 627 else 628 location = toWebGLUniformLocation(args[0], ok); 629 630 WebGLRenderingContext* context = 631 V8DOMWrapper::convertDOMWrapperToNative<WebGLRenderingContext>(args.Holder()); 632 592 633 if (!ok) { 593 634 V8Proxy::setDOMException(SYNTAX_ERR); … … 603 644 case kUniform3v: context->uniform3fv(location, array); break; 604 645 case kUniform4v: context->uniform4fv(location, array); break; 605 case kVertexAttrib1v: context->vertexAttrib1fv( location, array); break;606 case kVertexAttrib2v: context->vertexAttrib2fv( location, array); break;607 case kVertexAttrib3v: context->vertexAttrib3fv( location, array); break;608 case kVertexAttrib4v: context->vertexAttrib4fv( location, array); break;646 case kVertexAttrib1v: context->vertexAttrib1fv(index, array); break; 647 case kVertexAttrib2v: context->vertexAttrib2fv(index, array); break; 648 case kVertexAttrib3v: context->vertexAttrib3fv(index, array); break; 649 case kVertexAttrib4v: context->vertexAttrib4fv(index, array); break; 609 650 default: ASSERT_NOT_REACHED(); break; 610 651 } … … 630 671 case kUniform3v: context->uniform3fv(location, data, len); break; 631 672 case kUniform4v: context->uniform4fv(location, data, len); break; 632 case kVertexAttrib1v: context->vertexAttrib1fv( location, data, len); break;633 case kVertexAttrib2v: context->vertexAttrib2fv( location, data, len); break;634 case kVertexAttrib3v: context->vertexAttrib3fv( location, data, len); break;635 case kVertexAttrib4v: context->vertexAttrib4fv( location, data, len); break;673 case kVertexAttrib1v: context->vertexAttrib1fv(index, data, len); break; 674 case kVertexAttrib2v: context->vertexAttrib2fv(index, data, len); break; 675 case kVertexAttrib3v: context->vertexAttrib3fv(index, data, len); break; 676 case kVertexAttrib4v: context->vertexAttrib4fv(index, data, len); break; 636 677 default: ASSERT_NOT_REACHED(); break; 637 678 } … … 643 684 FunctionToCall functionToCall) { 644 685 // Forms: 645 // * glUniform1iv(GL intlocation, Array data);646 // * glUniform1iv(GL intlocation, WebGLIntArray data);647 // * glUniform2iv(GL intlocation, Array data);648 // * glUniform2iv(GL intlocation, WebGLIntArray data);649 // * glUniform3iv(GL intlocation, Array data);650 // * glUniform3iv(GL intlocation, WebGLIntArray data);651 // * glUniform4iv(GL intlocation, Array data);652 // * glUniform4iv(GL intlocation, WebGLIntArray data);686 // * glUniform1iv(GLUniformLocation location, Array data); 687 // * glUniform1iv(GLUniformLocation location, WebGLIntArray data); 688 // * glUniform2iv(GLUniformLocation location, Array data); 689 // * glUniform2iv(GLUniformLocation location, WebGLIntArray data); 690 // * glUniform3iv(GLUniformLocation location, Array data); 691 // * glUniform3iv(GLUniformLocation location, WebGLIntArray data); 692 // * glUniform4iv(GLUniformLocation location, Array data); 693 // * glUniform4iv(GLUniformLocation location, WebGLIntArray data); 653 694 654 695 if (args.Length() != 3) { … … 659 700 WebGLRenderingContext* context = 660 701 V8DOMWrapper::convertDOMWrapperToNative<WebGLRenderingContext>(args.Holder()); 661 bool ok; 662 int location = toInt32(args[0], ok); 702 bool ok = false; 703 WebGLUniformLocation* location = toWebGLUniformLocation(args[0], ok); 704 663 705 if (!ok) { 664 706 V8Proxy::setDOMException(SYNTAX_ERR); … … 770 812 WebGLRenderingContext* context = 771 813 V8DOMWrapper::convertDOMWrapperToNative<WebGLRenderingContext>(args.Holder()); 772 bool ok; 773 int location = toInt32(args[0], ok); 814 815 bool ok = false; 816 WebGLUniformLocation* location = toWebGLUniformLocation(args[0], ok); 817 774 818 if (!ok) { 775 819 V8Proxy::setDOMException(SYNTAX_ERR); -
trunk/WebCore/html/canvas/WebGLRenderingContext.cpp
r51588 r51884 37 37 #include "WebGLTexture.h" 38 38 #include "WebGLShader.h" 39 #include "WebGLUniformLocation.h" 39 40 #include "HTMLCanvasElement.h" 40 41 #include "HTMLImageElement.h" … … 1148 1149 } 1149 1150 1150 WebGLGetInfo WebGLRenderingContext::getUniform(WebGLProgram* program, long location, ExceptionCode& ec)1151 { 1152 if (!program || program->context() != this) {1151 WebGLGetInfo WebGLRenderingContext::getUniform(WebGLProgram* program, const WebGLUniformLocation* uniformLocation, ExceptionCode& ec) 1152 { 1153 if (!program || uniformLocation->program() != program || program->context() != this) { 1153 1154 // FIXME: raise GL_INVALID_VALUE error 1154 1155 ec = TYPE_MISMATCH_ERR; 1155 1156 return WebGLGetInfo(); 1156 1157 } 1158 long location = uniformLocation->location(); 1159 1157 1160 WebGLStateRestorer(this, false); 1158 1161 // FIXME: make this more efficient using WebGLUniformLocation and caching types in it … … 1276 1279 } 1277 1280 1278 longWebGLRenderingContext::getUniformLocation(WebGLProgram* program, const String& name, ExceptionCode& ec)1281 PassRefPtr<WebGLUniformLocation> WebGLRenderingContext::getUniformLocation(WebGLProgram* program, const String& name, ExceptionCode& ec) 1279 1282 { 1280 1283 if (!program || program->context() != this) { … … 1282 1285 return 0; 1283 1286 } 1284 return m_context->getUniformLocation(program, name); 1287 WebGLStateRestorer(this, false); 1288 return WebGLUniformLocation::create(program, m_context->getUniformLocation(program, name)); 1285 1289 } 1286 1290 … … 1647 1651 } 1648 1652 1649 void WebGLRenderingContext::uniform1f(long location, float x) 1650 { 1651 m_context->uniform1f(location, x); 1652 cleanupAfterGraphicsCall(false); 1653 } 1654 1655 void WebGLRenderingContext::uniform1fv(long location, WebGLFloatArray* v) 1656 { 1653 void WebGLRenderingContext::uniform1f(const WebGLUniformLocation* location, float x, ExceptionCode& ec) 1654 { 1655 if (!location || location->program() != m_currentProgram) { 1656 // FIXME: raise GL_INVALID_OPERATION error 1657 ec = TYPE_MISMATCH_ERR; 1658 return; 1659 } 1660 1661 m_context->uniform1f(location->location(), x); 1662 cleanupAfterGraphicsCall(false); 1663 } 1664 1665 void WebGLRenderingContext::uniform1fv(const WebGLUniformLocation* location, WebGLFloatArray* v, ExceptionCode& ec) 1666 { 1667 if (!location || location->program() != m_currentProgram) { 1668 // FIXME: raise GL_INVALID_OPERATION error 1669 ec = TYPE_MISMATCH_ERR; 1670 return; 1671 } 1672 1657 1673 // FIXME: we need to throw if no array passed in 1658 1674 if (!v) 1659 1675 return; 1660 1676 1661 m_context->uniform1fv(location, v->data(), v->length()); 1662 cleanupAfterGraphicsCall(false); 1663 } 1664 1665 void WebGLRenderingContext::uniform1fv(long location, float* v, int size) 1666 { 1677 m_context->uniform1fv(location->location(), v->data(), v->length()); 1678 cleanupAfterGraphicsCall(false); 1679 } 1680 1681 void WebGLRenderingContext::uniform1fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode& ec) 1682 { 1683 if (!location || location->program() != m_currentProgram) { 1684 // FIXME: raise GL_INVALID_OPERATION error 1685 ec = TYPE_MISMATCH_ERR; 1686 return; 1687 } 1688 1667 1689 // FIXME: we need to throw if no array passed in 1668 1690 if (!v) 1669 1691 return; 1670 1692 1671 m_context->uniform1fv(location, v, size); 1672 cleanupAfterGraphicsCall(false); 1673 } 1674 1675 void WebGLRenderingContext::uniform1i(long location, int x) 1676 { 1677 m_context->uniform1i(location, x); 1678 cleanupAfterGraphicsCall(false); 1679 } 1680 1681 void WebGLRenderingContext::uniform1iv(long location, WebGLIntArray* v) 1682 { 1693 m_context->uniform1fv(location->location(), v, size); 1694 cleanupAfterGraphicsCall(false); 1695 } 1696 1697 void WebGLRenderingContext::uniform1i(const WebGLUniformLocation* location, int x, ExceptionCode& ec) 1698 { 1699 if (!location || location->program() != m_currentProgram) { 1700 // FIXME: raise GL_INVALID_OPERATION error 1701 ec = TYPE_MISMATCH_ERR; 1702 return; 1703 } 1704 1705 m_context->uniform1i(location->location(), x); 1706 cleanupAfterGraphicsCall(false); 1707 } 1708 1709 void WebGLRenderingContext::uniform1iv(const WebGLUniformLocation* location, WebGLIntArray* v, ExceptionCode& ec) 1710 { 1711 if (!location || location->program() != m_currentProgram) { 1712 // FIXME: raise GL_INVALID_OPERATION error 1713 ec = TYPE_MISMATCH_ERR; 1714 return; 1715 } 1716 1683 1717 // FIXME: we need to throw if no array passed in 1684 1718 if (!v) 1685 1719 return; 1686 1720 1687 m_context->uniform1iv(location, v->data(), v->length()); 1688 cleanupAfterGraphicsCall(false); 1689 } 1690 1691 void WebGLRenderingContext::uniform1iv(long location, int* v, int size) 1692 { 1721 m_context->uniform1iv(location->location(), v->data(), v->length()); 1722 cleanupAfterGraphicsCall(false); 1723 } 1724 1725 void WebGLRenderingContext::uniform1iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode& ec) 1726 { 1727 if (!location || location->program() != m_currentProgram) { 1728 // FIXME: raise GL_INVALID_OPERATION error 1729 ec = TYPE_MISMATCH_ERR; 1730 return; 1731 } 1732 1693 1733 // FIXME: we need to throw if no array passed in 1694 1734 if (!v) 1695 1735 return; 1696 1736 1697 m_context->uniform1iv(location, v, size); 1698 cleanupAfterGraphicsCall(false); 1699 } 1700 1701 void WebGLRenderingContext::uniform2f(long location, float x, float y) 1702 { 1703 m_context->uniform2f(location, x, y); 1704 cleanupAfterGraphicsCall(false); 1705 } 1706 1707 void WebGLRenderingContext::uniform2fv(long location, WebGLFloatArray* v) 1708 { 1737 m_context->uniform1iv(location->location(), v, size); 1738 cleanupAfterGraphicsCall(false); 1739 } 1740 1741 void WebGLRenderingContext::uniform2f(const WebGLUniformLocation* location, float x, float y, ExceptionCode& ec) 1742 { 1743 if (!location || location->program() != m_currentProgram) { 1744 // FIXME: raise GL_INVALID_OPERATION error 1745 ec = TYPE_MISMATCH_ERR; 1746 return; 1747 } 1748 1749 m_context->uniform2f(location->location(), x, y); 1750 cleanupAfterGraphicsCall(false); 1751 } 1752 1753 void WebGLRenderingContext::uniform2fv(const WebGLUniformLocation* location, WebGLFloatArray* v, ExceptionCode& ec) 1754 { 1755 if (!location || location->program() != m_currentProgram) { 1756 // FIXME: raise GL_INVALID_OPERATION error 1757 ec = TYPE_MISMATCH_ERR; 1758 return; 1759 } 1760 1709 1761 // FIXME: we need to throw if no array passed in 1710 1762 if (!v) … … 1712 1764 1713 1765 // FIXME: length needs to be a multiple of 2 1714 m_context->uniform2fv(location, v->data(), v->length() / 2); 1715 cleanupAfterGraphicsCall(false); 1716 } 1717 1718 void WebGLRenderingContext::uniform2fv(long location, float* v, int size) 1719 { 1766 m_context->uniform2fv(location->location(), v->data(), v->length() / 2); 1767 cleanupAfterGraphicsCall(false); 1768 } 1769 1770 void WebGLRenderingContext::uniform2fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode& ec) 1771 { 1772 if (!location || location->program() != m_currentProgram) { 1773 // FIXME: raise GL_INVALID_OPERATION error 1774 ec = TYPE_MISMATCH_ERR; 1775 return; 1776 } 1777 1720 1778 // FIXME: we need to throw if no array passed in 1721 1779 if (!v) … … 1723 1781 1724 1782 // FIXME: length needs to be a multiple of 2 1725 m_context->uniform2fv(location, v, size / 2); 1726 cleanupAfterGraphicsCall(false); 1727 } 1728 1729 void WebGLRenderingContext::uniform2i(long location, int x, int y) 1730 { 1731 m_context->uniform2i(location, x, y); 1732 cleanupAfterGraphicsCall(false); 1733 } 1734 1735 void WebGLRenderingContext::uniform2iv(long location, WebGLIntArray* v) 1736 { 1783 m_context->uniform2fv(location->location(), v, size / 2); 1784 cleanupAfterGraphicsCall(false); 1785 } 1786 1787 void WebGLRenderingContext::uniform2i(const WebGLUniformLocation* location, int x, int y, ExceptionCode& ec) 1788 { 1789 if (!location || location->program() != m_currentProgram) { 1790 // FIXME: raise GL_INVALID_OPERATION error 1791 ec = TYPE_MISMATCH_ERR; 1792 return; 1793 } 1794 1795 m_context->uniform2i(location->location(), x, y); 1796 cleanupAfterGraphicsCall(false); 1797 } 1798 1799 void WebGLRenderingContext::uniform2iv(const WebGLUniformLocation* location, WebGLIntArray* v, ExceptionCode& ec) 1800 { 1801 if (!location || location->program() != m_currentProgram) { 1802 // FIXME: raise GL_INVALID_OPERATION error 1803 ec = TYPE_MISMATCH_ERR; 1804 return; 1805 } 1806 1737 1807 // FIXME: we need to throw if no array passed in 1738 1808 if (!v) … … 1740 1810 1741 1811 // FIXME: length needs to be a multiple of 2 1742 m_context->uniform2iv(location, v->data(), v->length() / 2); 1743 cleanupAfterGraphicsCall(false); 1744 } 1745 1746 void WebGLRenderingContext::uniform2iv(long location, int* v, int size) 1747 { 1812 m_context->uniform2iv(location->location(), v->data(), v->length() / 2); 1813 cleanupAfterGraphicsCall(false); 1814 } 1815 1816 void WebGLRenderingContext::uniform2iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode& ec) 1817 { 1818 if (!location || location->program() != m_currentProgram) { 1819 // FIXME: raise GL_INVALID_OPERATION error 1820 ec = TYPE_MISMATCH_ERR; 1821 return; 1822 } 1823 1748 1824 // FIXME: we need to throw if no array passed in 1749 1825 if (!v) … … 1751 1827 1752 1828 // FIXME: length needs to be a multiple of 2 1753 m_context->uniform2iv(location, v, size / 2); 1754 cleanupAfterGraphicsCall(false); 1755 } 1756 1757 void WebGLRenderingContext::uniform3f(long location, float x, float y, float z) 1758 { 1759 m_context->uniform3f(location, x, y, z); 1760 cleanupAfterGraphicsCall(false); 1761 } 1762 1763 void WebGLRenderingContext::uniform3fv(long location, WebGLFloatArray* v) 1764 { 1829 m_context->uniform2iv(location->location(), v, size / 2); 1830 cleanupAfterGraphicsCall(false); 1831 } 1832 1833 void WebGLRenderingContext::uniform3f(const WebGLUniformLocation* location, float x, float y, float z, ExceptionCode& ec) 1834 { 1835 if (!location || location->program() != m_currentProgram) { 1836 // FIXME: raise GL_INVALID_OPERATION error 1837 ec = TYPE_MISMATCH_ERR; 1838 return; 1839 } 1840 1841 m_context->uniform3f(location->location(), x, y, z); 1842 cleanupAfterGraphicsCall(false); 1843 } 1844 1845 void WebGLRenderingContext::uniform3fv(const WebGLUniformLocation* location, WebGLFloatArray* v, ExceptionCode& ec) 1846 { 1847 if (!location || location->program() != m_currentProgram) { 1848 // FIXME: raise GL_INVALID_OPERATION error 1849 ec = TYPE_MISMATCH_ERR; 1850 return; 1851 } 1852 1765 1853 // FIXME: we need to throw if no array passed in 1766 1854 if (!v) … … 1768 1856 1769 1857 // FIXME: length needs to be a multiple of 3 1770 m_context->uniform3fv(location, v->data(), v->length() / 3); 1771 cleanupAfterGraphicsCall(false); 1772 } 1773 1774 void WebGLRenderingContext::uniform3fv(long location, float* v, int size) 1775 { 1858 m_context->uniform3fv(location->location(), v->data(), v->length() / 3); 1859 cleanupAfterGraphicsCall(false); 1860 } 1861 1862 void WebGLRenderingContext::uniform3fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode& ec) 1863 { 1864 if (!location || location->program() != m_currentProgram) { 1865 // FIXME: raise GL_INVALID_OPERATION error 1866 ec = TYPE_MISMATCH_ERR; 1867 return; 1868 } 1869 1776 1870 // FIXME: we need to throw if no array passed in 1777 1871 if (!v) … … 1779 1873 1780 1874 // FIXME: length needs to be a multiple of 3 1781 m_context->uniform3fv(location, v, size / 3); 1782 cleanupAfterGraphicsCall(false); 1783 } 1784 1785 void WebGLRenderingContext::uniform3i(long location, int x, int y, int z) 1786 { 1787 m_context->uniform3i(location, x, y, z); 1788 cleanupAfterGraphicsCall(false); 1789 } 1790 1791 void WebGLRenderingContext::uniform3iv(long location, WebGLIntArray* v) 1792 { 1875 m_context->uniform3fv(location->location(), v, size / 3); 1876 cleanupAfterGraphicsCall(false); 1877 } 1878 1879 void WebGLRenderingContext::uniform3i(const WebGLUniformLocation* location, int x, int y, int z, ExceptionCode& ec) 1880 { 1881 if (!location || location->program() != m_currentProgram) { 1882 // FIXME: raise GL_INVALID_OPERATION error 1883 ec = TYPE_MISMATCH_ERR; 1884 return; 1885 } 1886 1887 m_context->uniform3i(location->location(), x, y, z); 1888 cleanupAfterGraphicsCall(false); 1889 } 1890 1891 void WebGLRenderingContext::uniform3iv(const WebGLUniformLocation* location, WebGLIntArray* v, ExceptionCode& ec) 1892 { 1893 if (!location || location->program() != m_currentProgram) { 1894 // FIXME: raise GL_INVALID_OPERATION error 1895 ec = TYPE_MISMATCH_ERR; 1896 return; 1897 } 1898 1793 1899 // FIXME: we need to throw if no array passed in 1794 1900 if (!v) … … 1796 1902 1797 1903 // FIXME: length needs to be a multiple of 3 1798 m_context->uniform3iv(location, v->data(), v->length() / 3); 1799 cleanupAfterGraphicsCall(false); 1800 } 1801 1802 void WebGLRenderingContext::uniform3iv(long location, int* v, int size) 1803 { 1904 m_context->uniform3iv(location->location(), v->data(), v->length() / 3); 1905 cleanupAfterGraphicsCall(false); 1906 } 1907 1908 void WebGLRenderingContext::uniform3iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode& ec) 1909 { 1910 if (!location || location->program() != m_currentProgram) { 1911 // FIXME: raise GL_INVALID_OPERATION error 1912 ec = TYPE_MISMATCH_ERR; 1913 return; 1914 } 1915 1804 1916 // FIXME: we need to throw if no array passed in 1805 1917 if (!v) … … 1807 1919 1808 1920 // FIXME: length needs to be a multiple of 3 1809 m_context->uniform3iv(location, v, size / 3); 1810 cleanupAfterGraphicsCall(false); 1811 } 1812 1813 void WebGLRenderingContext::uniform4f(long location, float x, float y, float z, float w) 1814 { 1815 m_context->uniform4f(location, x, y, z, w); 1816 cleanupAfterGraphicsCall(false); 1817 } 1818 1819 void WebGLRenderingContext::uniform4fv(long location, WebGLFloatArray* v) 1820 { 1921 m_context->uniform3iv(location->location(), v, size / 3); 1922 cleanupAfterGraphicsCall(false); 1923 } 1924 1925 void WebGLRenderingContext::uniform4f(const WebGLUniformLocation* location, float x, float y, float z, float w, ExceptionCode& ec) 1926 { 1927 if (!location || location->program() != m_currentProgram) { 1928 // FIXME: raise GL_INVALID_OPERATION error 1929 ec = TYPE_MISMATCH_ERR; 1930 return; 1931 } 1932 1933 m_context->uniform4f(location->location(), x, y, z, w); 1934 cleanupAfterGraphicsCall(false); 1935 } 1936 1937 void WebGLRenderingContext::uniform4fv(const WebGLUniformLocation* location, WebGLFloatArray* v, ExceptionCode& ec) 1938 { 1939 if (!location || location->program() != m_currentProgram) { 1940 // FIXME: raise GL_INVALID_OPERATION error 1941 ec = TYPE_MISMATCH_ERR; 1942 return; 1943 } 1944 1821 1945 // FIXME: we need to throw if no array passed in 1822 1946 if (!v) … … 1824 1948 1825 1949 // FIXME: length needs to be a multiple of 4 1826 m_context->uniform4fv(location, v->data(), v->length() / 4); 1827 cleanupAfterGraphicsCall(false); 1828 } 1829 1830 void WebGLRenderingContext::uniform4fv(long location, float* v, int size) 1831 { 1950 m_context->uniform4fv(location->location(), v->data(), v->length() / 4); 1951 cleanupAfterGraphicsCall(false); 1952 } 1953 1954 void WebGLRenderingContext::uniform4fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode& ec) 1955 { 1956 if (!location || location->program() != m_currentProgram) { 1957 // FIXME: raise GL_INVALID_OPERATION error 1958 ec = TYPE_MISMATCH_ERR; 1959 return; 1960 } 1961 1832 1962 // FIXME: we need to throw if no array passed in 1833 1963 if (!v) … … 1835 1965 1836 1966 // FIXME: length needs to be a multiple of 4 1837 m_context->uniform4fv(location, v, size / 4); 1838 cleanupAfterGraphicsCall(false); 1839 } 1840 1841 void WebGLRenderingContext::uniform4i(long location, int x, int y, int z, int w) 1842 { 1843 m_context->uniform4i(location, x, y, z, w); 1844 cleanupAfterGraphicsCall(false); 1845 } 1846 1847 void WebGLRenderingContext::uniform4iv(long location, WebGLIntArray* v) 1848 { 1967 m_context->uniform4fv(location->location(), v, size / 4); 1968 cleanupAfterGraphicsCall(false); 1969 } 1970 1971 void WebGLRenderingContext::uniform4i(const WebGLUniformLocation* location, int x, int y, int z, int w, ExceptionCode& ec) 1972 { 1973 if (!location || location->program() != m_currentProgram) { 1974 // FIXME: raise GL_INVALID_OPERATION error 1975 ec = TYPE_MISMATCH_ERR; 1976 return; 1977 } 1978 1979 m_context->uniform4i(location->location(), x, y, z, w); 1980 cleanupAfterGraphicsCall(false); 1981 } 1982 1983 void WebGLRenderingContext::uniform4iv(const WebGLUniformLocation* location, WebGLIntArray* v, ExceptionCode& ec) 1984 { 1985 if (!location || location->program() != m_currentProgram) { 1986 // FIXME: raise GL_INVALID_OPERATION error 1987 ec = TYPE_MISMATCH_ERR; 1988 return; 1989 } 1990 1849 1991 // FIXME: we need to throw if no array passed in 1850 1992 if (!v) … … 1852 1994 1853 1995 // FIXME: length needs to be a multiple of 4 1854 m_context->uniform4iv(location, v->data(), v->length() / 4); 1855 cleanupAfterGraphicsCall(false); 1856 } 1857 1858 void WebGLRenderingContext::uniform4iv(long location, int* v, int size) 1859 { 1996 m_context->uniform4iv(location->location(), v->data(), v->length() / 4); 1997 cleanupAfterGraphicsCall(false); 1998 } 1999 2000 void WebGLRenderingContext::uniform4iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode& ec) 2001 { 2002 if (!location || location->program() != m_currentProgram) { 2003 // FIXME: raise GL_INVALID_OPERATION error 2004 ec = TYPE_MISMATCH_ERR; 2005 return; 2006 } 2007 1860 2008 // FIXME: we need to throw if no array passed in 1861 2009 if (!v) … … 1863 2011 1864 2012 // FIXME: length needs to be a multiple of 4 1865 m_context->uniform4iv(location, v, size / 4); 1866 cleanupAfterGraphicsCall(false); 1867 } 1868 1869 void WebGLRenderingContext::uniformMatrix2fv(long location, bool transpose, WebGLFloatArray* v) 1870 { 2013 m_context->uniform4iv(location->location(), v, size / 4); 2014 cleanupAfterGraphicsCall(false); 2015 } 2016 2017 void WebGLRenderingContext::uniformMatrix2fv(const WebGLUniformLocation* location, bool transpose, WebGLFloatArray* v, ExceptionCode& ec) 2018 { 2019 if (!location || location->program() != m_currentProgram) { 2020 // FIXME: raise GL_INVALID_OPERATION error 2021 ec = TYPE_MISMATCH_ERR; 2022 return; 2023 } 2024 1871 2025 // FIXME: we need to throw if no array passed in 1872 2026 if (!v) … … 1874 2028 1875 2029 // FIXME: length needs to be a multiple of 4 1876 m_context->uniformMatrix2fv(location, transpose, v->data(), v->length() / 4); 1877 cleanupAfterGraphicsCall(false); 1878 } 1879 1880 void WebGLRenderingContext::uniformMatrix2fv(long location, bool transpose, float* v, int size) 1881 { 2030 m_context->uniformMatrix2fv(location->location(), transpose, v->data(), v->length() / 4); 2031 cleanupAfterGraphicsCall(false); 2032 } 2033 2034 void WebGLRenderingContext::uniformMatrix2fv(const WebGLUniformLocation* location, bool transpose, float* v, int size, ExceptionCode& ec) 2035 { 2036 if (!location || location->program() != m_currentProgram) { 2037 // FIXME: raise GL_INVALID_OPERATION error 2038 ec = TYPE_MISMATCH_ERR; 2039 return; 2040 } 2041 1882 2042 // FIXME: we need to throw if no array passed in 1883 2043 if (!v) … … 1885 2045 1886 2046 // FIXME: length needs to be a multiple of 4 1887 m_context->uniformMatrix2fv(location, transpose, v, size / 4); 1888 cleanupAfterGraphicsCall(false); 1889 } 1890 1891 void WebGLRenderingContext::uniformMatrix3fv(long location, bool transpose, WebGLFloatArray* v) 1892 { 2047 m_context->uniformMatrix2fv(location->location(), transpose, v, size / 4); 2048 cleanupAfterGraphicsCall(false); 2049 } 2050 2051 void WebGLRenderingContext::uniformMatrix3fv(const WebGLUniformLocation* location, bool transpose, WebGLFloatArray* v, ExceptionCode& ec) 2052 { 2053 if (!location || location->program() != m_currentProgram) { 2054 // FIXME: raise GL_INVALID_OPERATION error 2055 ec = TYPE_MISMATCH_ERR; 2056 return; 2057 } 2058 1893 2059 // FIXME: we need to throw if no array passed in 1894 2060 if (!v) … … 1896 2062 1897 2063 // FIXME: length needs to be a multiple of 9 1898 m_context->uniformMatrix3fv(location, transpose, v->data(), v->length() / 9); 1899 cleanupAfterGraphicsCall(false); 1900 } 1901 1902 void WebGLRenderingContext::uniformMatrix3fv(long location, bool transpose, float* v, int size) 1903 { 2064 m_context->uniformMatrix3fv(location->location(), transpose, v->data(), v->length() / 9); 2065 cleanupAfterGraphicsCall(false); 2066 } 2067 2068 void WebGLRenderingContext::uniformMatrix3fv(const WebGLUniformLocation* location, bool transpose, float* v, int size, ExceptionCode& ec) 2069 { 2070 if (!location || location->program() != m_currentProgram) { 2071 // FIXME: raise GL_INVALID_OPERATION error 2072 ec = TYPE_MISMATCH_ERR; 2073 return; 2074 } 2075 1904 2076 // FIXME: we need to throw if no array passed in 1905 2077 if (!v) … … 1907 2079 1908 2080 // FIXME: length needs to be a multiple of 9 1909 m_context->uniformMatrix3fv(location, transpose, v, size / 9); 1910 cleanupAfterGraphicsCall(false); 1911 } 1912 1913 void WebGLRenderingContext::uniformMatrix4fv(long location, bool transpose, WebGLFloatArray* v) 1914 { 2081 m_context->uniformMatrix3fv(location->location(), transpose, v, size / 9); 2082 cleanupAfterGraphicsCall(false); 2083 } 2084 2085 void WebGLRenderingContext::uniformMatrix4fv(const WebGLUniformLocation* location, bool transpose, WebGLFloatArray* v, ExceptionCode& ec) 2086 { 2087 if (!location || location->program() != m_currentProgram) { 2088 // FIXME: raise GL_INVALID_OPERATION error 2089 ec = TYPE_MISMATCH_ERR; 2090 return; 2091 } 2092 1915 2093 // FIXME: we need to throw if no array passed in 1916 2094 if (!v) … … 1918 2096 1919 2097 // FIXME: length needs to be a multiple of 16 1920 m_context->uniformMatrix4fv(location, transpose, v->data(), v->length() / 16); 1921 cleanupAfterGraphicsCall(false); 1922 } 1923 1924 void WebGLRenderingContext::uniformMatrix4fv(long location, bool transpose, float* v, int size) 1925 { 2098 m_context->uniformMatrix4fv(location->location(), transpose, v->data(), v->length() / 16); 2099 cleanupAfterGraphicsCall(false); 2100 } 2101 2102 void WebGLRenderingContext::uniformMatrix4fv(const WebGLUniformLocation* location, bool transpose, float* v, int size, ExceptionCode& ec) 2103 { 2104 if (!location || location->program() != m_currentProgram) { 2105 // FIXME: raise GL_INVALID_OPERATION error 2106 ec = TYPE_MISMATCH_ERR; 2107 return; 2108 } 2109 1926 2110 // FIXME: we need to throw if no array passed in 1927 2111 if (!v) … … 1929 2113 1930 2114 // FIXME: length needs to be a multiple of 16 1931 m_context->uniformMatrix4fv(location , transpose, v, size / 16);2115 m_context->uniformMatrix4fv(location->location(), transpose, v, size / 16); 1932 2116 cleanupAfterGraphicsCall(false); 1933 2117 } -
trunk/WebCore/html/canvas/WebGLRenderingContext.h
r51370 r51884 46 46 class WebGLShader; 47 47 class WebGLTexture; 48 class WebGLUniformLocation; 48 49 class HTMLImageElement; 49 50 class HTMLVideoElement; … … 158 159 WebGLGetInfo getTexParameter(unsigned long target, unsigned long pname, ExceptionCode&); 159 160 160 WebGLGetInfo getUniform(WebGLProgram* program, long location, ExceptionCode& ec);161 162 long getUniformLocation(WebGLProgram*, const String& name, ExceptionCode&);161 WebGLGetInfo getUniform(WebGLProgram*, const WebGLUniformLocation*, ExceptionCode&); 162 163 PassRefPtr<WebGLUniformLocation> getUniformLocation(WebGLProgram*, const String&, ExceptionCode&); 163 164 164 165 WebGLGetInfo getVertexAttrib(unsigned long index, unsigned long pname, ExceptionCode&); … … 225 226 bool flipY, bool premultiplyAlpha, ExceptionCode&); 226 227 227 void uniform1f( long location, float x);228 void uniform1fv( long location, WebGLFloatArray* v);229 void uniform1fv( long location, float* v, int size);230 void uniform1i( long location, int x);231 void uniform1iv( long location, WebGLIntArray* v);232 void uniform1iv( long location, int* v, int size);233 void uniform2f( long location, float x, float y);234 void uniform2fv( long location, WebGLFloatArray* v);235 void uniform2fv( long location, float* v, int size);236 void uniform2i( long location, int x, int y);237 void uniform2iv( long location, WebGLIntArray* v);238 void uniform2iv( long location, int* v, int size);239 void uniform3f( long location, float x, float y, float z);240 void uniform3fv( long location, WebGLFloatArray* v);241 void uniform3fv( long location, float* v, int size);242 void uniform3i( long location, int x, int y, int z);243 void uniform3iv( long location, WebGLIntArray* v);244 void uniform3iv( long location, int* v, int size);245 void uniform4f( long location, float x, float y, float z, float w);246 void uniform4fv( long location, WebGLFloatArray* v);247 void uniform4fv( long location, float* v, int size);248 void uniform4i( long location, int x, int y, int z, int w);249 void uniform4iv( long location, WebGLIntArray* v);250 void uniform4iv( long location, int* v, int size);251 void uniformMatrix2fv( long location, bool transpose, WebGLFloatArray* value);252 void uniformMatrix2fv( long location, bool transpose, float* value, int size);253 void uniformMatrix3fv( long location, bool transpose, WebGLFloatArray* value);254 void uniformMatrix3fv( long location, bool transpose, float* value, int size);255 void uniformMatrix4fv( long location, bool transpose, WebGLFloatArray* value);256 void uniformMatrix4fv( long location, bool transpose, float* value, int size);228 void uniform1f(const WebGLUniformLocation* location, float x, ExceptionCode&); 229 void uniform1fv(const WebGLUniformLocation* location, WebGLFloatArray* v, ExceptionCode&); 230 void uniform1fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&); 231 void uniform1i(const WebGLUniformLocation* location, int x, ExceptionCode&); 232 void uniform1iv(const WebGLUniformLocation* location, WebGLIntArray* v, ExceptionCode&); 233 void uniform1iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&); 234 void uniform2f(const WebGLUniformLocation* location, float x, float y, ExceptionCode&); 235 void uniform2fv(const WebGLUniformLocation* location, WebGLFloatArray* v, ExceptionCode&); 236 void uniform2fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&); 237 void uniform2i(const WebGLUniformLocation* location, int x, int y, ExceptionCode&); 238 void uniform2iv(const WebGLUniformLocation* location, WebGLIntArray* v, ExceptionCode&); 239 void uniform2iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&); 240 void uniform3f(const WebGLUniformLocation* location, float x, float y, float z, ExceptionCode&); 241 void uniform3fv(const WebGLUniformLocation* location, WebGLFloatArray* v, ExceptionCode&); 242 void uniform3fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&); 243 void uniform3i(const WebGLUniformLocation* location, int x, int y, int z, ExceptionCode&); 244 void uniform3iv(const WebGLUniformLocation* location, WebGLIntArray* v, ExceptionCode&); 245 void uniform3iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&); 246 void uniform4f(const WebGLUniformLocation* location, float x, float y, float z, float w, ExceptionCode&); 247 void uniform4fv(const WebGLUniformLocation* location, WebGLFloatArray* v, ExceptionCode&); 248 void uniform4fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode&); 249 void uniform4i(const WebGLUniformLocation* location, int x, int y, int z, int w, ExceptionCode&); 250 void uniform4iv(const WebGLUniformLocation* location, WebGLIntArray* v, ExceptionCode&); 251 void uniform4iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode&); 252 void uniformMatrix2fv(const WebGLUniformLocation* location, bool transpose, WebGLFloatArray* value, ExceptionCode&); 253 void uniformMatrix2fv(const WebGLUniformLocation* location, bool transpose, float* value, int size, ExceptionCode&); 254 void uniformMatrix3fv(const WebGLUniformLocation* location, bool transpose, WebGLFloatArray* value, ExceptionCode&); 255 void uniformMatrix3fv(const WebGLUniformLocation* location, bool transpose, float* value, int size, ExceptionCode&); 256 void uniformMatrix4fv(const WebGLUniformLocation* location, bool transpose, WebGLFloatArray* value, ExceptionCode&); 257 void uniformMatrix4fv(const WebGLUniformLocation* location, bool transpose, float* value, int size, ExceptionCode&); 257 258 258 259 void useProgram(WebGLProgram*, ExceptionCode&); -
trunk/WebCore/html/canvas/WebGLRenderingContext.idl
r51370 r51884 568 568 [Custom] void getTexParameter(); 569 569 570 // any getUniform(in WebGLProgram program, in longlocation) raises(DOMException);570 // any getUniform(in WebGLProgram program, in WebGLUniformLocation location) raises(DOMException); 571 571 [Custom] void getUniform(); 572 573 longgetUniformLocation(in WebGLProgram program, in DOMString name) raises(DOMException);572 573 WebGLUniformLocation getUniformLocation(in WebGLProgram program, in DOMString name) raises(DOMException); 574 574 575 575 // any getVertexAttrib(in unsigned long index, in unsigned long pname) raises(DOMException); … … 639 639 [Custom] void texSubImage2D(); 640 640 641 void uniform1f(in long location, in float x);642 [Custom] void uniform1fv(in long location, in WebGLFloatArray v);643 void uniform1i(in long location, in long x);644 [Custom] void uniform1iv(in long location, in WebGLIntArray v);645 void uniform2f(in long location, in float x, in float y);646 [Custom] void uniform2fv(in long location, in WebGLFloatArray v);647 void uniform2i(in long location, in long x, in long y);648 [Custom] void uniform2iv(in long location, in WebGLIntArray v);649 void uniform3f(in long location, in float x, in float y, in float z);650 [Custom] void uniform3fv(in long location, in WebGLFloatArray v);651 void uniform3i(in long location, in long x, in long y, in long z);652 [Custom] void uniform3iv(in long location, in WebGLIntArray v);653 void uniform4f(in long location, in float x, in float y, in float z, in float w);654 [Custom] void uniform4fv(in long location, in WebGLFloatArray v);655 void uniform4i(in long location, in long x, in long y, in long z, in long w);656 [Custom] void uniform4iv(in long location, in WebGLIntArray v);657 658 [Custom] void uniformMatrix2fv(in long location, in boolean transpose, in WebGLFloatArray array);659 [Custom] void uniformMatrix3fv(in long location, in boolean transpose, in WebGLFloatArray array);660 [Custom] void uniformMatrix4fv(in long location, in boolean transpose, in WebGLFloatArray array);641 void uniform1f(in WebGLUniformLocation location, in float x) raises(DOMException); 642 [Custom] void uniform1fv(in WebGLUniformLocation location, in WebGLFloatArray v) raises(DOMException); 643 void uniform1i(in WebGLUniformLocation location, in long x) raises(DOMException); 644 [Custom] void uniform1iv(in WebGLUniformLocation location, in WebGLIntArray v) raises(DOMException); 645 void uniform2f(in WebGLUniformLocation location, in float x, in float y) raises(DOMException); 646 [Custom] void uniform2fv(in WebGLUniformLocation location, in WebGLFloatArray v) raises(DOMException); 647 void uniform2i(in WebGLUniformLocation location, in long x, in long y) raises(DOMException); 648 [Custom] void uniform2iv(in WebGLUniformLocation location, in WebGLIntArray v) raises(DOMException); 649 void uniform3f(in WebGLUniformLocation location, in float x, in float y, in float z) raises(DOMException); 650 [Custom] void uniform3fv(in WebGLUniformLocation location, in WebGLFloatArray v) raises(DOMException); 651 void uniform3i(in WebGLUniformLocation location, in long x, in long y, in long z) raises(DOMException); 652 [Custom] void uniform3iv(in WebGLUniformLocation location, in WebGLIntArray v) raises(DOMException); 653 void uniform4f(in WebGLUniformLocation location, in float x, in float y, in float z, in float w) raises(DOMException); 654 [Custom] void uniform4fv(in WebGLUniformLocation location, in WebGLFloatArray v) raises(DOMException); 655 void uniform4i(in WebGLUniformLocation location, in long x, in long y, in long z, in long w) raises(DOMException); 656 [Custom] void uniform4iv(in WebGLUniformLocation location, in WebGLIntArray v) raises(DOMException); 657 658 [Custom] void uniformMatrix2fv(in WebGLUniformLocation location, in boolean transpose, in WebGLFloatArray array) raises(DOMException); 659 [Custom] void uniformMatrix3fv(in WebGLUniformLocation location, in boolean transpose, in WebGLFloatArray array) raises(DOMException); 660 [Custom] void uniformMatrix4fv(in WebGLUniformLocation location, in boolean transpose, in WebGLFloatArray array) raises(DOMException); 661 661 662 662 void useProgram(in WebGLProgram program) raises(DOMException);
Note: See TracChangeset
for help on using the changeset viewer.