OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <html><head> | |
3 <meta charset="utf-8"> | |
4 <link rel="stylesheet" type="text/css" href="../unit.css" /> | |
5 <script type="application/x-javascript" src="../unit.js"></script> | |
6 <script type="application/x-javascript" src="../util.js"></script> | |
7 <script type="application/x-javascript"> | |
8 | |
9 Tests.startUnit = function () { | |
10 var canvas = document.getElementById('gl'); | |
11 var gl = wrapGLContext(canvas.getContext(GL_CONTEXT_ID)); | |
12 var tex = gl.createTexture(); | |
13 gl.bindTexture(gl.TEXTURE_2D, tex); | |
14 return [gl, tex]; | |
15 } | |
16 | |
17 Tests.testTexImage2D = function(gl) { | |
18 var b = document.createElement('b'); | |
19 var div = document.createElement('div'); | |
20 var c = document.getElementById('c'); | |
21 assertOk("make texture", | |
22 function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGN
ED_BYTE, c); }); | |
23 assertGLError(gl, gl.INVALID_VALUE, "y + height > texture height", | |
24 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 1, gl.RGBA, gl.UNSIGNE
D_BYTE, c); }); | |
25 assertGLError(gl, gl.INVALID_VALUE, "x + width > texture width", | |
26 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 1, 0, gl.RGBA, gl.UNSIGNE
D_BYTE, c); }); | |
27 assertGLError(gl, gl.INVALID_VALUE, "negative x", | |
28 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, -1, 0, gl.RGBA, gl.UNSIGN
ED_BYTE, c); }); | |
29 assertGLError(gl, gl.INVALID_VALUE, "negative y", | |
30 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, -1, gl.RGBA, gl.UNSIGN
ED_BYTE, c); }); | |
31 assertGLError(gl, gl.INVALID_VALUE, "negative level", | |
32 function() {gl.texSubImage2D(gl.TEXTURE_2D, -1, 0, 0, gl.RGBA, gl.UNSIGN
ED_BYTE, c); }); | |
33 assertThrowNoGLError(gl, "bad element b", | |
34 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED
_BYTE, b); }); | |
35 assertThrowNoGLError(gl, "bad element div", | |
36 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED
_BYTE, div); }); | |
37 assertThrowNoGLError(gl, "no element", | |
38 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED
_BYTE, 0); }); | |
39 assertThrowNoGLError(gl, "string as data", | |
40 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0,0, 0, gl.RGBA, gl.UNSIGNED
_BYTE, "foo"); }); | |
41 assertGLError(gl, gl.INVALID_ENUM, "bad target", | |
42 function() {gl.texSubImage2D(gl.FLOAT, 0, 0,0, gl.RGBA, gl.UNSIGNED_BYTE
, c); }); | |
43 assertOk("good args", | |
44 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGN
ED_BYTE, c); }); | |
45 assertGLError(gl, gl.INVALID_OPERATION, "format not same as original", | |
46 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGB, gl.UNSIGNED_
BYTE, c); }); | |
47 assertGLError(gl, gl.INVALID_OPERATION, "type not same as original", | |
48 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED
_SHORT_4_4_4_4, c); }); | |
49 assertOk("make texture RGB", | |
50 function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED
_BYTE, c); }); | |
51 assertOk("format same as original RGB", | |
52 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGB, gl.UNSIGNED_
BYTE, c); }); | |
53 assertGLError(gl, gl.INVALID_OPERATION, "format not same as original RGB", | |
54 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED
_BYTE, c); }); | |
55 assertGLError(gl, gl.INVALID_OPERATION, "type not same as original RGB", | |
56 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGB, gl.UNSIGNED_
SHORT_5_6_5, c); }); | |
57 assertOk("make texture RGBA 4_4_4_4", | |
58 function() {gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGN
ED_SHORT_4_4_4_4, c); }); | |
59 assertOk("format same as original RGBA 4_4_4_4", | |
60 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED
_SHORT_4_4_4_4, c); }); | |
61 assertGLError(gl, gl.INVALID_OPERATION, "format not same as original RGBA 4_
4_4_4", | |
62 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGB, gl.UNSIGNED_
BYTE, c); }); | |
63 assertGLError(gl, gl.INVALID_OPERATION, "type not same as original RGBA 4_4_
4_4", | |
64 function() {gl.texSubImage2D(gl.TEXTURE_2D, 0, 0,0, gl.RGBA, gl.UNSIGNED
_BYTE, c); }); | |
65 } | |
66 | |
67 Tests.endUnit = function(gl, tex) { | |
68 gl.bindTexture(gl.TEXTURE_2D, null); | |
69 gl.deleteTexture(tex); | |
70 } | |
71 | |
72 </script> | |
73 <style>canvas{ position:absolute; }</style> | |
74 </head><body> | |
75 <canvas id="gl" width="16" height="16"></canvas> | |
76 <canvas id="c" width="16" height="16"></canvas> | |
77 </body></html> | |
OLD | NEW |