Quellcode durchsuchen

Dynamic shader doesn't crash if shader is corrupted

Clément Espeute vor 11 Monaten
Ursprung
Commit
ef2034baf7
1 geänderte Dateien mit 9 neuen und 1 gelöschten Zeilen
  1. 9 1
      hrt/prefab/DynamicShader.hx

+ 9 - 1
hrt/prefab/DynamicShader.hx

@@ -81,7 +81,7 @@ class DynamicShader extends Shader {
 				var res = hxd.res.Loader.currentInstance.load(source);
 				var shgraph = Std.downcast(res.toPrefab().load(), hrt.shgraph.ShaderGraph);
 				if (shgraph == null)
-					throw source + " is not a valid shadergraph";
+					return;
 				shaderDef = shgraph.compile(null);
 				#if !editor
 				res.watch( function() {
@@ -135,6 +135,14 @@ class DynamicShader extends Shader {
 			</dl>
 			</div>');
 
+			if (StringTools.endsWith(source, ".shgraph")) {
+				var res = hxd.res.Loader.currentInstance.load(source);
+				var shgraph = Std.downcast(res.toPrefab().load(), hrt.shgraph.ShaderGraph);
+				if (shgraph == null) {
+					element.append(new hide.Element('<p>The given shadergraph is corrupted</p>'));
+				}
+			}
+
 			ectx.properties.add(element, this, function(pname) {
 				ectx.onChange(this, pname);
 				if (pname == "source") {