browser/devtools/tilt/test/browser_tilt_gl01.js

branch
TOR_BUG_9701
changeset 11
deefc01c0e14
equal deleted inserted replaced
-1:000000000000 0:c080ec6d5baa
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
3 "use strict";
4
5 let isWebGLAvailable;
6
7 function onWebGLFail() {
8 isWebGLAvailable = false;
9 }
10
11 function onWebGLSuccess() {
12 isWebGLAvailable = true;
13 }
14
15 function test() {
16 if (!isWebGLSupported()) {
17 info("Skipping tilt_gl01 because WebGL isn't supported on this hardware.");
18 return;
19 }
20
21 let canvas = createCanvas();
22
23 let renderer = new TiltGL.Renderer(canvas, onWebGLFail, onWebGLSuccess);
24 let gl = renderer.context;
25
26 if (!isWebGLAvailable) {
27 return;
28 }
29
30
31 ok(renderer,
32 "The TiltGL.Renderer constructor should have initialized a new object.");
33
34 ok(gl instanceof WebGLRenderingContext,
35 "The renderer context wasn't created correctly from the passed canvas.");
36
37
38 let clearColor = gl.getParameter(gl.COLOR_CLEAR_VALUE),
39 clearDepth = gl.getParameter(gl.DEPTH_CLEAR_VALUE);
40
41 is(clearColor[0], 0,
42 "The default red clear color wasn't set correctly at initialization.");
43 is(clearColor[1], 0,
44 "The default green clear color wasn't set correctly at initialization.");
45 is(clearColor[2], 0,
46 "The default blue clear color wasn't set correctly at initialization.");
47 is(clearColor[3], 0,
48 "The default alpha clear color wasn't set correctly at initialization.");
49 is(clearDepth, 1,
50 "The default clear depth wasn't set correctly at initialization.");
51
52 is(renderer.width, canvas.width,
53 "The renderer width wasn't set correctly from the passed canvas.");
54 is(renderer.height, canvas.height,
55 "The renderer height wasn't set correctly from the passed canvas.");
56
57 ok(renderer.mvMatrix,
58 "The model view matrix wasn't initialized properly.");
59 ok(renderer.projMatrix,
60 "The model view matrix wasn't initialized properly.");
61
62 ok(isApproxVec(renderer._fillColor, [1, 1, 1, 1]),
63 "The default fill color wasn't set correctly.");
64 ok(isApproxVec(renderer._strokeColor, [0, 0, 0, 1]),
65 "The default stroke color wasn't set correctly.");
66 is(renderer._strokeWeightValue, 1,
67 "The default stroke weight wasn't set correctly.");
68
69 ok(renderer._colorShader,
70 "A default color shader should have been created.");
71
72 ok(typeof renderer.Program, "function",
73 "At init, the renderer should have created a Program constructor.");
74 ok(typeof renderer.VertexBuffer, "function",
75 "At init, the renderer should have created a VertexBuffer constructor.");
76 ok(typeof renderer.IndexBuffer, "function",
77 "At init, the renderer should have created a IndexBuffer constructor.");
78 ok(typeof renderer.Texture, "function",
79 "At init, the renderer should have created a Texture constructor.");
80
81 renderer.depthTest(true);
82 is(gl.getParameter(gl.DEPTH_TEST), true,
83 "The depth test wasn't enabled when requested.");
84
85 renderer.depthTest(false);
86 is(gl.getParameter(gl.DEPTH_TEST), false,
87 "The depth test wasn't disabled when requested.");
88
89 renderer.stencilTest(true);
90 is(gl.getParameter(gl.STENCIL_TEST), true,
91 "The stencil test wasn't enabled when requested.");
92
93 renderer.stencilTest(false);
94 is(gl.getParameter(gl.STENCIL_TEST), false,
95 "The stencil test wasn't disabled when requested.");
96
97 renderer.cullFace("front");
98 is(gl.getParameter(gl.CULL_FACE), true,
99 "The cull face wasn't enabled when requested.");
100 is(gl.getParameter(gl.CULL_FACE_MODE), gl.FRONT,
101 "The cull face front mode wasn't set correctly.");
102
103 renderer.cullFace("back");
104 is(gl.getParameter(gl.CULL_FACE), true,
105 "The cull face wasn't enabled when requested.");
106 is(gl.getParameter(gl.CULL_FACE_MODE), gl.BACK,
107 "The cull face back mode wasn't set correctly.");
108
109 renderer.cullFace("both");
110 is(gl.getParameter(gl.CULL_FACE), true,
111 "The cull face wasn't enabled when requested.");
112 is(gl.getParameter(gl.CULL_FACE_MODE), gl.FRONT_AND_BACK,
113 "The cull face back mode wasn't set correctly.");
114
115 renderer.cullFace(false);
116 is(gl.getParameter(gl.CULL_FACE), false,
117 "The cull face wasn't disabled when requested.");
118
119 renderer.frontFace("cw");
120 is(gl.getParameter(gl.FRONT_FACE), gl.CW,
121 "The front face cw mode wasn't set correctly.");
122
123 renderer.frontFace("ccw");
124 is(gl.getParameter(gl.FRONT_FACE), gl.CCW,
125 "The front face ccw mode wasn't set correctly.");
126
127 renderer.blendMode("alpha");
128 is(gl.getParameter(gl.BLEND), true,
129 "The blend mode wasn't enabled when requested.");
130 is(gl.getParameter(gl.BLEND_SRC_ALPHA), gl.SRC_ALPHA,
131 "The soruce blend func wasn't set correctly.");
132 is(gl.getParameter(gl.BLEND_DST_ALPHA), gl.ONE_MINUS_SRC_ALPHA,
133 "The destination blend func wasn't set correctly.");
134
135 renderer.blendMode("add");
136 is(gl.getParameter(gl.BLEND), true,
137 "The blend mode wasn't enabled when requested.");
138 is(gl.getParameter(gl.BLEND_SRC_ALPHA), gl.SRC_ALPHA,
139 "The soruce blend func wasn't set correctly.");
140 is(gl.getParameter(gl.BLEND_DST_ALPHA), gl.ONE,
141 "The destination blend func wasn't set correctly.");
142
143 renderer.blendMode(false);
144 is(gl.getParameter(gl.CULL_FACE), false,
145 "The blend mode wasn't disabled when requested.");
146
147
148 is(gl.getParameter(gl.CURRENT_PROGRAM), null,
149 "No program should be initially set in the WebGL context.");
150
151 renderer.useColorShader(new renderer.VertexBuffer([1, 2, 3], 3));
152
153 ok(gl.getParameter(gl.CURRENT_PROGRAM) instanceof WebGLProgram,
154 "The correct program hasn't been set in the WebGL context.");
155 }

mercurial