scripts/machine.js
changeset 36 a828c4cde5b3
parent 35 7769f6e1e2c5
child 37 97af0c060479
     1.1 --- a/scripts/machine.js	Fri Apr 29 17:10:15 2011 +0200
     1.2 +++ b/scripts/machine.js	Sat Apr 30 04:05:47 2011 +0200
     1.3 @@ -1,5 +1,6 @@
     1.4  var machine;
     1.5  var renderer;
     1.6 +var gl;
     1.7  var controller;
     1.8  var camera;
     1.9  var cameraSpeed = {"h": 1.0, "v": 1.0, "zoom": 1.0, "pitch": 1.0, "yaw": 1.0, "roll": 1.0};
    1.10 @@ -20,7 +21,7 @@
    1.11      var canvas = document.getElementById("machine");
    1.12      var context = new Context(canvas);
    1.13      context.expand();
    1.14 -    var gl = context.gl;
    1.15 +    gl = context.gl;
    1.16      var scene = createScene(context);   
    1.17      gl.clearColor(0.00, 0.0, 0.0, 1.0);
    1.18      gl.enable(gl.DEPTH_TEST);
    1.19 @@ -39,10 +40,34 @@
    1.20      //read("config/camera", configureCamera);
    1.21  }
    1.22  
    1.23 +var textures = [];
    1.24 +
    1.25 +function Texture(file)
    1.26 +{
    1.27 +    this.id = textures.length;
    1.28 +    textures.push(this);
    1.29 +    this.hnd = gl.createTexture();
    1.30 +    this.image = new Image();
    1.31 +    this.image.onload = function() { handleLoadedTexture(); }   
    1.32 +    this.image.src = file;
    1.33 +}
    1.34 +
    1.35 +function handleLoadedTexture()
    1.36 +{
    1.37 +    var texture = textures[textures.length-1];
    1.38 +    gl.bindTexture(gl.TEXTURE_2D, texture.hnd);
    1.39 +    gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
    1.40 +    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, texture.image);
    1.41 +    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
    1.42 +    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
    1.43 +    gl.bindTexture(gl.TEXTURE_2D, null);
    1.44 +}
    1.45 +
    1.46  function createScene(context)
    1.47  {
    1.48      var size = 1;
    1.49 -    var vbo = new CubeVbo(size, context);
    1.50 +    var texture = new Texture("textures/nehe.gif");
    1.51 +    var vbo = new CubeVbo(size, context, texture);
    1.52      var scene = new Node([0, 0, 0], [0, 0, 0], new Cube(vbo));
    1.53      var dim = 10;
    1.54      var d = size * 4;