Просмотр исходного кода

Fixed LuaJIT support, fixed shader alpha when fog is enabled

Ivan Safrin 13 лет назад
Родитель
Сommit
9ded3c1458

BIN
Assets/Default asset pack/default.pak


+ 5 - 3
Assets/Default asset pack/default/DefaultParticleShader.frag

@@ -82,8 +82,7 @@ void main()
 	vec4 texColor = texture2D(diffuse, gl_TexCoord[0].st);		
 		
     vec4 color = diffuse_val + ambient_color;	
-    color = clamp(color*vertexColor*texColor, 0.0, 1.0);
-	color.a = diffuse_color.a * texColor.a;  
+    color = clamp(color*vertexColor*texColor, 0.0, 1.0);	
 
     // fog
 	const float LOG2 = 1.442695;
@@ -95,6 +94,9 @@ void main()
 				   LOG2 );
 
 	fogFactor = clamp(fogFactor, 0.0, 1.0);
-	gl_FragColor = mix(gl_Fog.color, color, fogFactor );    
+
+	color = mix(gl_Fog.color, color, fogFactor );    
+	color.a = diffuse_color.a * texColor.a;  	
+	gl_FragColor = color;
 
 }

+ 5 - 3
Assets/Default asset pack/default/DefaultShader.frag

@@ -101,8 +101,7 @@ void main()
 	vec4 texColor = texture2D(diffuse, gl_TexCoord[0].st);		
 		
     vec4 color = diffuse_val + ambient_color; 	           
-    color = clamp((color*vertexColor*texColor) + specular_val, 0.0, 1.0);
-    color.a = diffuse_color.a * texColor.a;
+    color = clamp((color*vertexColor*texColor) + specular_val, 0.0, 1.0);  
 
     // fog
 	const float LOG2 = 1.442695;
@@ -114,6 +113,9 @@ void main()
 				   LOG2 );
 
 	fogFactor = clamp(fogFactor, 0.0, 1.0);
-	gl_FragColor = mix(gl_Fog.color, color, fogFactor );    
+
+	color = mix(gl_Fog.color, color, fogFactor );   
+	color.a = diffuse_color.a * texColor.a;	
+	gl_FragColor = color;
 
 }

+ 5 - 2
Assets/Default asset pack/default/DefaultShaderNoTexture.frag

@@ -100,7 +100,7 @@ void main()
     vec4 color = (diffuse_val  * 1.0) +
                  (specular_val * 1.0)+
                  ambient_color;
-	color.a = diffuse_color.a;                 
+	                 
     color = clamp(color*vertexColor, 0.0, 1.0);
     
     // fog
@@ -113,6 +113,9 @@ void main()
 				   LOG2 );
 
 	fogFactor = clamp(fogFactor, 0.0, 1.0);
-	gl_FragColor = mix(gl_Fog.color, color, fogFactor );    
+
+	color = mix(gl_Fog.color, color, fogFactor );    
+	color.a = diffuse_color.a;	
+	gl_FragColor = color;
 
 }

+ 5 - 3
Assets/Default asset pack/default/DefaultShaderShadows.frag

@@ -126,8 +126,7 @@ void main()
 	vec4 texColor = texture2D(diffuse, gl_TexCoord[0].st);		
 		
     vec4 color = diffuse_val + ambient_color;	
-    color = clamp((color*vertexColor*texColor) + specular_val, 0.0, 1.0);
-	color.a = diffuse_color.a * texColor.a;
+    color = clamp((color*vertexColor*texColor) + specular_val, 0.0, 1.0);	
 
     // fog
 	const float LOG2 = 1.442695;
@@ -139,6 +138,9 @@ void main()
 				   LOG2 );
 
 	fogFactor = clamp(fogFactor, 0.0, 1.0);
-	gl_FragColor = mix(gl_Fog.color, color, fogFactor );    
+
+	color = mix(gl_Fog.color, color, fogFactor );    
+	color.a = diffuse_color.a * texColor.a;	
+	gl_FragColor = color;
 
 }

+ 5 - 2
Assets/Default asset pack/default/DefaultShaderVertex.frag

@@ -6,7 +6,7 @@ void main()
 {
 	vec4 texColor = texture2D(diffuse, gl_TexCoord[0].st);	
     vec4 color = (texColor*vertexColor) + specularColor;    
-    color.a = vertexColor.a * texColor.a;
+
     
     // fog
 	const float LOG2 = 1.442695;
@@ -18,6 +18,9 @@ void main()
 				   LOG2 );
 
 	fogFactor = clamp(fogFactor, 0.0, 1.0);
