mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-07 20:17:37 +00:00
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
"use strict";
|
|
|
|
let isWebGLAvailable;
|
|
|
|
function onWebGLFail() {
|
|
isWebGLAvailable = false;
|
|
}
|
|
|
|
function onWebGLSuccess() {
|
|
isWebGLAvailable = true;
|
|
}
|
|
|
|
function test() {
|
|
if (!isWebGLSupported()) {
|
|
info("Skipping tilt_gl07 because WebGL isn't supported on this hardware.");
|
|
return;
|
|
}
|
|
|
|
let canvas = createCanvas();
|
|
|
|
let renderer = new TiltGL.Renderer(canvas, onWebGLFail, onWebGLSuccess);
|
|
let gl = renderer.context;
|
|
|
|
if (!isWebGLAvailable) {
|
|
return;
|
|
}
|
|
|
|
|
|
let p = new renderer.Program({
|
|
vs: TiltGL.ColorShader.vs,
|
|
fs: TiltGL.ColorShader.fs,
|
|
attributes: ["vertexPosition"],
|
|
uniforms: ["mvMatrix", "projMatrix", "fill"]
|
|
});
|
|
|
|
ok(p instanceof TiltGL.Program,
|
|
"The program object wasn't instantiated correctly.");
|
|
|
|
ok(p._ref,
|
|
"The program WebGL object wasn't created properly.");
|
|
isnot(p._id, -1,
|
|
"The program id wasn't set properly.");
|
|
ok(p._attributes,
|
|
"The program attributes cache wasn't created properly.");
|
|
ok(p._uniforms,
|
|
"The program uniforms cache wasn't created properly.");
|
|
|
|
is(typeof p._attributes.vertexPosition, "number",
|
|
"The vertexPosition attribute wasn't cached as it should.");
|
|
is(typeof p._uniforms.mvMatrix, "object",
|
|
"The mvMatrix uniform wasn't cached as it should.");
|
|
is(typeof p._uniforms.projMatrix, "object",
|
|
"The projMatrix uniform wasn't cached as it should.");
|
|
is(typeof p._uniforms.fill, "object",
|
|
"The fill uniform wasn't cached as it should.");
|
|
}
|