Item.prototype.start = function(gl, driver) { // Build and set the skybox shader. var skyboxShaderBuilder = new SkyboxShaderBuilder(); this.skyboxShader = skyboxShaderBuilder.build(gl); if (!this.skyboxShader) { return false; } this.skyboxShader.use(); this.skyboxShader.setTxtSampler(0); this.skyboxShader.setFilterColor(1.0, 1.0, 1.0); // Create skybox shape to use. var skyboxShapeBuilder = new SkyboxShapeBuilder(); skyboxShapeBuilder.width = -40; skyboxShapeBuilder.height = -40; skyboxShapeBuilder.depth = -40; this.skyboxShape = skyboxShapeBuilder.build(gl, this.skyboxShader.requiredType); this.skyboxShape.posAttr.set(this.skyboxShader.posAttrLoc); this.skyboxShape.cubeAttr.set(this.skyboxShader.cubeAttrLoc); // Build and set the object shader. var objShaderBuilder = new ObjShaderBuilder(); this.objShader = objShaderBuilder.build(gl); if (!this.objShader) { return false; } this.objShader.use(); this.objShader.setTxtSampler(0); // Setup controls. item = this; this.controls = new Controls(); this.controls.addButton('Menu', function() { driver.gotoMenu(); }); this.controls.setFps(0.0); this.controls.addShapeSelect('Shape', function(shapeBuilder){ item.objShape = shapeBuilder.build(gl, item.objShader.requiredType); item.objShape.posAttr.set(item.objShader.posAttrLoc); item.objShape.normAttr.set(item.objShader.normAttrLoc); }, 'Sphere'); this.controls.addFloat('Ref Weight', this.objShader.setReflWeight, 0.0, 1.0, 0.9); this.controls.addCubeTxtSelect('Background', function(path) { item.txtCube = new TxtCube(gl); item.txtCube.index = 0; item.txtCube.loadFromPath(path); }, 'Glacier'); // Initialize movement. this.projMover = new ProjMover(); this.viewMover = new ViewMover(); this.objMover = new ObjMover(); this.projMover.start(gl); this.viewMover.start(gl); this.objMover.start(gl); return true; };
Item.prototype.start = function(gl, driver) { // Build and set the shader. var skyboxShaderBuilder = new SkyboxShaderBuilder(); this.skyboxShader = skyboxShaderBuilder.build(gl); if (!this.skyboxShader) { return false; } this.skyboxShader.use(); // Create skyboxShape to use. var skyboxShapeBuilder = new SkyboxShapeBuilder(); skyboxShapeBuilder.width = -1; skyboxShapeBuilder.height = -1; skyboxShapeBuilder.depth = -1; this.skyboxShape = skyboxShapeBuilder.build(gl, this.skyboxShader.requiredType); this.skyboxShape.posAttr.set(this.skyboxShader.posAttrLoc); this.skyboxShape.cubeAttr.set(this.skyboxShader.cubeAttrLoc); this.skyboxShader.setTxtSampler(0); this.skyboxShader.setFilterColor(1.0, 1.0, 1.0); // Initialize view movement. this.projMover = new ProjMover(); this.viewMover = new ViewMover(); this.projMover.start(gl); this.viewMover.start(gl); // Setup controls. item = this; this.controls = new Controls(); this.controls.addButton('Menu', function() { driver.gotoMenu(); }); this.controls.setFps(0.0); this.controls.addFloat('Field of view', function(value) { item.projMover.fovAngle = Math.PI*value/180.0; }, 30.0, 150.0, 90.0); this.controls.addFloat('Size of box', function(value) { item.scale = value; }, 1.0, 100.0, 40.0); this.controls.addCubeTxtSelect('Background', function(path) { item.txtCube = new TxtCube(gl); item.txtCube.index = 0; item.txtCube.loadFromPath(path); }, 'Glacier'); return true; };