Code from Chapter 11
Example A-3 gives the full code listing for CH11EX1.html. Notice that many of the code styles and constructs we have used through the course of this book are still in place in this application. Besides the obvious inclusion of code related directly to WebGL, this application operates essentially the same way as the other apps we discussed in this book.
Example A-3. WebGL test
<!doctype html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
>
<title>
CH11EX1: WebGL Test</title>
<
script
src
=
"modernizr.js"
><
/script>
<
script
type
=
"text/javascript"
src
=
"sylvester.js"
><
/script>
<
script
type
=
"text/javascript"
src
=
"glUtils.js"
><
/script>
<
script
id
=
"shader-fs"
type
=
"x-shader/x-fragment"
>
#
ifdef
GL_ES
precision
highp
float
;
#
endif
varying
vec4
vColor
;
void
main
(
void
)
{
gl_FragColor
=
vColor
;
}
<
/script>
<
script
id
=
"shader-vs"
type
=
"x-shader/x-vertex"
>
attribute
vec3
aVertexPosition
;
attribute
vec4
aVertexColor
;
uniform
mat4
uMVMatrix
;
uniform
mat4
uPMatrix
;
varying
vec4
vColor
;
void
main
(
void
)
{
gl_Position
=
uPMatrix
*
uMVMatrix
*
vec4
(
aVertexPosition
,
1.0
);
vColor
=
aVertexColor
;
}
<
/script>
<
script
type
=
"text/javascript"
>
window
.
addEventListener
(
"load"
,
eventWindowLoaded
,
false
);
function
eventWindowLoaded
()
{
canvasApp
();
}
function
canvasSupport
()
{
return
Modernizr
.
canvas
;
}
function
webglSupport
()
{
return
Modernizr
.
webgl
;
}
function
canvasApp
()
{
function
drawScreen
()
{
webGLContext
.
viewport
(
0
,
0
,
webGLContext
.
viewportWidth
,
webGLContext
.
viewportHeight
);
webGLContext ...
Get HTML5 Canvas, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.