[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75
cmarrin at apple.com
cmarrin at apple.com
Thu Oct 29 20:39:21 UTC 2009
The following commit has been merged in the webkit-1.1 branch:
commit 75926087b390247ee61e775a6a40407e3ce78943
Author: cmarrin at apple.com <cmarrin at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Oct 5 22:37:43 2009 +0000
Added files for WebGL blog post
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49119 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/manual-tests/webgl/Earth.html b/WebKitSite/blog-files/webgl/Earth.html
similarity index 100%
copy from WebCore/manual-tests/webgl/Earth.html
copy to WebKitSite/blog-files/webgl/Earth.html
diff --git a/WebCore/manual-tests/webgl/ManyPlanetsDeep.html b/WebKitSite/blog-files/webgl/ManyPlanetsDeep.html
similarity index 100%
copy from WebCore/manual-tests/webgl/ManyPlanetsDeep.html
copy to WebKitSite/blog-files/webgl/ManyPlanetsDeep.html
diff --git a/WebCore/manual-tests/webgl/SpinningBox.html b/WebKitSite/blog-files/webgl/SpinningBox.html
similarity index 100%
copy from WebCore/manual-tests/webgl/SpinningBox.html
copy to WebKitSite/blog-files/webgl/SpinningBox.html
diff --git a/WebKitSite/blog-files/webgl/SpiritBox.html b/WebKitSite/blog-files/webgl/SpiritBox.html
new file mode 100644
index 0000000..3e6096f
--- /dev/null
+++ b/WebKitSite/blog-files/webgl/SpiritBox.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>Spinning WebGL Box</title>
+</head>
+<body onload="start()">
+
+<script src="resources/utils3d.js" type="text/javascript"> </script>
+<script src="resources/CanvasMatrix.js" type="text/javascript"> </script>
+<script id="vshader" type="x-shader/x-vertex">
+ uniform mat4 u_modelViewProjMatrix;
+ uniform mat4 u_normalMatrix;
+ uniform vec3 lightDir;
+
+ attribute vec3 vNormal;
+ attribute vec4 vTexCoord;
+ attribute vec4 vPosition;
+
+ varying float v_Dot;
+ varying vec2 v_texCoord;
+
+ void main()
+ {
+ gl_Position = u_modelViewProjMatrix * vPosition;
+ v_texCoord = vTexCoord.st;
+ vec4 transNormal = u_normalMatrix * vec4(vNormal,1);
+ v_Dot = max(dot(transNormal.xyz, lightDir), 0.0);
+ }
+</script>
+
+<script id="fshader" type="x-shader/x-fragment">
+ uniform sampler2D sampler2d;
+
+ varying float v_Dot;
+ varying vec2 v_texCoord;
+
+ void main()
+ {
+ vec2 texCoord = vec2(v_texCoord.s, 1.0 - v_texCoord.t);
+ vec4 color = texture2D(sampler2d,texCoord);
+ color += vec4(0.1,0.1,0.1,1);
+ gl_FragColor = vec4(color.xyz * v_Dot, color.a);
+ }
+</script>
+
+<script>
+ function init()
+ {
+ // Initialize
+ var gl = initWebGL("example1", // The id of the Canvas Element
+ "vshader", "fshader", // The ids of the vertex and fragment shaders
+ [ "vNormal", "vTexCoord", "vPosition"], // The vertex attribute names used by the shaders.
+ // The order they appear here corresponds to their index
+ // used later.
+ [ 0, 0, 0, 1 ], 10000); // The clear color and depth values
+
+ // Set some uniform variables for the shaders
+ gl.uniform3f(gl.getUniformLocation(gl.program, "lightDir"), 0, 0, 1);
+ gl.uniform1i(gl.getUniformLocation(gl.program, "sampler2d"), 0);
+
+ // Enable texturing
+ gl.enable(gl.TEXTURE_2D);
+
+ // Create a box. On return 'gl' contains a 'box' property with the BufferObjects containing
+ // the arrays for vertices, normals, texture coords, and indices.
+ gl.box = makeBox(gl);
+
+ // Load an image to use. Returns a CanvasTexture object
+ spiritTexture = loadImageTexture(gl, "resources/spirit.jpg");
+
+ // Create some matrices to use later and save their locations in the shaders
+ gl.mvMatrix = new CanvasMatrix4();
+ gl.u_normalMatrixLoc = gl.getUniformLocation(gl.program, "u_normalMatrix");
+ gl.normalMatrix = new CanvasMatrix4();
+ gl.u_modelViewProjMatrixLoc = gl.getUniformLocation(gl.program, "u_modelViewProjMatrix");
+ gl.mvpMatrix = new CanvasMatrix4();
+
+ // Enable all the vertex arrays
+ gl.enableVertexAttribArray(0);
+ gl.enableVertexAttribArray(1);
+ gl.enableVertexAttribArray(2);
+
+ // Setup all the vertex attributes for vertices, normals and texCoords
+ gl.bindBuffer(gl.ARRAY_BUFFER, gl.box.vertexObject);
+ gl.vertexAttribPointer(2, 3, gl.FLOAT, false, 0, 0);
+
+ gl.bindBuffer(gl.ARRAY_BUFFER, gl.box.normalObject);
+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);
+
+ gl.bindBuffer(gl.ARRAY_BUFFER, gl.box.texCoordObject);
+ gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0);
+
+ // Bind the index array
+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, gl.box.indexObject);
+
+ return gl;
+ }
+
+ width = -1;
+ height = -1;
+
+ function reshape(gl)
+ {
+ var canvas = document.getElementById('example1');
+ if (canvas.clientWidth == width && canvas.clientHeight == height)
+ return;
+
+ width = canvas.clientWidth;
+ height = canvas.clientHeight;
+
+ // Set the viewport and projection matrix for the scene
+ gl.viewport(0, 0, width, height);
+ gl.perspectiveMatrix = new CanvasMatrix4();
+ gl.perspectiveMatrix.lookat(0,0,7, 0, 0, 0, 0, 1, 0);
+ gl.perspectiveMatrix.perspective(30, width/height, 1, 10000);
+ }
+
+ function drawPicture(gl)
+ {
+ // Make sure the canvas is sized correctly.
+ reshape(gl);
+
+ // Clear the canvas
+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
+
+ // Make a model/view matrix.
+ gl.mvMatrix.makeIdentity();
+ gl.mvMatrix.rotate(currentAngle, 0,1,0);
+ gl.mvMatrix.rotate(20, 1,0,0);
+
+ // Construct the normal matrix from the model-view matrix and pass it in
+ gl.normalMatrix.load(gl.mvMatrix);
+ gl.normalMatrix.invert();
+ gl.normalMatrix.transpose();
+ gl.uniformMatrix4fv(gl.u_normalMatrixLoc, false, gl.normalMatrix.getAsCanvasFloatArray());
+
+ // Construct the model-view * projection matrix and pass it in
+ gl.mvpMatrix.load(gl.mvMatrix);
+ gl.mvpMatrix.multRight(gl.perspectiveMatrix);
+ gl.uniformMatrix4fv(gl.u_modelViewProjMatrixLoc, false, gl.mvpMatrix.getAsCanvasFloatArray());
+
+ // Bind the texture to use
+ gl.bindTexture(gl.TEXTURE_2D, spiritTexture);
+
+ // Draw the cube
+ gl.drawElements(gl.TRIANGLES, gl.box.numIndices, gl.UNSIGNED_BYTE, 0);
+
+ // Finish up.
+ gl.flush();
+
+ // Show the framerate
+ framerate.snapshot();
+
+ currentAngle += incAngle;
+ if (currentAngle > 360)
+ currentAngle -= 360;
+ }
+
+ function start()
+ {
+ if (!document.getElementById("example1").getContext("webkit-3d"))
+ alert("You don't have a version of WebKit with WebGL or you don't have it enabled.")
+ var gl = init();
+ currentAngle = 0;
+ incAngle = 0.5;
+ framerate = new Framerate("framerate");
+ setInterval(function() { drawPicture(gl) }, 10);
+ }
+</script>
+
+<canvas id="example1" style="width:500px; height:500px" width="500px" height="500px">
+ If you're seeing this your web browser doesn't support the <canvas>> element. Ouch!
+</canvas>
+<div id="framerate"></div>
+
+</body>
+</html>
diff --git a/WebCore/manual-tests/webgl/TeapotPerPixel.html b/WebKitSite/blog-files/webgl/TeapotPerPixel.html
similarity index 100%
copy from WebCore/manual-tests/webgl/TeapotPerPixel.html
copy to WebKitSite/blog-files/webgl/TeapotPerPixel.html
diff --git a/WebCore/manual-tests/webgl/TeapotPerVertex.html b/WebKitSite/blog-files/webgl/TeapotPerVertex.html
similarity index 100%
copy from WebCore/manual-tests/webgl/TeapotPerVertex.html
copy to WebKitSite/blog-files/webgl/TeapotPerVertex.html
diff --git a/WebKitSite/blog-files/webgl/WebGL+CSS.html b/WebKitSite/blog-files/webgl/WebGL+CSS.html
new file mode 100644
index 0000000..e293a08
--- /dev/null
+++ b/WebKitSite/blog-files/webgl/WebGL+CSS.html
@@ -0,0 +1,370 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Canvas3d example</title>
+ <script src="resources/CanvasMatrix.js"> </script>
+ <script src="resources/utils3d.js"> </script>
+ <script id="vshader" type="x-shader/x-vertex">
+ /*
+ Copyright (c) 2008 Seneca College
+ Licenced under the MIT License (http://www.c3dl.org/index.php/mit-license/)
+ */
+
+ // We need to create our own light structure since we can't access
+ // the light() function in the 2.0 context.
+ struct Light
+ {
+ vec4 ambient;
+ vec4 diffuse;
+ vec4 specular;
+ vec4 position;
+
+ vec3 halfVector;
+ };
+
+ struct Material
+ {
+ vec4 emission;
+ vec4 ambient;
+ vec4 diffuse;
+ vec4 specular;
+ float shininess;
+ };
+
+ //
+ // vertex attributes
+ //
+ attribute vec4 a_vertex;
+ attribute vec3 a_normal;
+ attribute vec4 a_texCoord;
+
+ // for every model we multiply the projection, view and model matrices
+ // once to prevent having to do it for every vertex, however we still need
+ // the view matrix to calculate lighting.
+ uniform mat4 u_modelViewMatrix;
+
+ // we can calculate this once per model to speed up processing done on the js side.
+ uniform mat4 u_modelViewProjMatrix;
+
+ // matrix to transform the vertex normals
+ uniform mat4 u_normalMatrix;
+
+ // custom light structures need to be used since we don't have access to
+ // light states.
+ uniform Light u_light;
+
+ // material
+ uniform vec4 u_globalAmbientColor;
+ uniform Material u_frontMaterial;
+ uniform Material u_backMaterial;
+
+ // passed to fragment shader
+ varying vec4 v_diffuse, v_ambient;
+ varying vec3 v_normal, v_lightDir;
+ varying vec2 v_texCoord;
+
+ /*
+ Given a reference to the ambient and diffuse lighting variables,
+ this function will calculate how much each component contributes to the scene.
+
+ Light light - the light in view space
+ vec3 normal -
+ vec4 ambient -
+ vec4 diffuse -
+ */
+ vec3 directionalLight(inout vec4 ambient, inout vec4 diffuse)
+ {
+ ambient += u_light.ambient;
+ diffuse += u_light.diffuse;
+ return normalize(vec3(u_light.position));
+ }
+
+ void main()
+ {
+ v_normal = normalize(u_normalMatrix * vec4(a_normal, 1)).xyz;
+
+ vec4 ambient = vec4(0.0, 0.0, 0.0, 1.0);
+ vec4 diffuse = vec4(0.0, 0.0, 0.0, 1.0);
+ vec4 specular = vec4(0.0, 0.0, 0.0, 1.0);
+
+ // place the current vertex into view space
+ // ecPos = eye coordinate position.
+ vec4 ecPos4 = u_modelViewMatrix * a_vertex;
+
+ // the current vertex in eye coordinate space
+ vec3 ecPos = ecPos4.xyz/ecPos4.w;
+ v_lightDir = directionalLight(ambient, diffuse);
+
+ v_ambient = u_frontMaterial.ambient * ambient;
+ v_ambient += u_globalAmbientColor * u_frontMaterial.ambient;
+ v_diffuse = u_frontMaterial.diffuse * diffuse;
+
+ gl_Position = u_modelViewProjMatrix * a_vertex;
+ v_texCoord = a_texCoord.st;
+ }
+ </script>
+
+ <script id="fshader" type="x-shader/x-fragment">
+ struct Light
+ {
+ vec4 ambient;
+ vec4 diffuse;
+ vec4 specular;
+ vec4 position;
+
+ vec3 halfVector;
+ };
+
+ struct Material
+ {
+ vec4 emission;
+ vec4 ambient;
+ vec4 diffuse;
+ vec4 specular;
+ float shininess;
+ };
+
+ uniform sampler2D u_sampler2d;
+ uniform Light u_light;
+ uniform Material u_frontMaterial;
+ uniform Material u_backMaterial;
+
+ varying vec4 v_diffuse, v_ambient;
+ varying vec3 v_normal, v_lightDir;
+ varying vec2 v_texCoord;
+
+ void main()
+ {
+ vec4 color = v_diffuse;
+
+ vec3 n = normalize(v_normal);
+
+ Light light = u_light;
+ vec3 lightDir = v_lightDir;
+ float nDotL = max(dot(n, lightDir), 0.0);
+ if (nDotL > 0.0) {
+ color = vec4(color.rgb * nDotL, color.a);
+ float nDotHV = max(dot(n, light.halfVector), 0.0);
+ vec4 specular = u_frontMaterial.specular * light.specular;
+ color += vec4(specular.rgb * pow(nDotHV, u_frontMaterial.shininess), specular.a);
+ }
+
+ gl_FragColor = color + v_ambient;
+ }
+ </script>
+
+ <script>
+ console.log("Hello");
+ function setDirectionalLight(ctx, program, eyeVector, direction, ambient, diffuse, specular)
+ {
+ var lightString = "u_light.";
+
+ ctx.uniform4f(ctx.getUniformLocation(program, lightString+"ambient"),
+ ambient[0], ambient[1], ambient[2], ambient[3]);
+ ctx.uniform4f(ctx.getUniformLocation(program, lightString+"diffuse"),
+ diffuse[0], diffuse[1], diffuse[2], diffuse[3]);
+ ctx.uniform4f(ctx.getUniformLocation(program, lightString+"specular"),
+ specular[0], specular[1], specular[2], specular[3]);
+ ctx.uniform4f(ctx.getUniformLocation(program, lightString+"position"),
+ direction[0], direction[1], direction[2], direction[3]);
+
+ // compute the half vector
+ var halfVector = [ eyeVector[0] + direction[0], eyeVector[1] + direction[1], eyeVector[2] + direction[2] ];
+ var length = Math.sqrt(halfVector[0] * halfVector[0] +
+ halfVector[1] * halfVector[1] +
+ halfVector[2] * halfVector[2]);
+ if (length == 0)
+ halfVector = [ 0, 0, 1 ];
+ else {
+ halfVector[0] /= length;
+ halfVector[1] /= length;
+ halfVector[2] /= length;
+ }
+
+ ctx.uniform3f(ctx.getUniformLocation(program, lightString+"halfVector"),
+ halfVector[0], halfVector[1], halfVector[2]);
+ }
+
+ function setMaterial(ctx, program, emission, ambient, diffuse, specular, shininess)
+ {
+ var matString = "u_frontMaterial.";
+ ctx.uniform4f(ctx.getUniformLocation(program, matString+"emission"),
+ emission[0], emission[1], emission[2], emission[3]);
+ ctx.uniform4f(ctx.getUniformLocation(program, matString+"ambient"),
+ ambient[0], ambient[1], ambient[2], ambient[3]);
+ ctx.uniform4f(ctx.getUniformLocation(program, matString+"diffuse"),
+ diffuse[0], diffuse[1], diffuse[2], diffuse[3]);
+ ctx.uniform4f(ctx.getUniformLocation(program, matString+"specular"),
+ specular[0], specular[1], specular[2], specular[3]);
+ ctx.uniform1f(ctx.getUniformLocation(program, matString+"shininess"), shininess);
+ }
+
+ function init()
+ {
+ var gl = initWebGL("example", "vshader", "fshader",
+ [ "a_normal", "a_texCoord", "a_vertex"],
+ [ 0, 0, 0, 0 ], 10000);
+
+ gl.uniform1i(gl.getUniformLocation(gl.program, "u_sampler2d"), 0);
+ gl.uniform4f(gl.getUniformLocation(gl.program, "u_globalAmbientColor"), 0.2, 0.2, 0.2, 1);
+
+ setDirectionalLight(gl, gl.program,
+ [ 0, 0, 1 ], // eyeVector
+ [0, 0, 1, 1], // position
+ [0.1, 0.1, 0.1, 1], // ambient
+ [1, 1, 1, 1], // diffuse
+ [1, 1, 1, 1]); // specular
+
+ setMaterial(gl, gl.program,
+ [ 0, 0, 0, 0 ], // emission
+ [ 0.1, 0.1, 0.1, 1 ], // ambient
+ [ 0.8, 0.2, 0, 1 ], // diffuse
+ [ 0, 0, 1, 1 ], // specular
+ 32); // shininess
+
+ obj = loadObj(gl, "resources/teapot.obj");
+
+ mvMatrix = new CanvasMatrix4();
+ normalMatrix = new CanvasMatrix4();
+
+ return gl;
+ }
+
+ width = -1;
+ height = -1;
+ loaded = false;
+
+ function reshape(ctx)
+ {
+ var canvas = document.getElementById('example');
+ if (canvas.clientWidth == width && canvas.clientHeight == height)
+ return;
+
+ width = canvas.clientWidth;
+ height = canvas.clientHeight;
+
+ ctx.viewport(0, 0, width, height);
+
+ ctx.perspectiveMatrix = new CanvasMatrix4();
+ ctx.perspectiveMatrix.lookat(0,0,50, 0, 0, 0, 0, 1, 0);
+ ctx.perspectiveMatrix.perspective(30, width/height, 1, 10000);
+ }
+
+ function drawPicture(ctx)
+ {
+ var startRenderTime = new Date().getTime();
+
+ reshape(ctx);
+ ctx.clear(ctx.COLOR_BUFFER_BIT | ctx.DEPTH_BUFFER_BIT);
+
+ if (!loaded && obj.loaded) {
+ loaded = true;
+
+ ctx.enableVertexAttribArray(0);
+ ctx.enableVertexAttribArray(1);
+ ctx.enableVertexAttribArray(2);
+
+ ctx.bindBuffer(ctx.ARRAY_BUFFER, obj.vertexObject);
+ ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
+
+ ctx.bindBuffer(ctx.ARRAY_BUFFER, obj.normalObject);
+ ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
+
+ ctx.bindBuffer(ctx.ARRAY_BUFFER, obj.texCoordObject);
+ ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
+
+ ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, obj.indexObject);
+ }
+
+ if (!loaded)
+ return;
+
+ // generate the model-view matrix
+ mvMatrix.makeIdentity();
+ mvMatrix.rotate(currentAngle, 0, 1, 0);
+ mvMatrix.rotate(10, 1,0,0);
+ ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_modelViewMatrix"), false, mvMatrix.getAsCanvasFloatArray());
+
+ // construct the normal matrix from the model-view matrix
+ normalMatrix.load(mvMatrix);
+ normalMatrix.invert();
+ normalMatrix.transpose();
+ ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false, normalMatrix.getAsCanvasFloatArray());
+
+ mvMatrix.multRight(ctx.perspectiveMatrix);
+ ctx.uniformMatrix4fv(ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false, mvMatrix.getAsCanvasFloatArray());
+
+ ctx.drawElements(ctx.TRIANGLES, obj.numIndices, ctx.UNSIGNED_SHORT, 0);
+
+ ctx.flush();
+
+ framerate.snapshot();
+
+ currentAngle += incAngle;
+ if (currentAngle > 360)
+ currentAngle -= 360;
+ }
+
+ function start()
+ {
+ // set up event listener on the canvas
+ var canvas = document.getElementById('example');
+ var container = document.getElementById('container');
+ container.addEventListener('click', function () {
+ isTilted = !isTilted;
+ container.className = isTilted ? 'tilted' : '';
+ }, false);
+
+ var ctx = init();
+ currentAngle = 0;
+ incAngle = 0.2;
+ framerate = new Framerate("framerate");
+ var f = function() { drawPicture(ctx) };
+ setInterval(f, 10);
+ }
+
+ var isTilted = false;
+
+ </script>
+ <style type="text/css">
+ body {
+ background-color:grey;
+ }
+ #container {
+ -webkit-transform: perspective(800) rotateY(0) rotateZ(0);
+ -webkit-transition: -webkit-transform 0.5s;
+ }
+ #container.tilted {
+ -webkit-transform: perspective(800) rotateY(60deg) rotateZ(320deg);
+ }
+ canvas {
+ width:90%;
+ height:90%;
+ }
+ #bg {
+ border:4px solid #242;
+ position:absolute;
+ width:90%;
+ height:90%;
+ }
+ #framerate {
+ position:absolute;
+ top:10px;
+ margin:10px;
+ text-shadow: black 2px 2px 4px;
+ font-size:2em;
+ font-family:helvetica;
+ color:white;
+ }
+ </style>
+ </head>
+ <body onload="start()">
+ <div id="container">
+ <img id="bg" src="resources/BambooBridge.jpg" />
+ <canvas id="example">
+ There is supposed to be an example drawing here, but it's not important.
+ </canvas>
+ </div>
+ <div id="framerate"></div>
+ </body>
+</html>
diff --git a/WebKitSite/blog-files/webgl/resources/BambooBridge.jpg b/WebKitSite/blog-files/webgl/resources/BambooBridge.jpg
new file mode 100644
index 0000000..ad1dcf7
Binary files /dev/null and b/WebKitSite/blog-files/webgl/resources/BambooBridge.jpg differ
diff --git a/WebCore/manual-tests/webgl/resources/CanvasMatrix.js b/WebKitSite/blog-files/webgl/resources/CanvasMatrix.js
similarity index 100%
copy from WebCore/manual-tests/webgl/resources/CanvasMatrix.js
copy to WebKitSite/blog-files/webgl/resources/CanvasMatrix.js
diff --git a/WebKitSite/blog-files/webgl/resources/SpiritBox.jpg b/WebKitSite/blog-files/webgl/resources/SpiritBox.jpg
new file mode 100644
index 0000000..8c9e6b2
Binary files /dev/null and b/WebKitSite/blog-files/webgl/resources/SpiritBox.jpg differ
diff --git a/WebCore/manual-tests/webgl/resources/earthmap1k.jpg b/WebKitSite/blog-files/webgl/resources/earthmap1k.jpg
similarity index 100%
copy from WebCore/manual-tests/webgl/resources/earthmap1k.jpg
copy to WebKitSite/blog-files/webgl/resources/earthmap1k.jpg
diff --git a/WebCore/manual-tests/webgl/resources/mars500x250.png b/WebKitSite/blog-files/webgl/resources/mars500x250.png
similarity index 100%
copy from WebCore/manual-tests/webgl/resources/mars500x250.png
copy to WebKitSite/blog-files/webgl/resources/mars500x250.png
diff --git a/WebKitSite/blog-files/webgl/resources/spirit.jpg b/WebKitSite/blog-files/webgl/resources/spirit.jpg
new file mode 100644
index 0000000..8599330
Binary files /dev/null and b/WebKitSite/blog-files/webgl/resources/spirit.jpg differ
diff --git a/WebCore/manual-tests/webgl/resources/teapot.obj b/WebKitSite/blog-files/webgl/resources/teapot.obj
similarity index 100%
copy from WebCore/manual-tests/webgl/resources/teapot.obj
copy to WebKitSite/blog-files/webgl/resources/teapot.obj
diff --git a/WebCore/manual-tests/webgl/resources/utils3d.js b/WebKitSite/blog-files/webgl/resources/utils3d.js
similarity index 100%
copy from WebCore/manual-tests/webgl/resources/utils3d.js
copy to WebKitSite/blog-files/webgl/resources/utils3d.js
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list