aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/RDGE/src/core/script/renderer.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/helper-classes/RDGE/src/core/script/renderer.js')
-rw-r--r--js/helper-classes/RDGE/src/core/script/renderer.js27
1 files changed, 24 insertions, 3 deletions
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 }