diff src/scripts/graphics.lua @ 1131:b3305085b712

Remove love_ScreenSize from shaders. PixelEffects would fail to load when screen_coords were unused. Reopens issue #435: "PixelEffects have flipped screen_coords.y".
author vrld <vrld@vrld.org>
date Mon, 01 Oct 2012 21:39:52 +0200
parents 06e20ce294cd
children 448da0a19ddb
line wrap: on
line diff
--- a/src/scripts/graphics.lua	Tue Sep 11 16:11:26 2012 +0200
+++ b/src/scripts/graphics.lua	Mon Oct 01 21:39:52 2012 +0200
@@ -1284,21 +1284,20 @@
 	end
 
 	-- PIXEL EFFECTS
+	local GLSL_HEADER_LINE_COUNT = 6
+	local GLSL_HEADER = [[#version 120
+	#define number float
+	#define Image sampler2D
+	#define extern uniform
+	#define Texel texture2D
+	uniform sampler2D _tex0_;]]
+	local GLSL_FOOTER = [[void main() {
+		// fix weird crashing issue in OSX when _tex0_ is unused within effect()
+		float dummy = texture2D(_tex0_, vec2(.5)).r;
+		gl_FragColor = effect(gl_Color, _tex0_, gl_TexCoord[0].xy, gl_FragCoord.xy);
+	}]]
 	function love.graphics._effectCodeToGLSL(code)
-		local header = [[#version 120
-		#define number float
-		#define Image sampler2D
-		#define extern uniform
-		#define Texel texture2D
-		uniform sampler2D _tex0_;
-		uniform vec2 love_ScreenSize;]]
-		local footer = [[void main() {
-			// fix weird crashing issue in OSX when _tex0_ is unused within effect()
-			float dummy = texture2D(_tex0_, vec2(.5)).r;
-			gl_FragColor = effect(gl_Color, _tex0_, gl_TexCoord[0].xy, love_ScreenSize - gl_FragCoord.xy);
-		}]]
-
-		return table.concat{header, "\n", code, footer}
+		return table.concat{GLSL_HEADER, "\n", code, GLSL_FOOTER}
 	end
 
 	function love.graphics._transformGLSLErrorMessages(message)
@@ -1314,7 +1313,8 @@
 				linenumber, what, message = l:match("^%w+: 0:(%d+):%s*(%w+)%([^%)]+%)%s*(.+)$")
 			end
 			if linenumber and what and message then
-				lines[#lines+1] = ("Line %d: %s: %s"):format(linenumber - 7, what, message)
+				linenumber = linenumber - GLSL_HEADER_LINE_COUNT
+				lines[#lines+1] = ("Line %d: %s: %s"):format(linenumber, what, message)
 			end
 		end
 		-- did not match any known error messages