aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/RDGE/src/core
diff options
context:
space:
mode:
authorNivesh Rajbhandari2012-02-09 10:09:13 -0800
committerNivesh Rajbhandari2012-02-09 10:09:13 -0800
commit191cb96b3b4e1e5aa805211e5ab8dbd6aa075881 (patch)
treedb6ebd5061c482110ae21f9898ff26d5c6fd7f7b /js/helper-classes/RDGE/src/core
parent64524c693e09646a0db05d772311247a56194ac9 (diff)
downloadninja-191cb96b3b4e1e5aa805211e5ab8dbd6aa075881.tar.gz
Merging WebGL changes that allow users to modify different shape instances. Also, merging in changes that improve rendering performance by not updating static materials.
Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com>
Diffstat (limited to 'js/helper-classes/RDGE/src/core')
-rw-r--r--js/helper-classes/RDGE/src/core/script/engine.js18
-rw-r--r--js/helper-classes/RDGE/src/core/script/init_state.js7
-rw-r--r--js/helper-classes/RDGE/src/core/script/jshader.js6
-rw-r--r--js/helper-classes/RDGE/src/core/script/renderer.js32
-rw-r--r--js/helper-classes/RDGE/src/core/script/run_state.js10
-rw-r--r--js/helper-classes/RDGE/src/core/script/runtime.js2
6 files changed, 55 insertions, 20 deletions
diff --git a/js/helper-classes/RDGE/src/core/script/engine.js b/js/helper-classes/RDGE/src/core/script/engine.js
index 6fe964c7..5bc9305c 100644
--- a/js/helper-classes/RDGE/src/core/script/engine.js
+++ b/js/helper-classes/RDGE/src/core/script/engine.js
@@ -377,13 +377,13 @@ Engine.prototype.getRDGEPanel=function(panelID)
377 return panelObjectManager.handleToObject(panelID); 377 return panelObjectManager.handleToObject(panelID);
378} 378}
379 379
380Engine.prototype.registerCanvas = function(canvas, runState) { 380Engine.prototype.registerCanvas = function(canvas, runState) {
381 if (canvas && this.getContext(canvas.id)) 381 if (canvas && this.getContext(canvas.rdgeid))
382 return; 382 return;
383 383
384 canvas.renderer = new _renderer(canvas); // create the renderer for the context 384 canvas.renderer = new _renderer(canvas); // create the renderer for the context
385 this.canvasToRendererMap[canvas.id] = canvas; // store the canvas in the context map 385 this.canvasToRendererMap[canvas.rdgeid] = canvas; // store the canvas in the context map
386 canvas.renderer.id = canvas.id; 386 canvas.renderer.id = canvas.rdgeid;
387 387
388 // configure the state manager for this context 388 // configure the state manager for this context
389 var stateMan = new stateManager(); 389 var stateMan = new stateManager();
@@ -391,11 +391,11 @@ Engine.prototype.registerCanvas = function(canvas, runState) {
391 // add this context to the contextManager and attach the handle to DOM canvas for user retrieval 391 // add this context to the contextManager and attach the handle to DOM canvas for user retrieval
392 var context = new contextDef(); 392 var context = new contextDef();
393 393
394 context.id = canvas.id; 394 context.id = canvas.rdgeid;
395 context.renderer = canvas.renderer; 395 context.renderer = canvas.renderer;
396 context.ctxStateManager = stateMan; 396 context.ctxStateManager = stateMan;
397 context.startUpState; 397 context.startUpState;
398 context.fpsTracker = new fpsTracker(canvas.id); 398 context.fpsTracker = new fpsTracker(canvas.rdgeid);
399 399
400 context.renderer.mvMatrix = mat4.identity(); 400 context.renderer.mvMatrix = mat4.identity();
401 context.renderer.invMvMatrix = mat4.identity(); 401 context.renderer.invMvMatrix = mat4.identity();
@@ -471,7 +471,7 @@ Engine.prototype.registerCanvas = function(canvas, runState) {
471} 471}
472 472
473Engine.prototype.unregisterCanvas = function(canvas) { 473Engine.prototype.unregisterCanvas = function(canvas) {
474 stat.closePage(canvas.id + "_fps"); 474 stat.closePage(canvas.rdgeid + "_fps");
475 contextManager.removeObject(canvas.rdgeCtxHandle); 475 contextManager.removeObject(canvas.rdgeCtxHandle);
476 476
477} 477}
diff --git a/js/helper-classes/RDGE/src/core/script/init_state.js b/js/helper-classes/RDGE/src/core/script/init_state.js
index 8c69d218..4b97a4f4 100644
--- a/js/helper-classes/RDGE/src/core/script/init_state.js
+++ b/js/helper-classes/RDGE/src/core/script/init_state.js
@@ -42,11 +42,16 @@ LoadState.prototype.Init = function()
42 if(this.sceneName) 42 if(this.sceneName)
43 { 43 {
44 this.loadScene("assets_web/mesh/" + this.sceneName + ".json", this.sceneName); 44 this.loadScene("assets_web/mesh/" + this.sceneName + ".json", this.sceneName);
45 } 45 }
46
47 if (this.hasUserState && this.userRunState && this.userRunState.onLoadState)
48 this.userRunState.onLoadState();
46} 49}
47 50
48LoadState.prototype.ReInit = function() 51LoadState.prototype.ReInit = function()
49{ 52{
53 if (this.hasUserState && this.userRunState && this.userRunState.onLoadState)
54 this.userRunState.onLoadState();
50} 55}
51 56
52LoadState.prototype.Resize = function() 57LoadState.prototype.Resize = function()
diff --git a/js/helper-classes/RDGE/src/core/script/jshader.js b/js/helper-classes/RDGE/src/core/script/jshader.js
index f28219cf..36c5939e 100644
--- a/js/helper-classes/RDGE/src/core/script/jshader.js
+++ b/js/helper-classes/RDGE/src/core/script/jshader.js
@@ -173,7 +173,7 @@ jshader = function(addr) {
173 173
174 // if the parameter does not exist in the shader cull it from the pass 174 // if the parameter does not exist in the shader cull it from the pass
175 if (this.loc == null) { 175 if (this.loc == null) {
176 window.console.log("ctx:" + ctx.canvas.id + ", technique: " + technique + ", uniform: " + name + " was not found, jshader param will have no affect"); 176 window.console.log("ctx:" + ctx.canvas.rdgeid + ", technique: " + technique + ", uniform: " + name + " was not found, jshader param will have no affect");
177 //return; 177 //return;
178 } 178 }
179 179
@@ -308,7 +308,7 @@ jshader = function(addr) {
308 } 308 }
309 } 309 }
310 310
311 program.ctxId = this.ctx.canvas.id; 311 program.ctxId = this.ctx.canvas.rdgeid;
312 if (!program) { 312 if (!program) {
313 this.renderer.console.log("Build errors found in technique: " + t); 313 this.renderer.console.log("Build errors found in technique: " + t);
314 this.def[t] = null; // remove bad technique 314 this.def[t] = null; // remove bad technique
@@ -322,7 +322,7 @@ jshader = function(addr) {
322 var gp = new globalParam(this.ctx, p, rdgeGlobalParameters[p], program); 322 var gp = new globalParam(this.ctx, p, rdgeGlobalParameters[p], program);
323 323
324 if (gp.loc != null) { 324 if (gp.loc != null) {
325 gp.loc.ctxID = this.ctx.canvas.id; 325 gp.loc.ctxID = this.ctx.canvas.rdgeid;
326 this[t].passes[i].defParams[p] = gp; 326 this[t].passes[i].defParams[p] = gp;
327 this.global[p] = gp; 327 this.global[p] = gp;
328 } 328 }
diff --git a/js/helper-classes/RDGE/src/core/script/renderer.js b/js/helper-classes/RDGE/src/core/script/renderer.js
index 0c51d2cb..a50b8a68 100644
--- a/js/helper-classes/RDGE/src/core/script/renderer.js
+++ b/js/helper-classes/RDGE/src/core/script/renderer.js
@@ -335,14 +335,19 @@ _renderer = function(canvas) {
335 335
336 var tex = this.textureMap[name]; 336 var tex = this.textureMap[name];
337 337
338 if (tex === undefined) { 338 if (tex === undefined)
339 339 {
340
341 // load the texture 340 // load the texture
342 tex = this.createTexture(name + ext, wrap, mips); 341 tex = this.createTexture(name + ext, wrap, mips);
343 this.textureMap[name] = tex; 342 this.textureMap[name] = tex;
344 tex.lookUpName = name; 343 tex.lookUpName = name;
344 tex.previouslyReferenced = false;
345 } 345 }
346 else
347 {
348 //console.log( "texture already loaded: " + name );
349 tex.previouslyReferenced = true;
350 }
346 351
347 return tex; 352 return tex;
348 353
@@ -354,9 +359,11 @@ _renderer = function(canvas) {
354 * @param wrap - optional "CLAMP or "REPEAT", default is clamp 359 * @param wrap - optional "CLAMP or "REPEAT", default is clamp
355 * @param mips - optional true/false value to create mipmaps, the default is true 360 * @param mips - optional true/false value to create mipmaps, the default is true
356 */ 361 */
362 this.unloadedTextureCount = 0;
357 _texparams = function(wrap, mips) { this.wrap = wrap, this.mips = mips }; 363 _texparams = function(wrap, mips) { this.wrap = wrap, this.mips = mips };
358 this.createTexture = function(url, wrap, mips) { 364 this.createTexture = function(url, wrap, mips) {
359 var texture = this.ctx.createTexture(); 365 var texture = this.ctx.createTexture();
366 this.unloadedTextureCount++;
360 367
361 if (wrap === undefined) 368 if (wrap === undefined)
362 wrap = "CLAMP"; 369 wrap = "CLAMP";
@@ -371,7 +378,20 @@ _renderer = function(canvas) {
371 texture.image.onload = function() { 378 texture.image.onload = function() {
372 var stateMan = this.context.ctxStateManager; 379 var stateMan = this.context.ctxStateManager;
373 stateMan.RDGEInitState.loadTexture(texture); 380 stateMan.RDGEInitState.loadTexture(texture);
381 this.context.renderer.unloadedTextureCount--;
382 //console.log( "loaded texture: " + texture.lookUpName + ",to: " + this.context.renderer._world._worldCount + ", textures remaining to load: " + this.context.renderer.unloadedTextureCount );
383 if (texture.callback) texture.callback( texture );
384 if (this.context.renderer.unloadedTextureCount < 0)
385 console.log( "more textures loaded then created..." );
374 }; 386 };
387 texture.image.onerror = function() {
388 this.context.renderer.unloadedTextureCount--;
389 if (texture.callback) texture.callback( texture );
390 //console.log( "Error loading texture: " + texture.image.src );
391 if (this.context.renderer.unloadedTextureCount < 0)
392 console.log( "more textures loaded then created..." );
393 }
394
375 } 395 }
376 return texture; 396 return texture;
377 } 397 }
@@ -544,8 +564,10 @@ _renderer = function(canvas) {
544 */ 564 */
545rdgeDefaultShaderDefintion = { 565rdgeDefaultShaderDefintion = {
546 'shaders': { 566 'shaders': {
547 'defaultVShader':"assets/shaders/test_vshader.glsl", 567 //'defaultVShader':"assets/shaders/test_vshader.glsl",
548 'defaultFShader':"assets/shaders/test_fshader.glsl" 568 //'defaultFShader':"assets/shaders/test_fshader.glsl"
569 'defaultVShader':"assets/shaders/Basic.vert.glsl",
570 'defaultFShader':"assets/shaders/Basic.frag.glsl"
549 }, 571 },
550 'techniques': { 572 'techniques': {
551 'defaultTechnique':[{