-	gl_FragColor = mix(gl_Fog.color, color, fogFactor );        
+	
+	color = mix(gl_Fog.color, color, fogFactor );  
+    color.a = vertexColor.a * texColor.a;	
+	gl_FragColor = color;
     
 }

+ 5 - 2
Assets/Default asset pack/default/DefaultShaderVertexNoTexture.frag

@@ -5,7 +5,7 @@ varying vec4 specularColor;
 void main()
 {
     vec4 color = vertexColor + specularColor;
-    color.a = vertexColor.a;
+    
     
     // fog
 	const float LOG2 = 1.442695;
@@ -17,6 +17,9 @@ void main()
 				   LOG2 );
 
 	fogFactor = clamp(fogFactor, 0.0, 1.0);
-	gl_FragColor = mix(gl_Fog.color, color, fogFactor );    	 
+
+	color = mix(gl_Fog.color, color, fogFactor ); 
+	color.a = vertexColor.a;
+	gl_FragColor = color;
     
 }

+ 5 - 2
Assets/Default asset pack/default/NorColSpec.frag

@@ -137,7 +137,7 @@ void main()
                  (specular_val * 1.0)+
                  (ambient_color * texColor * vertexColor);
     color = clamp(color, 0.0, 1.0);
-    color.a = diffuse_color.a * texColor.a;
+    
 
     // fog
 	const float LOG2 = 1.442695;
@@ -149,6 +149,9 @@ void main()
 				   LOG2 );
 
 	fogFactor = clamp(fogFactor, 0.0, 1.0);
-	gl_FragColor = mix(gl_Fog.color, color, fogFactor );    
+
+	color = mix(gl_Fog.color, color, fogFactor ); 
+	color.a = diffuse_color.a * texColor.a;
+	gl_FragColor = color;
 
 }

BIN
Assets/Default asset pack/hdr.pak


+ 4 - 3
Assets/Default asset pack/hdr/NorColSpecHDR.frag

@@ -140,7 +140,6 @@ void main()
                  (specular_val * 1.0)+
                  (ambient_color * texColor * vertexColor);
 
-    color.a = diffuse_color.a * texColor.a;
 
     // fog
 	const float LOG2 = 1.442695;
@@ -152,6 +151,8 @@ void main()
 				   LOG2 );
 
 	fogFactor = clamp(fogFactor, 0.0, 1.0);
-	gl_FragColor = mix(gl_Fog.color, color, fogFactor );    
-	gl_FragColor.a = 1.0;
+
+	color = mix(gl_Fog.color, color, fogFactor );
+    color.a = diffuse_color.a * texColor.a;	
+	gl_FragColor = color;
 }

+ 1 - 0
Bindings/Scripts/create_lua_library/create_lua_library.py

@@ -493,6 +493,7 @@ def createLUABindings(inputPath, prefix, mainInclude, libSmallName, libName, api
 						luaClassBindingOut += "end\n"
 					elif pm["name"] == ckey: # Constructors
 						luaClassBindingOut += "function %s:%s(...)\n" % (ckey, ckey)
+						luaClassBindingOut += "\tlocal arg = {...}\n"
 						if inherits:
 							luaClassBindingOut += "\tif type(arg[1]) == \"table\" and count(arg) == 1 then\n"
 							luaClassBindingOut += "\t\tif \"\"..arg[1].__classname == \"%s\" then\n" % (c["inherits"][0]["class"])

+ 1 - 1
IDE/Contents/Source/PolycodeTextEditor.cpp

@@ -35,7 +35,7 @@ PolycodeSyntaxHighlighter::PolycodeSyntaxHighlighter(String extension) {
 //	String separators = " ;()\t\n=+-/\\'\"";	
 //	String keywords = "true,false,";
 	
-	separators = String("[ [ ] { } ; . , : # ( ) \t \n = + - / \\ ' \"").split(" ");
+	separators = String("[ * [ ] { } ; . , : # ( ) \t \n = + - / \\ ' \"").split(" ");
 	separators.push_back(" ");
 	
 	keywords = String("and require true false class self break do end else elseif function if local nil not or repeat return then until while").split(" ");

+ 3 - 0
Player/Contents/Source/PolycodePlayer.cpp

@@ -299,6 +299,9 @@ static void dumpstack (lua_State *L) {
 		
 		L=lua_open();
 		
+		if(!L) {
+			printf("ASDASD");
+		}
 		/*
 		 luaopen_base(L);	// load basic libs (eg. print)
 		 luaopen_math(L);