draw point
commit
7b656b8055
@ -0,0 +1,25 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title> draw </title>
|
||||
</head>
|
||||
|
||||
<body onload="main()">
|
||||
<canvas id="gl-canvas" width="1024" height="768">Oops!</canvas>
|
||||
<script src="webgl.js"></script>
|
||||
</body>
|
||||
|
||||
<script id="vertex-shader" type="x-shader/x-vertex">
|
||||
void main() {
|
||||
gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
gl_PointSize = 10.0;
|
||||
}
|
||||
</script>
|
||||
|
||||
<script id="fragment-shader" type="x-shader/x-fragment">
|
||||
void main() {
|
||||
gl_FragColor = vec4(0.0, 0.3, 0.5, 1.0);
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
@ -0,0 +1,68 @@
|
||||
let gl = null;
|
||||
|
||||
function compileShader(id, type) {
|
||||
const code = document.getElementById(id).innerHTML
|
||||
const shader = gl.createShader(type);
|
||||
|
||||
gl.shaderSource(shader, code);
|
||||
gl.compileShader(shader);
|
||||
|
||||
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
|
||||
console.log('theres an error');
|
||||
console.log(gl.getShaderInfoLog(shader));
|
||||
}
|
||||
|
||||
return shader;
|
||||
}
|
||||
|
||||
function buildShaderProgram(shaderInfo) {
|
||||
const program = gl.createProgram();
|
||||
|
||||
shaderInfo.forEach((desc) => {
|
||||
const shader = compileShader(desc.id, desc.type);
|
||||
|
||||
if (shader) {
|
||||
console.log('attach')
|
||||
gl.attachShader(program, shader);
|
||||
}
|
||||
});
|
||||
|
||||
gl.linkProgram(program);
|
||||
|
||||
|
||||
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
|
||||
console.log("Error linking shader program");
|
||||
console.log(gl.getProgramInfoLog(program));
|
||||
}
|
||||
|
||||
return program;
|
||||
}
|
||||
|
||||
function main() {
|
||||
var canvas = document.getElementById('gl-canvas');
|
||||
gl = canvas.getContext('webgl');
|
||||
var program;
|
||||
|
||||
if (!gl) {
|
||||
console.log('no gl');
|
||||
return;
|
||||
}
|
||||
|
||||
const shaderSet = [
|
||||
{
|
||||
type: gl.VERTEX_SHADER,
|
||||
id: "vertex-shader",
|
||||
},
|
||||
{
|
||||
type: gl.FRAGMENT_SHADER,
|
||||
id: "fragment-shader",
|
||||
},
|
||||
];
|
||||
|
||||
program = buildShaderProgram(shaderSet);
|
||||
gl.useProgram(program);
|
||||
|
||||
gl.clearColor(0.5, 0.0, 0.0, 1.0);
|
||||
gl.clear(gl.COLOR_BUFFER_BIT);
|
||||
gl.drawArrays(gl.POINTS, 0, 1);
|
||||
}
|
||||
Loading…
Reference in New Issue