diff options
author | Nivesh Rajbhandari | 2012-02-09 10:09:13 -0800 |
---|---|---|
committer | Nivesh Rajbhandari | 2012-02-09 10:09:13 -0800 |
commit | 191cb96b3b4e1e5aa805211e5ab8dbd6aa075881 (patch) | |
tree | db6ebd5061c482110ae21f9898ff26d5c6fd7f7b /js/helper-classes/RDGE/src/core/script | |
parent | 64524c693e09646a0db05d772311247a56194ac9 (diff) | |
download | ninja-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/script')
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 | ||
380 | Engine.prototype.registerCanvas = function(canvas, runState) { | 380 | Engine.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 | ||
473 | Engine.prototype.unregisterCanvas = function(canvas) { | 473 | Engine.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 | ||
48 | LoadState.prototype.ReInit = function() | 51 | LoadState.prototype.ReInit = function() |
49 | { | 52 | { |
53 | if (this.hasUserState && this.userRunState && this.userRunState.onLoadState) | ||
54 | this.userRunState.onLoadState(); | ||
50 | } | 55 | } |
51 | 56 | ||
52 | LoadState.prototype.Resize = function() | 57 | LoadState.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 | */ |
545 | rdgeDefaultShaderDefintion = { | 565 | rdgeDefaultShaderDefintion = { |
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': { |