aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhwc4872012-03-12 14:59:08 -0700
committerhwc4872012-03-12 14:59:08 -0700
commit46defc9bd11bf077efd672c72787a3b67da1a178 (patch)
tree2de2441e25f91f00280ec17deaefcbceffbc37e9
parentef2dd5dfc557154d4755914f73963da8e858c4f1 (diff)
downloadninja-46defc9bd11bf077efd672c72787a3b67da1a178.tar.gz
Uber material changes for IO
-rwxr-xr-xjs/helper-classes/RDGE/src/core/script/MeshManager.js2
-rwxr-xr-xjs/helper-classes/RDGE/src/core/script/run_state.js16
-rwxr-xr-xjs/lib/geom/geom-obj.js6
-rwxr-xr-xjs/lib/rdge/materials/flat-material.js6
-rwxr-xr-xjs/lib/rdge/materials/uber-material.js122
5 files changed, 121 insertions, 31 deletions
diff --git a/js/helper-classes/RDGE/src/core/script/MeshManager.js b/js/helper-classes/RDGE/src/core/script/MeshManager.js
index 43813078..7dfc79d4 100755
--- a/js/helper-classes/RDGE/src/core/script/MeshManager.js
+++ b/js/helper-classes/RDGE/src/core/script/MeshManager.js
@@ -69,7 +69,7 @@ MeshManager.prototype.deleteMesh = function (name)
69 if (model) 69 if (model)
70 { 70 {
71 g_Engine.ctxMan.forEach(function(context) 71 g_Engine.ctxMan.forEach(function(context)
72 { 72 {
73 context.renderer.deletePrimitive(model.primitive); 73 context.renderer.deletePrimitive(model.primitive);
74 }); 74 });
75 75
diff --git a/js/helper-classes/RDGE/src/core/script/run_state.js b/js/helper-classes/RDGE/src/core/script/run_state.js
index acdb6797..a5981caa 100755
--- a/js/helper-classes/RDGE/src/core/script/run_state.js
+++ b/js/helper-classes/RDGE/src/core/script/run_state.js
@@ -30,9 +30,9 @@ RunState.prototype.Init = function()
30 this.userRunState.init(); 30 this.userRunState.init();
31 } 31 }
32 32
33 if (this.hasUserState && this.userRunState && this.userRunState.onRunState) 33 if (this.hasUserState && this.userRunState && this.userRunState.onRunState)
34 this.userRunState.onRunState(); 34 this.userRunState.onRunState();
35 35
36 36
37 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 37 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
38 38
@@ -97,11 +97,11 @@ RunState.prototype.ReInit = function()
97 if(!this.initialized) 97 if(!this.initialized)
98 { 98 {
99 this.Init(); 99 this.Init();
100 } 100 }
101 else 101 else
102 { 102 {
103 if (this.hasUserState && this.userRunState && this.userRunState.onRunState) 103 if (this.hasUserState && this.userRunState && this.userRunState.onRunState)
104 this.userRunState.onRunState(); 104 this.userRunState.onRunState();
105 } 105 }
106} 106}
107 107
diff --git a/js/lib/geom/geom-obj.js b/js/lib/geom/geom-obj.js
index 1a197832..35ebadb9 100755
--- a/js/lib/geom/geom-obj.js
+++ b/js/lib/geom/geom-obj.js
@@ -285,9 +285,11 @@ var GeomObj = function GLGeomObj() {
285 if (mat) 285 if (mat)
286 mat.import( importStr ); 286 mat.import( importStr );
287 287
288 var endIndex = importStr.indexOf( "endMaterial\n" ); 288 // pull off the end of the material
289 var endMat = "endMaterial\n";
290 var endIndex = importStr.indexOf( endMat );
289 if (endIndex < 0) break; 291 if (endIndex < 0) break;
290 importStr = importStr.substr( endIndex ); 292 importStr = importStr.substr( endIndex + endMat.length );
291 } 293 }
292 } 294 }
293 295
diff --git a/js/lib/rdge/materials/flat-material.js b/js/lib/rdge/materials/flat-material.js
index 97e4f646..fff0e68e 100755
--- a/js/lib/rdge/materials/flat-material.js
+++ b/js/lib/rdge/materials/flat-material.js
@@ -102,13 +102,7 @@ var FlatMaterial = function FlatMaterial() {
102 try 102 try
103 { 103 {
104 var color = eval( "[" + pu.nextValue( "color: " ) + "]" ); 104 var color = eval( "[" + pu.nextValue( "color: " ) + "]" );
105
106 this.setProperty( "color", color); 105 this.setProperty( "color", color);
107
108 var endKey = "endMaterial\n";
109 var index = importStr.indexOf( endKey );
110 index += endKey.length;
111 rtnStr = importStr.substr( index );
112 } 106 }
113 catch (e) 107 catch (e)
114 { 108 {
diff --git a/js/lib/rdge/materials/uber-material.js b/js/lib/rdge/materials/uber-material.js
index 655d8e2a..8ec5b05c 100755
--- a/js/lib/rdge/materials/uber-material.js
+++ b/js/lib/rdge/materials/uber-material.js
@@ -4,6 +4,7 @@
4 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. 4 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5 </copyright> */ 5 </copyright> */
6 6
7var MaterialParser = require("js/lib/rdge/materials/material-parser").MaterialParser;
7var Material = require("js/lib/rdge/materials/material").Material; 8var Material = require("js/lib/rdge/materials/material").Material;
8 9
9var UberMaterial = function UberMaterial() { 10var UberMaterial = function UberMaterial() {
@@ -375,19 +376,111 @@ var UberMaterial = function UberMaterial() {
375 var endKey = "endMaterial\n"; 376 var endKey = "endMaterial\n";
376 var index = importStr.indexOf( endKey ); 377 var index = importStr.indexOf( endKey );
377 index += endKey.length; 378 index += endKey.length;
378 importStr = importStr.substr( index ); 379 importStr = importStr.slice( 0, index );
379 var pu = new MaterialParser( importStr ); 380 var pu = new MaterialParser( importStr );
380 381
381 var matProps = pu.nextValue( "materialProps: " ); 382 var matProps = pu.nextValue( "materialProps: " );
382 if (matProps) 383 if (matProps)
383 { 384 {
384 var ambientColor = Number( pu.nextValue( "ambientColor: " )); this.setProperty( "ambientColor", ambientColor ); 385 var ambientColor = eval( "[" + pu.nextValue("ambientColor: ") + ']' ); this.setProperty( "ambientColor", ambientColor );
385 var diffuseColor = Number( pu.nextValue( "diffuseColor: " )); this.setProperty( "diffuseColor", diffuseColor ); 386 var diffuseColor = eval( "[" + pu.nextValue( "diffuseColor: ") + ']' ); this.setProperty( "diffuseColor", diffuseColor );
386 var specularColor = Number( pu.nextValue( "specularColor: " )); this.setProperty( "specularColor", specularColor ); 387 var specularColor = eval( "[" + pu.nextValue( "specularColor: ") + ']' ); this.setProperty( "specularColor", specularColor );
387 var specularPower = Number( pu.nextValue( "specularPower: " )); this.setProperty( "specularPower", specularPower ); 388 var specularPower = eval( "[" + pu.nextValue( "specularPower: ") + ']' ); this.setProperty( "specularPower", specularPower );
388 } 389 }
389 390
390 var lightProps = pu.nextValue( "theLights" ); 391 var lightProps = pu.nextValue( "lightProps: " );
392 if (lightProps)
393 {
394 this._lights = [];
395 var lightStr;
396 for (var i=0; i<this._MAX_LIGHTS; i++)
397 {
398 var type = pu.nextValue( "light" + i + ": " );
399 if (type)
400 {
401 var light = new Object;
402 switch (type)
403 {
404 case "directional":
405 lightStr = pu.nextValue( 'light' + i + 'Dir: ');
406 light.direction = eval( "[" + lightStr + "]" );
407 break;
408
409 case "spot":
410 lightStr = pu.nextValue( 'light' + i + 'Pos: ' );
411 light.position = eval( "[" + lightStr + "]" );
412
413 lightStr = pu.nextValue( 'light' + i + 'OuterSpotCutoff: ' );
414 light['spotInnerCutoff'] = Number( lightStr );
415
416 lightStr = pu.nextValue( 'light' + i + 'InnerSpotCutoff: ' );
417 light['spotOuterCutoff'] = Number( lightStr );
418 break;
419
420 case "point":
421 lightStr = pu.nextValue( 'light' + i + 'Pos: ' );
422 light.position = eval( "[" + lightStr + "]" );
423
424 lightStr = pu.nextValue( 'light' + i + 'Attenuation: ' );
425 light.attenuation = eval( "[" + lightStr + "]" );
426 break;
427
428 default:
429 throw new Error( "unrecognized light type on import: " + type );
430 break;
431 }
432
433 // common to all lights
434 light.diffuseColor = eval( "[" + pu.nextValue( 'light' + i + 'Color: ') + "]" );
435 light.specularColor = eval( "[" + pu.nextValue( 'light' + i + 'SpecularColor: ') + "]" );
436
437 // push the light
438 this._lights.push( light );
439 }
440 else
441 this._lights[i] = 'undefined';
442
443 // advance to the next light
444 var endLightKey = "endMaterial\n";
445 index = importStr.indexOf( endLightKey );
446 if (index < 0) throw new Error( "ill-formed light encountered in import" );
447 index += endLightKey.length;
448 importStr = importStr.slice( 0, index );
449
450 }
451
452 if (this._lights.length > 0)
453 {
454 this._ubershaderCaps.lighting =
455 {
456 'light0' : this._lights[0],
457 'light1' : this._lights[1],
458 'light2' : this._lights[2],
459 'light3' : this._lights[3]
460 }
461 }
462 }
463
464 var diffuseMap = pu.nextValue( "diffuseMap: " )
465 if(diffuseMap)
466 this.setProperty( "diffuseMap", diffuseMap );
467
468 var normalMap = pu.nextValue( "normalMap: " );
469 if(normalMap)
470 this.setProperty( "normalMap", normalMap );
471
472 var specularMap = pu.nextValue( "specularMap: " );
473 if(specularMap)
474 this.setProperty( "specularMap", specularMap );
475
476