Explorar o código

Fix exception using default Texture3D that set in resCache as std texture.

borisrp hai 1 mes
pai
achega
931189d522
Modificáronse 2 ficheiros con 11 adicións e 10 borrados
  1. 9 9
      h3d/impl/GlDriver.hx
  2. 2 1
      h3d/mat/Texture3D.hx

+ 9 - 9
h3d/impl/GlDriver.hx

@@ -644,15 +644,15 @@ class GlDriver extends Driver {
 				var pt = s.textures[i];
 				if( t == null || t.isDisposed() ) {
 					switch( pt.t ) {
-					case TSampler(TCube, false):
-						t = h3d.mat.Texture.defaultCubeTexture();
-					case TSampler(T3D, false):
-						t = h3d.mat.Texture3D.default3DTexture();
-					case TSampler(_, false):
-						var color = h3d.mat.Defaults.loadingTextureColor;
-						t = h3d.mat.Texture.fromColor(color, (color >>> 24) / 255);
-					default:
-						throw "Missing texture";
+						case TSampler(TCube, false):
+							t = h3d.mat.Texture.defaultCubeTexture();
+						case TSampler(T3D, false):
+							t = h3d.mat.Texture3D.default3DTexture();
+						case TSampler(_, false):
+							var color = h3d.mat.Defaults.loadingTextureColor;
+							t = h3d.mat.Texture.fromColor(color, (color >>> 24) / 255);
+						default:
+							throw "Missing texture";
 					}
 				}
 				if( t != null && t.t == null && t.realloc != null ) {

+ 2 - 1
h3d/mat/Texture3D.hx

@@ -38,7 +38,8 @@ class Texture3D extends Texture {
 		if( t != null )
 			return t;
 		t = new Texture3D(1, 1, 1, hxd.PixelFormat.R8);
-		@:privateAccess engine.resCache.set(Texture,t);
+		t.setName("default3DTexture");
+		@:privateAccess engine.resCache.set(Texture3D,t);
 		return t;
 	}