Bug 1945965 – remove new tab April Fools logo. r=home-newtab-reviewers,reemhamz
[gecko.git] / dom / canvas / test / webgl-conf / checkout / conformance / more / functions / copyTexSubImage2DBadArgs.html
bloba170c6c78ed8a25ada8ba6e624fcad31e55c59dd
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <!--
6 Copyright (c) 2019 The Khronos Group Inc.
7 Use of this source code is governed by an MIT-style license that can be
8 found in the LICENSE.txt file.
9 -->
10 <link rel="stylesheet" type="text/css" href="../unit.css" />
11 <script type="application/javascript" src="../unit.js"></script>
12 <script type="application/javascript" src="../util.js"></script>
13 <script type="application/javascript">
15 Tests.startUnit = function () {
16 var canvas = document.getElementById('gl');
17 var gl = wrapGLContext(getGLContext(canvas));
18 return [gl];
21 Tests.setup = function(gl) {
22 var tex = gl.createTexture();
23 gl.bindTexture(gl.TEXTURE_2D, tex);
24 return [gl]
27 Tests.teardown = function(gl,tex) {
28 gl.bindTexture(gl.TEXTURE_2D, null);
29 gl.deleteTexture(tex);
32 Tests.testTexImage2D = function(gl) {
33 gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0,0, 16,16, 0);
34 assertGLError(gl, gl.INVALID_VALUE, "width > dst tex width", function(){
35 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 17,1);
36 });
37 assertGLError(gl, gl.INVALID_VALUE, "height > dst tex height", function(){
38 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 1,17);
39 });
40 // The spec says the source image dimensions can be out of range.
41 assertOk("x > dst tex width", function(){
42 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 16,0, 1,1);
43 });
44 assertOk("y > dst tex width", function(){
45 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,16, 1,1);
46 });
47 assertOk("x < 0", function(){
48 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, -1,0, 1,1);
49 });
50 assertOk("y < 0", function(){
51 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,-1, 1,1);
52 });
53 assertGLError(gl, gl.INVALID_VALUE, "width < 0", function(){
54 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, -1,1);
55 });
56 assertGLError(gl, gl.INVALID_VALUE, "height < 0", function(){
57 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 1,-1);
58 });
59 assertGLError(gl, gl.INVALID_VALUE, "xoffset < 0", function(){
60 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, -1,0, 0,0, 16,16);
61 });
62 assertGLError(gl, gl.INVALID_VALUE, "yoffset < 0", function(){
63 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,-1, 0,0, 16,16);
64 });
65 assertGLError(gl, gl.INVALID_VALUE, "dimension out of range", function(){
66 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 4,0, 0,0, 16,16);
67 });
68 assertGLError(gl, gl.INVALID_VALUE, "dimension out of range", function(){
69 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,4, 0,0, 16,16);
70 });
71 assertOk("x < 0 full width", function(){
72 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, -1,0, 16,16);
73 });
74 assertOk("y < 0 full height", function(){
75 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,-1, 16,16);
76 });
77 assertOk(function(){
78 gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0,0, 0,0, 16,16);
79 });
80 assertGLError(gl, gl.INVALID_ENUM, "bad target", function(){
81 gl.copyTexSubImage2D(gl.FLOAT, 0, 0,0, 0,0, 16,16);
82 });
83 assertGLError(gl, gl.INVALID_VALUE, "", function(){
84 gl.copyTexSubImage2D(gl.TEXTURE_2D, -1, 0,0, 0,0, 16,16);
85 });
89 Tests.endUnit = function(gl) {
92 </script>
93 <style>canvas{ position:absolute; }</style>
94 </head><body>
95 <canvas id="gl" width="16" height="16"></canvas>
96 </body></html>