Bläddra i källkod

allow shader inheritance without SRC

ncannasse 8 år sedan
förälder
incheckning
584f8d488a
1 ändrade filer med 10 tillägg och 2 borttagningar
  1. 10 2
      hxsl/Shader.hx

+ 10 - 2
hxsl/Shader.hx

@@ -15,8 +15,16 @@ class Shader {
 		shader = cl._SHADER;
 		constModified = true;
 		if( shader == null ) {
-			shader = new SharedShader(cl.SRC);
-			cl._SHADER = shader;
+			var curClass : Dynamic = cl;
+			while( curClass != null && curClass.SRC == null )
+				curClass = std.Type.getSuperClass(curClass);
+			if( curClass == null )
+				throw std.Type.getClassName(cl) + " has no shader source";
+			shader = curClass._SHADER;
+			if( shader == null ) {
+				shader = new SharedShader(curClass.SRC);
+				curClass._SHADER = shader;
+			}
 		}
 	}