aboutsummaryrefslogtreecommitdiff
path: root/js/lib/drawing
diff options
context:
space:
mode:
authorhwc4872012-07-23 14:37:51 -0700
committerhwc4872012-07-23 14:37:51 -0700
commite9d08c7af751d75af16371fcac06fd1af8a60fac (patch)
treee0499f795bf5a5f3db30b61e70a5852ff0799aed /js/lib/drawing
parent2b05717e49bafc4b401441d9a55153b9e4ae7e43 (diff)
downloadninja-e9d08c7af751d75af16371fcac06fd1af8a60fac.tar.gz
Bugs fixed:
1915 - Data.JSON too large. Reduced mesh size and limited precision of fp numbers 1381 - Background transparency in preview. 1740 - File Save As caused WebGL to stop animating. Crossed RDGE IDs 1954 - Texture change from material popup broke screen rendering. Set correct context on property change.
Diffstat (limited to 'js/lib/drawing')
-rwxr-xr-xjs/lib/drawing/world.js30
1 files changed, 28 insertions, 2 deletions
diff --git a/js/lib/drawing/world.js b/js/lib/drawing/world.js
index ca2f07cc..b9f9863f 100755
--- a/js/lib/drawing/world.js
+++ b/js/lib/drawing/world.js
@@ -439,6 +439,11 @@ var World = function GLWorld( canvas, use3D, preserveDrawingBuffer ) {
439 // in the case of a procedurally built scene an init state is not needed for loading data 439 // in the case of a procedurally built scene an init state is not needed for loading data
440 this._canvas.rdgeid = this._canvas.getAttribute( "data-RDGE-id" ); 440 this._canvas.rdgeid = this._canvas.getAttribute( "data-RDGE-id" );
441 if (this._useWebGL) { 441 if (this._useWebGL) {
442 // make sure the id is unique
443 var id = this.uniqueifyID( this._canvas.rdgeid );
444 this._canvas.rdgeid = id;
445 this._canvas.setAttribute( "data-rdge-id", id );
446
442 rdgeStarted = true; 447 rdgeStarted = true;
443 RDGE.globals.engine.unregisterCanvas( this._canvas ); 448 RDGE.globals.engine.unregisterCanvas( this._canvas );
444 RDGE.globals.engine.registerCanvas(this._canvas, this); 449 RDGE.globals.engine.registerCanvas(this._canvas, this);
@@ -673,13 +678,35 @@ World.prototype.updateMaterials = function( obj, time ) {
673 var n = matArray.length; 678 var n = matArray.length;
674 for (var i=0; i<n; i++) { 679 for (var i=0; i<n; i++) {
675 matArray[i].update( time ); 680 matArray[i].update( time );
676 } 681 }
677 } 682 }
678 683
679 this.updateMaterials( obj.getNext(), time ); 684 this.updateMaterials( obj.getNext(), time );
680 this.updateMaterials( obj.getChild(), time ); 685 this.updateMaterials( obj.getChild(), time );
681}; 686};
682 687
688
689World.prototype.uniqueifyID = function( id )
690{
691 var ctx = RDGE.globals.engine.getContext( id );
692 while ( ctx )
693 {
694 var num = 0;
695 var index = id.indexOf( "_" );
696 if (index >= 0)
697 {
698 var subStr = id.substr( index+1);
699 num = Number( subStr ) + 1;
700 id = id.substr( 0, index );
701 }
702
703 id = id + "_" + num;
704 ctx = RDGE.globals.engine.getContext( id );
705 }
706
707 return id;
708}
709
683// return the origin of the world in NDC 710// return the origin of the world in NDC
684World.prototype.getNDCOrigin = function() { 711World.prototype.getNDCOrigin = function() {
685 var pt = MathUtils.transformPoint( [0,0,0], this.getCameraMatInverse() ); 712 var pt = MathUtils.transformPoint( [0,0,0], this.getCameraMatInverse() );
@@ -973,7 +1000,6 @@ World.prototype.importJSON = function (jObj)
973 // start RDGE 1000 // start RDGE
974 rdgeStarted = true; 1001 rdgeStarted = true;
975 var id = this._canvas.getAttribute( "data-RDGE-id" ); 1002 var id = this._canvas.getAttribute( "data-RDGE-id" );
976 this._canvas.rdgeid = id;
977 RDGE.globals.engine.registerCanvas(this._canvas, this); 1003 RDGE.globals.engine.registerCanvas(this._canvas, this);
978 RDGE.RDGEStart(this._canvas); 1004 RDGE.RDGEStart(this._canvas);
979 this._canvas.task.stop() 1005 this._canvas.task.stop()