فهرست منبع

Fix removeShader not removing shader from selfShaders if the shader was also present in the shaders list

TothBenoit 11 ماه پیش
والد
کامیت
ef16db2c2b
1فایلهای تغییر یافته به همراه4 افزوده شده و 2 حذف شده
  1. 4 2
      h3d/mat/Pass.hx

+ 4 - 2
h3d/mat/Pass.hx

@@ -219,6 +219,7 @@ class Pass {
 
 	public function removeShader(s) {
 		var sl = shaders, prev = null;
+		var shaderFound = false;
 		while( sl != null ) {
 			if( sl.s == s ) {
 				resetRendererFlags();
@@ -228,7 +229,8 @@ class Pass {
 					shaders = sl.next;
 				else
 					prev.next = sl.next;
-				return true;
+				shaderFound = true;
+				break;
 			}
 			prev = sl;
 			sl = sl.next;
@@ -249,7 +251,7 @@ class Pass {
 			prev = sl;
 			sl = sl.next;
 		}
-		return false;
+		return shaderFound;
 	}
 
 	public function removeShaders< T:hxsl.Shader >(t:Class<T>) {