| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 <!DOCTYPE html> | 
|  | 2 <html><head> | 
|  | 3 <meta charset="utf-8"> | 
|  | 4 <!-- | 
|  | 5 Tests for the OpenGL ES 2.0 HTML Canvas context | 
|  | 6 | 
|  | 7 Copyright (C) 2011  Ilmari Heikkinen <ilmari.heikkinen@gmail.com> | 
|  | 8 | 
|  | 9 Permission is hereby granted, free of charge, to any person | 
|  | 10 obtaining a copy of this software and associated documentation | 
|  | 11 files (the "Software"), to deal in the Software without | 
|  | 12 restriction, including without limitation the rights to use, | 
|  | 13 copy, modify, merge, publish, distribute, sublicense, and/or sell | 
|  | 14 copies of the Software, and to permit persons to whom the | 
|  | 15 Software is furnished to do so, subject to the following | 
|  | 16 conditions: | 
|  | 17 | 
|  | 18 The above copyright notice and this permission notice shall be | 
|  | 19 included in all copies or substantial portions of the Software. | 
|  | 20 | 
|  | 21 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 
|  | 22 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | 
|  | 23 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
|  | 24 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | 
|  | 25 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | 
|  | 26 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | 
|  | 27 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | 
|  | 28 OTHER DEALINGS IN THE SOFTWARE. | 
|  | 29 | 
|  | 30 --> | 
|  | 31 <link rel="stylesheet" type="text/css" href="../unit.css" /> | 
|  | 32 <script type="application/x-javascript" src="../unit.js"></script> | 
|  | 33 <script type="application/x-javascript" src="../util.js"></script> | 
|  | 34 <script type="application/x-javascript"> | 
|  | 35 | 
|  | 36 Tests.startUnit = function () { | 
|  | 37     var canvas = document.getElementById('gl'); | 
|  | 38     var gl = wrapGLContext(canvas.getContext(GL_CONTEXT_ID)); | 
|  | 39     return [gl]; | 
|  | 40 } | 
|  | 41 | 
|  | 42 Tests.setup = function(gl) { | 
|  | 43     var tex = gl.createTexture(); | 
|  | 44     gl.bindTexture(gl.TEXTURE_2D, tex); | 
|  | 45     return [gl] | 
|  | 46 } | 
|  | 47 | 
|  | 48 Tests.teardown = function(gl,tex) { | 
|  | 49     gl.bindTexture(gl.TEXTURE_2D, null); | 
|  | 50     gl.deleteTexture(tex); | 
|  | 51 } | 
|  | 52 | 
|  | 53 Tests.testTexImage2D = function(gl) { | 
|  | 54     gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0, 16,16, 0); | 
|  | 55     assertGLError(gl, gl.INVALID_VALUE, "width > dst tex width", function(){ | 
|  | 56         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 17,1); | 
|  | 57     }); | 
|  | 58     assertGLError(gl, gl.INVALID_VALUE, "height > dst tex height", function(){ | 
|  | 59         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 1,17); | 
|  | 60     }); | 
|  | 61     // The spec says the source image dimensions can be out of range. | 
|  | 62     assertOk("x > dst tex width", function(){ | 
|  | 63         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 16,0, 1,1); | 
|  | 64     }); | 
|  | 65     assertOk("y > dst tex width", function(){ | 
|  | 66         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,16, 1,1); | 
|  | 67     }); | 
|  | 68     assertOk("x < 0", function(){ | 
|  | 69         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, -1,0, 1,1); | 
|  | 70     }); | 
|  | 71     assertOk("y < 0", function(){ | 
|  | 72         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,-1, 1,1); | 
|  | 73     }); | 
|  | 74     assertGLError(gl, gl.INVALID_VALUE, "width < 0", function(){ | 
|  | 75         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, -1,1); | 
|  | 76     }); | 
|  | 77     assertGLError(gl, gl.INVALID_VALUE, "height < 0", function(){ | 
|  | 78         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 1,-1); | 
|  | 79     }); | 
|  | 80     assertGLError(gl, gl.INVALID_VALUE, "xoffset < 0", function(){ | 
|  | 81         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, -1,0, 0,0, 16,16); | 
|  | 82     }); | 
|  | 83     assertGLError(gl, gl.INVALID_VALUE, "yoffset < 0", function(){ | 
|  | 84         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,-1, 0,0, 16,16); | 
|  | 85     }); | 
|  | 86     assertOk("x < 0 full width", function(){ | 
|  | 87         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, -1,0, 16,16); | 
|  | 88     }); | 
|  | 89     assertOk("y < 0 full height", function(){ | 
|  | 90         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,-1, 16,16); | 
|  | 91     }); | 
|  | 92     assertOk(function(){ | 
|  | 93         gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 16,16); | 
|  | 94     }); | 
|  | 95     assertGLError(gl, gl.INVALID_ENUM, "bad target", function(){ | 
|  | 96         gl.copyTexSubImage2D(gl.FLOAT, 0, 0,0, 0,0, 16,16); | 
|  | 97     }); | 
|  | 98     assertGLError(gl, gl.INVALID_VALUE, "", function(){ | 
|  | 99         gl.copyTexSubImage2D(gl.TEXTURE_2D, -1, 0,0, 0,0, 16,16); | 
|  | 100     }); | 
|  | 101 } | 
|  | 102 | 
|  | 103 | 
|  | 104 Tests.endUnit = function(gl) { | 
|  | 105 } | 
|  | 106 | 
|  | 107 </script> | 
|  | 108 <style>canvas{ position:absolute; }</style> | 
|  | 109 </head><body> | 
|  | 110 <canvas id="gl" width="16" height="16"></canvas> | 
|  | 111 </body></html> | 
| OLD | NEW | 
|---|