Changeset 50381 in webkit
- Timestamp:
- Oct 31, 2009 3:19:47 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r50358 r50381 1 2009-10-31 Oliver Hunt <oliver@apple.com> 2 3 Reviewed by Jon Honeycutt. 4 5 WebGL allows objects to be used with the wrong context 6 https://bugs.webkit.org/show_bug.cgi?id=30981 7 8 Add tests for null/missing object parameters and objects being used 9 on the wrong context. 10 11 * fast/canvas/webgl/incorrect-context-object-behaviour-expected.txt: Added. 12 * fast/canvas/webgl/incorrect-context-object-behaviour.html: Added. 13 * fast/canvas/webgl/null-object-behaviour-expected.txt: Added. 14 * fast/canvas/webgl/null-object-behaviour.html: Added. 15 * fast/canvas/webgl/resources/shader-test.js: 16 (loadStandardProgram): 17 (loadStandardVertexShader): 18 (loadStandardFragmentShader): 19 * fast/canvas/webgl/script-tests/incorrect-context-object-behaviour.js: Added. 20 * fast/canvas/webgl/script-tests/null-object-behaviour.js: Added. 21 1 22 2009-10-30 Enrica Casucci <enrica@apple.com> 2 23 -
trunk/LayoutTests/fast/canvas/webgl/resources/shader-test.js
r49420 r50381 16 16 function loadStandardProgram(context) { 17 17 var program = context.createProgram(); 18 context.attachShader(program, loadStandardVertexShader(context)); 19 context.attachShader(program, loadStandardFragmentShader(context)); 20 context.linkProgram(program); 21 return program; 22 } 23 24 function loadStandardVertexShader(context) { 18 25 var vertexShader = context.createShader(context.VERTEX_SHADER); 19 26 context.shaderSource(vertexShader, getShaderSource("resources/vertexShader.vert")); 20 27 context.compileShader(vertexShader); 28 return vertexShader; 29 } 30 31 function loadStandardFragmentShader(context) { 21 32 var fragmentShader = context.createShader(context.FRAGMENT_SHADER); 22 33 context.shaderSource(fragmentShader, getShaderSource("resources/fragmentShader.frag")); 23 34 context.compileShader(fragmentShader); 24 context.attachShader(program, vertexShader); 25 context.attachShader(program, fragmentShader); 26 context.linkProgram(program); 27 return program; 35 return fragmentShader; 28 36 } -
trunk/WebCore/ChangeLog
r50369 r50381 1 2009-10-31 Oliver Hunt <oliver@apple.com> 2 3 Reviewed by Jon Honeycutt. 4 5 WebGL allows objects to be used with the wrong context 6 https://bugs.webkit.org/show_bug.cgi?id=30981 7 8 Simply add null checks and a few context guards to ensure we don't 9 deref null or attempt to use an object from a different context. 10 11 Tests: fast/canvas/webgl/incorrect-context-object-behaviour.html 12 fast/canvas/webgl/null-object-behaviour.html 13 14 * html/canvas/CanvasRenderingContext3D.cpp: 15 (WebCore::CanvasRenderingContext3D::attachShader): 16 (WebCore::CanvasRenderingContext3D::bindAttribLocation): 17 (WebCore::CanvasRenderingContext3D::bindBuffer): 18 (WebCore::CanvasRenderingContext3D::bindFramebuffer): 19 (WebCore::CanvasRenderingContext3D::bindRenderbuffer): 20 (WebCore::CanvasRenderingContext3D::bindTexture): 21 (WebCore::CanvasRenderingContext3D::compileShader): 22 (WebCore::CanvasRenderingContext3D::detachShader): 23 (WebCore::CanvasRenderingContext3D::framebufferRenderbuffer): 24 (WebCore::CanvasRenderingContext3D::framebufferTexture2D): 25 (WebCore::CanvasRenderingContext3D::getProgrami): 26 (WebCore::CanvasRenderingContext3D::getProgramiv): 27 (WebCore::CanvasRenderingContext3D::getProgramInfoLog): 28 (WebCore::CanvasRenderingContext3D::getShaderi): 29 (WebCore::CanvasRenderingContext3D::getShaderiv): 30 (WebCore::CanvasRenderingContext3D::getShaderInfoLog): 31 (WebCore::CanvasRenderingContext3D::getShaderSource): 32 (WebCore::CanvasRenderingContext3D::getUniformf): 33 (WebCore::CanvasRenderingContext3D::getUniformfv): 34 (WebCore::CanvasRenderingContext3D::getUniformi): 35 (WebCore::CanvasRenderingContext3D::getUniformiv): 36 (WebCore::CanvasRenderingContext3D::getUniformLocation): 37 (WebCore::CanvasRenderingContext3D::isBuffer): 38 (WebCore::CanvasRenderingContext3D::linkProgram): 39 (WebCore::CanvasRenderingContext3D::shaderSource): 40 * html/canvas/CanvasRenderingContext3D.h: 41 * html/canvas/CanvasRenderingContext3D.idl: 42 1 43 2009-10-30 Zoltan Horvath <zoltan@webkit.org> 2 44 -
trunk/WebCore/html/canvas/CanvasRenderingContext3D.cpp
r50181 r50381 128 128 } 129 129 130 void CanvasRenderingContext3D::attachShader(CanvasProgram* program, CanvasShader* shader) 131 { 132 if (!program || !shader) 133 return; 130 void CanvasRenderingContext3D::attachShader(CanvasProgram* program, CanvasShader* shader, ExceptionCode& ec) 131 { 132 if (!program || program->context() != this || !shader || shader->context() != this) { 133 ec = TYPE_MISMATCH_ERR; 134 return; 135 } 134 136 m_context->attachShader(program, shader); 135 137 cleanupAfterGraphicsCall(false); 136 138 } 137 139 138 void CanvasRenderingContext3D::bindAttribLocation(CanvasProgram* program, unsigned long index, const String& name) 139 { 140 if (!program) 141 return; 140 void CanvasRenderingContext3D::bindAttribLocation(CanvasProgram* program, unsigned long index, const String& name, ExceptionCode& ec) 141 { 142 if (!program || program->context() != this) { 143 ec = TYPE_MISMATCH_ERR; 144 return; 145 } 142 146 m_context->bindAttribLocation(program, index, name); 143 147 cleanupAfterGraphicsCall(false); 144 148 } 145 149 146 void CanvasRenderingContext3D::bindBuffer(unsigned long target, CanvasBuffer* buffer) 147 { 150 void CanvasRenderingContext3D::bindBuffer(unsigned long target, CanvasBuffer* buffer, ExceptionCode& ec) 151 { 152 if (!buffer || buffer->context() != this) { 153 ec = TYPE_MISMATCH_ERR; 154 return; 155 } 148 156 m_context->bindBuffer(target, buffer); 149 157 cleanupAfterGraphicsCall(false); … … 151 159 152 160 153 void CanvasRenderingContext3D::bindFramebuffer(unsigned long target, CanvasFramebuffer* buffer) 154 { 161 void CanvasRenderingContext3D::bindFramebuffer(unsigned long target, CanvasFramebuffer* buffer, ExceptionCode& ec) 162 { 163 if (!buffer || buffer->context() != this) { 164 ec = TYPE_MISMATCH_ERR; 165 return; 166 } 155 167 m_context->bindFramebuffer(target, buffer); 156 168 cleanupAfterGraphicsCall(false); 157 169 } 158 170 159 void CanvasRenderingContext3D::bindRenderbuffer(unsigned long target, CanvasRenderbuffer* renderbuffer) 160 { 161 m_context->bindRenderbuffer(target, renderbuffer); 162 cleanupAfterGraphicsCall(false); 163 } 164 165 166 void CanvasRenderingContext3D::bindTexture(unsigned long target, CanvasTexture* texture) 167 { 171 void CanvasRenderingContext3D::bindRenderbuffer(unsigned long target, CanvasRenderbuffer* renderBuffer, ExceptionCode& ec) 172 { 173 if (!renderBuffer || renderBuffer->context() != this) { 174 ec = TYPE_MISMATCH_ERR; 175 return; 176 } 177 m_context->bindRenderbuffer(target, renderBuffer); 178 cleanupAfterGraphicsCall(false); 179 } 180 181 182 void CanvasRenderingContext3D::bindTexture(unsigned long target, CanvasTexture* texture, ExceptionCode& ec) 183 { 184 if (!texture || texture->context() != this) { 185 ec = TYPE_MISMATCH_ERR; 186 return; 187 } 168 188 m_context->bindTexture(target, texture); 169 189 cleanupAfterGraphicsCall(false); … … 263 283 } 264 284 265 void CanvasRenderingContext3D::compileShader(CanvasShader* shader) 266 { 285 void CanvasRenderingContext3D::compileShader(CanvasShader* shader, ExceptionCode& ec) 286 { 287 if (!shader || shader->context() != this) { 288 ec = TYPE_MISMATCH_ERR; 289 return; 290 } 267 291 m_context->compileShader(shader); 268 292 cleanupAfterGraphicsCall(false); … … 401 425 } 402 426 403 void CanvasRenderingContext3D::detachShader(CanvasProgram* program, CanvasShader* shader) 404 { 405 if (!program || !shader) 406 return; 407 427 void CanvasRenderingContext3D::detachShader(CanvasProgram* program, CanvasShader* shader, ExceptionCode& ec) 428 { 429 if (!program || program->context() != this || !shader || shader->context() != this) { 430 ec = TYPE_MISMATCH_ERR; 431 return; 432 } 408 433 m_context->detachShader(program, shader); 409 434 cleanupAfterGraphicsCall(false); … … 461 486 } 462 487 463 void CanvasRenderingContext3D::framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, CanvasRenderbuffer* buffer) 464 { 465 if (!buffer) 466 return; 467 488 void CanvasRenderingContext3D::framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, CanvasRenderbuffer* buffer, ExceptionCode& ec) 489 { 490 if (!buffer || buffer->context() != this) { 491 ec = TYPE_MISMATCH_ERR; 492 return; 493 } 468 494 m_context->framebufferRenderbuffer(target, attachment, renderbuffertarget, buffer); 469 495 cleanupAfterGraphicsCall(false); 470 496 } 471 497 472 void CanvasRenderingContext3D::framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, CanvasTexture* texture, long level) 473 { 474 if (!texture) 475 return; 476 498 void CanvasRenderingContext3D::framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, CanvasTexture* texture, long level, ExceptionCode& ec) 499 { 500 if (!texture || texture->context() != this) { 501 ec = TYPE_MISMATCH_ERR; 502 return; 503 } 477 504 m_context->framebufferTexture2D(target, attachment, textarget, texture, level); 478 505 cleanupAfterGraphicsCall(false); … … 591 618 } 592 619 593 int CanvasRenderingContext3D::getProgrami(CanvasProgram* program, unsigned long pname) 594 { 620 int CanvasRenderingContext3D::getProgrami(CanvasProgram* program, unsigned long pname, ExceptionCode& ec) 621 { 622 if (!program || program->context() != this) { 623 ec = TYPE_MISMATCH_ERR; 624 return 0; 625 } 626 595 627 int result = m_context->getProgrami(program, pname); 596 628 cleanupAfterGraphicsCall(false); … … 598 630 } 599 631 600 PassRefPtr<CanvasIntArray> CanvasRenderingContext3D::getProgramiv(CanvasProgram* program, unsigned long pname) 601 { 632 PassRefPtr<CanvasIntArray> CanvasRenderingContext3D::getProgramiv(CanvasProgram* program, unsigned long pname, ExceptionCode& ec) 633 { 634 if (!program || program->context() != this) { 635 ec = TYPE_MISMATCH_ERR; 636 return 0; 637 } 602 638 RefPtr<CanvasIntArray> array = m_context->getProgramiv(program, pname); 603 639 cleanupAfterGraphicsCall(false); … … 605 641 } 606 642 607 String CanvasRenderingContext3D::getProgramInfoLog(CanvasProgram* program) 608 { 643 String CanvasRenderingContext3D::getProgramInfoLog(CanvasProgram* program, ExceptionCode& ec) 644 { 645 if (!program || program->context() != this) { 646 ec = TYPE_MISMATCH_ERR; 647 return ""; 648 } 609 649 String s = m_context->getProgramInfoLog(program); 610 650 cleanupAfterGraphicsCall(false); … … 626 666 } 627 667 628 int CanvasRenderingContext3D::getShaderi(CanvasShader* shader, unsigned long pname) 629 { 668 int CanvasRenderingContext3D::getShaderi(CanvasShader* shader, unsigned long pname, ExceptionCode& ec) 669 { 670 if (!shader || shader->context() != this) { 671 ec = TYPE_MISMATCH_ERR; 672 return 0; 673 } 630 674 int result = m_context->getShaderi(shader, pname); 631 675 cleanupAfterGraphicsCall(false); … … 633 677 } 634 678 635 PassRefPtr<CanvasIntArray> CanvasRenderingContext3D::getShaderiv(CanvasShader* shader, unsigned long pname) 636 { 679 PassRefPtr<CanvasIntArray> CanvasRenderingContext3D::getShaderiv(CanvasShader* shader, unsigned long pname, ExceptionCode& ec) 680 { 681 if (!shader || shader->context() != this) { 682 ec = TYPE_MISMATCH_ERR; 683 return 0; 684 } 637 685 RefPtr<CanvasIntArray> array = m_context->getShaderiv(shader, pname); 638 686 cleanupAfterGraphicsCall(false); … … 640 688 } 641 689 642 String CanvasRenderingContext3D::getShaderInfoLog(CanvasShader* shader) 643 { 690 String CanvasRenderingContext3D::getShaderInfoLog(CanvasShader* shader, ExceptionCode& ec) 691 { 692 if (!shader || shader->context() != this) { 693 ec = TYPE_MISMATCH_ERR; 694 return ""; 695 } 644 696 String s = m_context->getShaderInfoLog(shader); 645 697 cleanupAfterGraphicsCall(false); … … 647 699 } 648 700 649 String CanvasRenderingContext3D::getShaderSource(CanvasShader* shader) 650 { 701 String CanvasRenderingContext3D::getShaderSource(CanvasShader* shader, ExceptionCode& ec) 702 { 703 if (!shader || shader->context() != this) { 704 ec = TYPE_MISMATCH_ERR; 705 return ""; 706 } 651 707 String s = m_context->getShaderSource(shader); 652 708 cleanupAfterGraphicsCall(false); … … 687 743 } 688 744 689 float CanvasRenderingContext3D::getUniformf(CanvasProgram* program, long location) 690 { 745 float CanvasRenderingContext3D::getUniformf(CanvasProgram* program, long location, ExceptionCode& ec) 746 { 747 if (!program || program->context() != this) { 748 ec = TYPE_MISMATCH_ERR; 749 return 0; 750 } 691 751 float result = m_context->getUniformf(program, location); 692 752 cleanupAfterGraphicsCall(false); … … 694 754 } 695 755 696 PassRefPtr<CanvasFloatArray> CanvasRenderingContext3D::getUniformfv(CanvasProgram* program, long location) 697 { 756 PassRefPtr<CanvasFloatArray> CanvasRenderingContext3D::getUniformfv(CanvasProgram* program, long location, ExceptionCode& ec) 757 { 758 if (!program || program->context() != this) { 759 ec = TYPE_MISMATCH_ERR; 760 return 0; 761 } 698 762 RefPtr<CanvasFloatArray> array = m_context->getUniformfv(program, location); 699 763 cleanupAfterGraphicsCall(false); … … 701 765 } 702 766 703 long CanvasRenderingContext3D::getUniformi(CanvasProgram* program, long location) 704 { 767 long CanvasRenderingContext3D::getUniformi(CanvasProgram* program, long location, ExceptionCode& ec) 768 { 769 if (!program || program->context() != this) { 770 ec = TYPE_MISMATCH_ERR; 771 return 0; 772 } 705 773 long result = m_context->getUniformi(program, location); 706 774 cleanupAfterGraphicsCall(false); … … 708 776 } 709 777 710 PassRefPtr<CanvasIntArray> CanvasRenderingContext3D::getUniformiv(CanvasProgram* program, long location) 711 { 778 PassRefPtr<CanvasIntArray> CanvasRenderingContext3D::getUniformiv(CanvasProgram* program, long location, ExceptionCode& ec) 779 { 780 if (!program || program->context() != this) { 781 ec = TYPE_MISMATCH_ERR; 782 return 0; 783 } 712 784 RefPtr<CanvasIntArray> array = m_context->getUniformiv(program, location); 713 785 cleanupAfterGraphicsCall(false); … … 715 787 } 716 788 717 long CanvasRenderingContext3D::getUniformLocation(CanvasProgram* program, const String& name) 718 { 789 long CanvasRenderingContext3D::getUniformLocation(CanvasProgram* program, const String& name, ExceptionCode& ec) 790 { 791 if (!program || program->context() != this) { 792 ec = TYPE_MISMATCH_ERR; 793 return 0; 794 } 719 795 return m_context->getUniformLocation(program, name); 720 796 } … … 765 841 if (!buffer) 766 842 return false; 767 843 768 844 return m_context->isBuffer(buffer); 769 845 } … … 805 881 } 806 882 807 void CanvasRenderingContext3D::linkProgram(CanvasProgram* program) 808 { 809 if (!program) 810 return; 883 void CanvasRenderingContext3D::linkProgram(CanvasProgram* program, ExceptionCode& ec) 884 { 885 if (!program || program->context() != this) { 886 ec = TYPE_MISMATCH_ERR; 887 return; 888 } 811 889 812 890 m_context->linkProgram(program); … … 857 935 } 858 936 859 void CanvasRenderingContext3D::shaderSource(CanvasShader* shader, const String& string) 860 { 937 void CanvasRenderingContext3D::shaderSource(CanvasShader* shader, const String& string, ExceptionCode& ec) 938 { 939 if (!shader || shader->context() != this) { 940 ec = TYPE_MISMATCH_ERR; 941 return; 942 } 861 943 m_context->shaderSource(shader, string); 862 944 cleanupAfterGraphicsCall(false); -
trunk/WebCore/html/canvas/CanvasRenderingContext3D.h
r50181 r50381 62 62 63 63 void activeTexture(unsigned long texture); 64 void attachShader(CanvasProgram*, CanvasShader* );65 void bindAttribLocation(CanvasProgram*, unsigned long index, const String& name );66 void bindBuffer(unsigned long target, CanvasBuffer* );67 void bindFramebuffer(unsigned long target, CanvasFramebuffer* );68 void bindRenderbuffer(unsigned long target, CanvasRenderbuffer* );69 void bindTexture(unsigned long target, CanvasTexture* );64 void attachShader(CanvasProgram*, CanvasShader*, ExceptionCode& ec); 65 void bindAttribLocation(CanvasProgram*, unsigned long index, const String& name, ExceptionCode& ec); 66 void bindBuffer(unsigned long target, CanvasBuffer*, ExceptionCode& ec); 67 void bindFramebuffer(unsigned long target, CanvasFramebuffer*, ExceptionCode& ec); 68 void bindRenderbuffer(unsigned long target, CanvasRenderbuffer*, ExceptionCode& ec); 69 void bindTexture(unsigned long target, CanvasTexture*, ExceptionCode& ec); 70 70 void blendColor(double red, double green, double blue, double alpha); 71 71 void blendEquation(unsigned long mode); … … 84 84 void clearStencil(long); 85 85 void colorMask(bool red, bool green, bool blue, bool alpha); 86 void compileShader(CanvasShader* );86 void compileShader(CanvasShader*, ExceptionCode& ec); 87 87 88 88 //void compressedTexImage2D(unsigned long target, long level, unsigned long internalformat, unsigned long width, unsigned long height, long border, unsigned long imageSize, const void* data); … … 111 111 void depthMask(bool); 112 112 void depthRange(double zNear, double zFar); 113 void detachShader(CanvasProgram*, CanvasShader* );113 void detachShader(CanvasProgram*, CanvasShader*, ExceptionCode& ec); 114 114 void disable(unsigned long cap); 115 115 void disableVertexAttribArray(unsigned long index); … … 121 121 void finish(); 122 122 void flush(); 123 void framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, CanvasRenderbuffer* );124 void framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, CanvasTexture*, long level );123 void framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, CanvasRenderbuffer*, ExceptionCode& ec); 124 void framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, CanvasTexture*, long level, ExceptionCode& ec); 125 125 void frontFace(unsigned long mode); 126 126 void generateMipmap(unsigned long target); … … 144 144 int getInteger(unsigned long pname); 145 145 PassRefPtr<CanvasIntArray> getIntegerv(unsigned long pname); 146 int getProgrami(CanvasProgram*, unsigned long pname );147 PassRefPtr<CanvasIntArray> getProgramiv(CanvasProgram*, unsigned long pname );148 String getProgramInfoLog(CanvasProgram* );146 int getProgrami(CanvasProgram*, unsigned long pname, ExceptionCode& ec); 147 PassRefPtr<CanvasIntArray> getProgramiv(CanvasProgram*, unsigned long pname, ExceptionCode& ec); 148 String getProgramInfoLog(CanvasProgram*, ExceptionCode& ec); 149 149 int getRenderbufferParameteri(unsigned long target, unsigned long pname); 150 150 PassRefPtr<CanvasIntArray> getRenderbufferParameteriv(unsigned long target, unsigned long pname); 151 int getShaderi(CanvasShader*, unsigned long pname );152 PassRefPtr<CanvasIntArray> getShaderiv(CanvasShader*, unsigned long pname );153 154 String getShaderInfoLog(CanvasShader* );151 int getShaderi(CanvasShader*, unsigned long pname, ExceptionCode& ec); 152 PassRefPtr<CanvasIntArray> getShaderiv(CanvasShader*, unsigned long pname, ExceptionCode& ec); 153 154 String getShaderInfoLog(CanvasShader*, ExceptionCode& ec); 155 155 156 156 // TBD 157 157 // void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); 158 158 159 String getShaderSource(CanvasShader* );159 String getShaderSource(CanvasShader*, ExceptionCode& ec); 160 160 String getString(unsigned long name); 161 161 … … 165 165 PassRefPtr<CanvasIntArray> getTexParameteriv(unsigned long target, unsigned long pname); 166 166 167 float getUniformf(CanvasProgram* program, long location );168 PassRefPtr<CanvasFloatArray> getUniformfv(CanvasProgram* program, long location );169 long getUniformi(CanvasProgram* program, long location );170 PassRefPtr<CanvasIntArray> getUniformiv(CanvasProgram* program, long location );171 172 long getUniformLocation(CanvasProgram*, const String& name );167 float getUniformf(CanvasProgram* program, long location, ExceptionCode& ec); 168 PassRefPtr<CanvasFloatArray> getUniformfv(CanvasProgram* program, long location, ExceptionCode& ec); 169 long getUniformi(CanvasProgram* program, long location, ExceptionCode& ec); 170 PassRefPtr<CanvasIntArray> getUniformiv(CanvasProgram* program, long location, ExceptionCode& ec); 171 172 long getUniformLocation(CanvasProgram*, const String& name, ExceptionCode& ec); 173 173 174 174 float getVertexAttribf(unsigned long index, unsigned long pname); … … 188 188 bool isTexture(CanvasTexture*); 189 189 void lineWidth(double); 190 void linkProgram(CanvasProgram* );190 void linkProgram(CanvasProgram*, ExceptionCode& ec); 191 191 void pixelStorei(unsigned long pname, long param); 192 192 void polygonOffset(double factor, double units); … … 198 198 void sampleCoverage(double value, bool invert); 199 199 void scissor(long x, long y, unsigned long width, unsigned long height); 200 void shaderSource(CanvasShader*, const String& );200 void shaderSource(CanvasShader*, const String&, ExceptionCode& ec); 201 201 void stencilFunc(unsigned long func, long ref, unsigned long mask); 202 202 void stencilFuncSeparate(unsigned long face, unsigned long func, long ref, unsigned long mask); -
trunk/WebCore/html/canvas/CanvasRenderingContext3D.idl
r49447 r50381 462 462 463 463 void activeTexture(in unsigned long texture); 464 void attachShader(in CanvasProgram program, in CanvasShader shader) ;465 void bindAttribLocation(in CanvasProgram program, in unsigned long index, in DOMString name) ;466 void bindBuffer(in unsigned long target, in CanvasBuffer buffer) ;467 void bindFramebuffer(in unsigned long target, in CanvasFramebuffer framebuffer) ;468 void bindRenderbuffer(in unsigned long target, in CanvasRenderbuffer renderbuffer) ;469 void bindTexture(in unsigned long target, in CanvasTexture texture) ;464 void attachShader(in CanvasProgram program, in CanvasShader shader) raises(DOMException); 465 void bindAttribLocation(in CanvasProgram program, in unsigned long index, in DOMString name) raises(DOMException); 466 void bindBuffer(in unsigned long target, in CanvasBuffer buffer) raises(DOMException); 467 void bindFramebuffer(in unsigned long target, in CanvasFramebuffer framebuffer) raises(DOMException); 468 void bindRenderbuffer(in unsigned long target, in CanvasRenderbuffer renderbuffer) raises(DOMException); 469 void bindTexture(in unsigned long target, in CanvasTexture texture) raises(DOMException); 470 470 void blendColor(in double red, in double green, in double blue, in double alpha); 471 471 void blendEquation( in unsigned long mode ); … … 487 487 void clearStencil(in long s); 488 488 void colorMask(in boolean red, in boolean green, in boolean blue, in boolean alpha); 489 void compileShader(in CanvasShader shader) ;489 void compileShader(in CanvasShader shader) raises(DOMException); 490 490 491 491 //void compressedTexImage2D(in unsigned long target, in long level, in unsigned long internalformat, in unsigned long width, in unsigned long height, in long border, in unsigned long imageSize, const void* data); … … 515 515 // FIXME: this differs from the current WebGL spec (depthRangef) 516 516 void depthRange(in double zNear, in double zFar); 517 void detachShader(in CanvasProgram program, in CanvasShader shader) ;517 void detachShader(in CanvasProgram program, in CanvasShader shader) raises(DOMException); 518 518 void disable(in unsigned long cap); 519 519 void disableVertexAttribArray(in unsigned long index); … … 525 525 void finish(); 526 526 void flush(); 527 void framebufferRenderbuffer(in unsigned long target, in unsigned long attachment, in unsigned long renderbuffertarget, in CanvasRenderbuffer renderbuffer) ;528 void framebufferTexture2D(in unsigned long target, in unsigned long attachment, in unsigned long textarget, in CanvasTexture texture, in long level) ;527 void framebufferRenderbuffer(in unsigned long target, in unsigned long attachment, in unsigned long renderbuffertarget, in CanvasRenderbuffer renderbuffer) raises(DOMException); 528 void framebufferTexture2D(in unsigned long target, in unsigned long attachment, in unsigned long textarget, in CanvasTexture texture, in long level) raises(DOMException); 529 529 void frontFace(in unsigned long mode); 530 530 void generateMipmap(in unsigned long target); … … 553 553 long getInteger(in unsigned long pname); 554 554 CanvasIntArray getIntegerv(in unsigned long pname); 555 long getProgrami(in CanvasProgram program, in unsigned long pname) ;556 CanvasIntArray getProgramiv(in CanvasProgram program, in unsigned long pname) ;557 DOMString getProgramInfoLog(in CanvasProgram program) ;555 long getProgrami(in CanvasProgram program, in unsigned long pname) raises(DOMException); 556 CanvasIntArray getProgramiv(in CanvasProgram program, in unsigned long pname) raises(DOMException); 557 DOMString getProgramInfoLog(in CanvasProgram program) raises(DOMException); 558 558 long getRenderbufferParameteri(in unsigned long target, in unsigned long pname); 559 559 CanvasIntArray getRenderbufferParameteriv(in unsigned long target, in unsigned long pname); 560 long getShaderi(in CanvasShader shader, in unsigned long pname) ;561 CanvasIntArray getShaderiv(in CanvasShader shader, in unsigned long pname) ;562 563 DOMString getShaderInfoLog(in CanvasShader shader) ;560 long getShaderi(in CanvasShader shader, in unsigned long pname) raises(DOMException); 561 CanvasIntArray getShaderiv(in CanvasShader shader, in unsigned long pname) raises(DOMException); 562 563 DOMString getShaderInfoLog(in CanvasShader shader) raises(DOMException); 564 564 565 565 // TBD 566 566 // void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); 567 567 568 DOMString getShaderSource(in CanvasShader shader) ;568 DOMString getShaderSource(in CanvasShader shader) raises(DOMException); 569 569 DOMString getString(in unsigned long name); 570 570 … … 574 574 CanvasIntArray getTexParameteriv(in unsigned long target, in unsigned long pname); 575 575 576 float getUniformf(in CanvasProgram program, in long location) ;577 CanvasFloatArray getUniformfv(in CanvasProgram program, in long location) ;578 long getUniformi(in CanvasProgram program, in long location) ;579 CanvasIntArray getUniformiv(in CanvasProgram program, in long location) ;576 float getUniformf(in CanvasProgram program, in long location) raises(DOMException); 577 CanvasFloatArray getUniformfv(in CanvasProgram program, in long location) raises(DOMException); 578 long getUniformi(in CanvasProgram program, in long location) raises(DOMException); 579 CanvasIntArray getUniformiv(in CanvasProgram program, in long location) raises(DOMException); 580 580 581 long getUniformLocation(in CanvasProgram program, in DOMString name) ;581 long getUniformLocation(in CanvasProgram program, in DOMString name) raises(DOMException); 582 582 583 583 float getVertexAttribf(in unsigned long index, in unsigned long pname); … … 597 597 boolean isTexture(in CanvasTexture texture); 598 598 void lineWidth(in double width); 599 void linkProgram(in CanvasProgram program) ;599 void linkProgram(in CanvasProgram program) raises(DOMException); 600 600 void pixelStorei(in unsigned long pname, in long param); 601 601 void polygonOffset(in double factor, in double units); 602 602 603 603 CanvasArray readPixels(in long x, in long y, in unsigned long width, in unsigned long height, in unsigned long format, in unsigned long type); 604 604 … … 607 607 void sampleCoverage(in double value, in boolean invert); 608 608 void scissor(in long x, in long y, in unsigned long width, in unsigned long height); 609 void shaderSource(in CanvasShader shader, in DOMString string) ;609 void shaderSource(in CanvasShader shader, in DOMString string) raises(DOMException); 610 610 void stencilFunc(in unsigned long func, in long ref, in unsigned long mask); 611 611 void stencilFuncSeparate(in unsigned long face, in unsigned long func, in long ref, in unsigned long mask);
Note: See TracChangeset
for help on using the changeset viewer.