From 723ea402b74efa0424b96c7e125c8ebb2b72410c Mon Sep 17 00:00:00 2001 From: Nivesh Rajbhandari Date: Mon, 26 Mar 2012 17:36:27 -0700 Subject: Fixed issue with WebGL materials not working after file-save or chrome-preview. Also fixed Raiders material not showing in the PI or working during Chrome Preview. Signed-off-by: Nivesh Rajbhandari --- js/lib/drawing/world.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'js/lib/drawing/world.js') diff --git a/js/lib/drawing/world.js b/js/lib/drawing/world.js index 781695b6..fec6a478 100755 --- a/js/lib/drawing/world.js +++ b/js/lib/drawing/world.js @@ -761,13 +761,10 @@ World.prototype.exportJSON = function() // We need to rebuild everything if (this._useWebGL) { - var root = this._rootNode; - root.children = new Array(); if (worldObj.children && (worldObj.children.length === 1)) { - this.init(); - this._geomRoot = undefined; - this.importObjectsJSON( worldObj.children[0] ); + this.rebuildTree(this._geomRoot); + this.restartRenderLoop(); } } @@ -783,6 +780,20 @@ World.prototype.exportJSON = function() return jStr; } +World.prototype.rebuildTree = function( obj ) +{ + if (!obj) return; + + obj.buildBuffers(); + + if (obj.getChild()) { + this.rebuildTree( obj.getChild () ); + } + + if (obj.getNext()) + this.rebuildTree( obj.getNext() ); +} + World.prototype.exportObjectsJSON = function( obj, parentObj ) { if (!obj) return; -- cgit v1.2.3