2 Copyright (c) 2019 The Khronos Group Inc.
3 Use of this source code is governed by an MIT-style license that can be
4 found in the LICENSE.txt file.
10 <link rel=
"stylesheet" href=
"../../../resources/js-test-style.css"/>
11 <script src=
"../../../js/js-test-pre.js"></script>
12 <script src=
"../../../js/webgl-test-utils.js"></script>
15 <canvas id=
"canvas1" width=
"16" height=
"16"></canvas>
16 <canvas id=
"canvas2" width=
"16" height=
"16"></canvas>
17 <canvas id=
"c" width=
"16" height=
"16"></canvas>
18 <div id=
"description"></div>
19 <div id=
"console"></div>
22 description('Tests texImage2D with different data source');
24 var wtu
= WebGLTestUtils
;
25 var c
= document
.getElementById("c");
26 var gl
= wtu
.create3DContext("canvas1", undefined, 2);
27 var tex
= gl
.createTexture();
29 // Do TexImage2D taking a canvas source first.
30 gl
.bindTexture(gl
.TEXTURE_2D
, tex
);
31 gl
.texImage2D(gl
.TEXTURE_2D
, 0, gl
.RGBA8
, gl
.RGBA
, gl
.UNSIGNED_BYTE
, c
);
32 wtu
.glErrorShouldBe(gl
, gl
.NO_ERROR
, "TexImage2D taking a canvas source should succeed");
33 gl
.texImage2D(gl
.TEXTURE_2D
, 0, gl
.RGB10_A2UI
, 16, 16, 0, gl
.RGBA_INTEGER
, gl
.UNSIGNED_INT_2_10_10_10_REV
, null);
34 wtu
.glErrorShouldBe(gl
, gl
.NO_ERROR
, "Teximage2D taking a null array buffer should succeed");
35 gl
.deleteTexture(tex
);
37 // Do TexImage2D taking an array buffer first.
38 gl
= wtu
.create3DContext("canvas2", undefined, 2);
39 tex
= gl
.createTexture();
40 gl
.bindTexture(gl
.TEXTURE_2D
, tex
);
41 gl
.texImage2D(gl
.TEXTURE_2D
, 0, gl
.RGB10_A2UI
, 16, 16, 0, gl
.RGBA_INTEGER
, gl
.UNSIGNED_INT_2_10_10_10_REV
, null);
42 wtu
.glErrorShouldBe(gl
, gl
.NO_ERROR
, "Teximage2D taking a null array buffer should succeed");
43 gl
.texImage2D(gl
.TEXTURE_2D
, 0, gl
.RGB10_A2UI
, gl
.RGBA_INTEGER
, gl
.UNSIGNED_INT_2_10_10_10_REV
, c
);
44 wtu
.glErrorShouldBe(gl
, [gl
.INVALID_VALUE
, gl
.INVALID_ENUM
], "TexImage2D taking RGB10_A2UI internalformat and a canvas source should fail");
45 gl
.deleteTexture(tex
);
47 var successfullyParsed
= true;
49 <script src=
"../../../js/js-test-post.js"></script>