Forráskód Böngészése

Fix perInstance shgraph param on emitter

Jed 4 éve
szülő
commit
e3df56f35c
1 módosított fájl, 14 hozzáadás és 12 törlés
  1. 14 12
      hide/view/shadereditor/ShaderEditor.hx

+ 14 - 12
hide/view/shadereditor/ShaderEditor.hx

@@ -713,25 +713,27 @@ class ShaderEditor extends hide.view.Graph {
 		deleteBtn.appendTo(actionBtns);
 
 		var perInstanceCb = new Element('<div><span>PerInstance</span><input type="checkbox"/><div>');
-		var shaderParam : ShaderParam = null;
+		var shaderParams : Array<ShaderParam> = [];
 		for (b in listOfBoxes) {
 			var tmpShaderParam = Std.downcast(b.getInstance(), ShaderParam);
 			if (tmpShaderParam != null && tmpShaderParam.parameterId == parameter.id) {
-				shaderParam = tmpShaderParam;
+				shaderParams.push(tmpShaderParam);
 				break;
 			}
 		}
-		if (shaderParam != null) {
-			perInstanceCb.prop("checked", shaderParam.perInstance);
-			perInstanceCb.on("change", function() {
-				beforeChange();
-				var checked : Bool = perInstanceCb.prop("checked");
+
+		var checkbox = perInstanceCb.find("input");
+		if (shaderParams.length > 0)
+			checkbox.prop("checked", shaderParams[0].perInstance);
+		checkbox.on("change", function() {
+			beforeChange();
+			var checked : Bool = checkbox.prop("checked");
+			for (shaderParam in shaderParams)
 				shaderParam.perInstance = checked;
-				afterChange();
-				compileShader();
-			});
-			perInstanceCb.appendTo(content);
-		}
+			afterChange();
+			compileShader();
+		});
+		perInstanceCb.appendTo(content);
 
 		var inputTitle = elt.find(".input-title");
 		inputTitle.on("click", function(e) {