77 lines
1.6 KiB
HTML
77 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<canvas id="canvas" width="40" height="40"></canvas>
|
|
|
|
<script>
|
|
var success = false;
|
|
function compileShader(gl, shaderSource, shaderType) {
|
|
var shader = gl.createShader(shaderType);
|
|
|
|
gl.shaderSource(shader, shaderSource);
|
|
|
|
gl.compileShader(shader);
|
|
|
|
success = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
|
|
|
|
shouldBe("success", "true");
|
|
|
|
return shader;
|
|
}
|
|
|
|
function createProgram(gl, vertexShader, fragmentShader) {
|
|
var program = gl.createProgram();
|
|
|
|
gl.attachShader(program, vertexShader);
|
|
gl.attachShader(program, fragmentShader);
|
|
|
|
gl.linkProgram(program);
|
|
|
|
success = gl.getProgramParameter(program, gl.LINK_STATUS);
|
|
|
|
shouldBe("success", "true");
|
|
|
|
return program;
|
|
}
|
|
|
|
description("Make sure that compiling GLSL ES 3 shaders works as expected.");
|
|
|
|
if (window.internals)
|
|
internals.settings.setWebGL2Enabled(true);
|
|
|
|
var vertexShaderSource = `#version 300 es
|
|
layout(location = 0) in vec2 pos;
|
|
|
|
void main()
|
|
{
|
|
gl_Position = vec4(pos, 0.0, 1.0);
|
|
}
|
|
`;
|
|
|
|
var fragmentShaderSource = `#version 300 es
|
|
precision mediump float;
|
|
out vec4 color;
|
|
|
|
void main()
|
|
{
|
|
color = vec4(1.0, 0.5, 0.0, 1.0);
|
|
}
|
|
`;
|
|
|
|
var canvas = document.getElementById("canvas");
|
|
var gl = canvas.getContext("webgl2");
|
|
|
|
var vertexShader = compileShader(gl, vertexShaderSource, gl.VERTEX_SHADER);
|
|
var fragmentShader = compileShader(gl, fragmentShaderSource, gl.FRAGMENT_SHADER);
|
|
|
|
var program = createProgram(gl, vertexShader, fragmentShader);
|
|
|
|
</script>
|
|
<script src="../../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|
|
|