From d21aaca3d7093b6af968b7f9f764ab54e004f02b Mon Sep 17 00:00:00 2001 From: hwc487 Date: Thu, 3 May 2012 16:42:56 -0700 Subject: Cleanup of indirect textures. --- js/lib/rdge/materials/cloud-material.js | 12 -------- js/lib/rdge/materials/material.js | 7 ----- js/lib/rdge/materials/pulse-material.js | 14 --------- js/lib/rdge/materials/twist-vert-material.js | 43 ++++++++++++++++++++++++---- js/lib/rdge/materials/uber-material.js | 24 ---------------- js/lib/rdge/texture.js | 2 -- 6 files changed, 37 insertions(+), 65 deletions(-) (limited to 'js/lib/rdge') diff --git a/js/lib/rdge/materials/cloud-material.js b/js/lib/rdge/materials/cloud-material.js index b7670178..2c7fced2 100644 --- a/js/lib/rdge/materials/cloud-material.js +++ b/js/lib/rdge/materials/cloud-material.js @@ -203,18 +203,6 @@ var CloudMaterial = function CloudMaterial() RDGE.globals.engine.setContext( saveContext.id ); } }; - - this.updateTextures = function() - { - if (this._glTex) - { - if (!this._glTex.isAnimated()) - { - this._glTex.render(); - this.updateTexture(); - } - } - } this.updateColor = function() { diff --git a/js/lib/rdge/materials/material.js b/js/lib/rdge/materials/material.js index 4b8a5d6b..77220bf7 100755 --- a/js/lib/rdge/materials/material.js +++ b/js/lib/rdge/materials/material.js @@ -257,13 +257,6 @@ var Material = function GLMaterial( world ) { return tex; }; - this.updateTextures = function() - { - // this function is called whenever a world that generates textuers for - // the current world changes in some way. Sub-classes with textures - // should override this function. - } - }; if (typeof exports === "object") { diff --git a/js/lib/rdge/materials/pulse-material.js b/js/lib/rdge/materials/pulse-material.js index bb8833b4..c2969501 100644 --- a/js/lib/rdge/materials/pulse-material.js +++ b/js/lib/rdge/materials/pulse-material.js @@ -150,20 +150,6 @@ var PulseMaterial = function PulseMaterial() } }; - - this.updateTextures = function() - { - if (this._glTex) - { - if (!this._glTex.isAnimated()) - { - this._glTex.render(); - this.updateTexture(); - } - } - } - - this.update = function( time ) { var material = this._materialNode; diff --git a/js/lib/rdge/materials/twist-vert-material.js b/js/lib/rdge/materials/twist-vert-material.js index b27c0b11..7d9dd6d6 100644 --- a/js/lib/rdge/materials/twist-vert-material.js +++ b/js/lib/rdge/materials/twist-vert-material.js @@ -28,6 +28,9 @@ var TwistVertMaterial = function TwistVertMaterial() this._tex0 = 'assets/images/rocky-normal.jpg'; this._tex1 = 'assets/images/metal.png'; + this._glTex0; + this._glTex1; + this._angle = 0.0; this._deltaTime = 0.01; @@ -79,6 +82,9 @@ var TwistVertMaterial = function TwistVertMaterial() this._materialNode = RDGE.createMaterialNode("twistVertMaterial" + "_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); + // set up the texture maps + this.updateTextures(); + // initialize the twist vert properties this.updateShaderValues(); }; @@ -146,7 +152,9 @@ var TwistVertMaterial = function TwistVertMaterial() { if (this._shader && this._shader.twistMe) { - var angle = this._angle; + var technique = this._shader.twistMe; + + var angle = this._angle; angle += this._deltaTime; if (angle > this._propValues["u_twistAmount"]) { @@ -160,6 +168,25 @@ var TwistVertMaterial = function TwistVertMaterial() } this._angle = angle; this._shader.twistMe["u_twistAmount"].set([angle]); + + var tex; + if (this._glTex0) + { + if (this._glTex0.isAnimated()) + this._glTex0.render(); + tex = this._glTex0.getTexture(); + if (tex) + technique.u_tex0.set( tex ); + } + if (this._glTex1) + { + if (this._glTex1.isAnimated()) + this._glTex1.render(); + tex = this._glTex1.getTexture(); + if (tex) + technique.u_tex1.set( tex ); + } + } }; @@ -195,17 +222,22 @@ var TwistVertMaterial = function TwistVertMaterial() var material = this._materialNode; if (material) { - var technique = material.shaderProgram['default']; + var technique = material.shaderProgram['twistMe']; var renderer = RDGE.globals.engine.getContext().renderer; if (renderer && technique) { - var texMapName = this._propValues[this._propNames[5]]; + var texMapName; + texMapName = this._propValues[this._propNames[5]]; var wrap = 'REPEAT', mips = true; - var tex = this.loadTexture(texMapName, wrap, mips); + //var tex = this.loadTexture(texMapName, wrap, mips); + this._glTex0 = new Texture( this.getWorld(), texMapName, wrap, mips ); + tex = this._glTex0.getTexture(); if (tex) technique.u_tex0.set(tex); texMapName = this._propValues[this._propNames[6]]; - tex = this.loadTexture(texMapName, wrap, mips); + //tex = this.loadTexture(texMapName, wrap, mips); + this._glTex1 = new Texture( this.getWorld(), texMapName, wrap, mips ); + tex = this._glTex1.getTexture(); if (tex) technique.u_tex1.set(tex); } } @@ -242,7 +274,6 @@ twistVertShaderDef = 'u_limit1': { 'type': 'float' }, 'u_limit2': { 'type': 'float' }, - 'u_limit3': { 'type': 'float' }, 'u_minVal': { 'type': 'float' }, 'u_maxVal': { 'type': 'float' }, 'u_center': { 'type': 'float' }, diff --git a/js/lib/rdge/materials/uber-material.js b/js/lib/rdge/materials/uber-material.js index bc2ba340..9d0cc564 100755 --- a/js/lib/rdge/materials/uber-material.js +++ b/js/lib/rdge/materials/uber-material.js @@ -284,30 +284,6 @@ var UberMaterial = function UberMaterial() { } }; - - this.updateTextures = function() - { - var material = this._materialNode; - if (material) - { - var technique = material.shaderProgram.defaultTechnique; - var renderer = RDGE_globals.engine.getContext().renderer; - if (renderer && technique) - { - if (this._diffuseTexture) - { - if (!this._diffuseTexture.isAnimated()) - { - this._diffuseTexture.render(); - var tex = this._diffuseTexture.getTexture(); - technique.s_diffuseMap.set( tex ); - } - } - } - } - } - - this.updateSpecularMap = function () { var value = this._propValues["specularMap"]; this._specularMapOb.texture = value; diff --git a/js/lib/rdge/texture.js b/js/lib/rdge/texture.js index 0a7070d3..498dcf3b 100644 --- a/js/lib/rdge/texture.js +++ b/js/lib/rdge/texture.js @@ -123,8 +123,6 @@ function Texture( dstWorld, texMapName, wrap, mips ) case notifier.FIRST_RENDER: texture._isAnimated = srcWorld.hasAnimatedMaterials(); - //dstWorld.refreshTextures(); - //dstWorld.restartRenderLoop(); break; default: -- cgit v1.2.3