diff options
Diffstat (limited to 'js/helper-classes/RDGE/src/core/script/renderer.js')
-rw-r--r-- | js/helper-classes/RDGE/src/core/script/renderer.js | 27 |
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 | } |