diff options
Diffstat (limited to 'js/helper-classes/RDGE/src')
6 files changed, 52 insertions, 18 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..04cb36a7 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"; |
@@ -364,6 +371,7 @@ _renderer = function(canvas) { | |||
364 | mips = true; | 371 | mips = true; |
365 | 372 | ||
366 | if (texture) { | 373 | if (texture) { |
374 | //console.log( "createTexture: " + url ); | ||
367 | texture.image = new Image(); | 375 | texture.image = new Image(); |
368 | texture.image.src = url; | 376 | texture.image.src = url; |
369 | texture.image.context = g_Engine.getContext(); | 377 | texture.image.context = g_Engine.getContext(); |
@@ -371,7 +379,20 @@ _renderer = function(canvas) { | |||
371 | texture.image.onload = function() { | 379 | texture.image.onload = function() { |
372 | var stateMan = this.context.ctxStateManager; | 380 | var stateMan = this.context.ctxStateManager; |
373 | stateMan.RDGEInitState.loadTexture(texture); | 381 | stateMan.RDGEInitState.loadTexture(texture); |
382 | //console.log( "loaded texture: " + texture.lookUpName ); | ||
383 | if (texture.callback) texture.callback( texture ); | ||
384 | this.context.renderer.unloadedTextureCount--; | ||
385 | if (this.context.renderer.unloadedTextureCount < 0) | ||
386 | console.log( "more textures loaded then created..." ); | ||
374 | }; | 387 | }; |
388 | texture.image.onerror = function() { | ||
389 | this.context.renderer.unloadedTextureCount--; | ||
390 | if (texture.callback) texture.callback( texture ); | ||
391 | console.log( "Error loading texture: " + texture.image.src ); | ||
392 | if (this.context.renderer.unloadedTextureCount < 0) | ||
393 | console.log( "more textures loaded then created..." ); | ||
394 | } | ||
395 | |||
375 | } | 396 | } |
376 | return texture; | 397 | return texture; |
377 | } | 398 | } |
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 ad56d9ea..acdb6797 100644 --- a/js/helper-classes/RDGE/src/core/script/run_state.js +++ b/js/helper-classes/RDGE/src/core/script/run_state.js | |||
@@ -30,6 +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) | ||
34 | this.userRunState.onRunState(); |