Parcourir la source

per-context noise texture

ncannasse il y a 7 ans
Parent
commit
cb563adc8e
1 fichiers modifiés avec 9 ajouts et 3 suppressions
  1. 9 3
      h3d/mat/Texture.hx

+ 9 - 3
h3d/mat/Texture.hx

@@ -366,15 +366,21 @@ class Texture {
 		return t;
 	}
 
-	static var noiseTextures = new Map<Int,h3d.mat.Texture>();
+	static var noiseTextureKeys = new Map<Int,{}>();
 
 	public static function genNoise(size) {
-		var t = noiseTextures.get(size);
+		var engine = h3d.Engine.getCurrent();
+		var k = noiseTextureKeys.get(size);
+		var t : Texture = k == null ? null : @:privateAccess engine.resCache.get(k);
 		if( t != null && !t.isDisposed() )
 			return t;
+		if( k == null ) {
+			k = {};
+			noiseTextureKeys.set(size, k);
+		}
 		var t = new h3d.mat.Texture(size, size, [NoAlloc]);
 		t.realloc = allocNoise.bind(t,size);
-		noiseTextures.set(size, t);
+		@:privateAccess engine.resCache.set(k, t);
 		return t;
 	}