Skip to content
Snippets Groups Projects
Commit bf88f9f3 authored by DarkGod's avatar DarkGod
Browse files

yay

parent a27378d2
No related branches found
No related tags found
No related merge requests found
......@@ -9,11 +9,11 @@ void main(void)
{
vec2 offset = vec2(1.0, 1.0) / mapCoord * tileSize * 0.5;
vec4 colorm0 = texture2D( fboTex, gl_TexCoord[0].xy + vec2(-offset.x, 0.0));
/*vec4 colorm0 = texture2D( fboTex, gl_TexCoord[0].xy + vec2(-offset.x, 0.0));
vec4 colorp0 = texture2D( fboTex, gl_TexCoord[0].xy + vec2( offset.x, 0.0));
vec4 color0m = texture2D( fboTex, gl_TexCoord[0].xy + vec2(0.0, -offset.y));
vec4 color0p = texture2D( fboTex, gl_TexCoord[0].xy + vec2(0.0, offset.y));
vec4 color0p = texture2D( fboTex, gl_TexCoord[0].xy + vec2(0.0, offset.y));*/
vec4 colormm = texture2D( fboTex, gl_TexCoord[0].xy + vec2(-offset.x,-offset.y));
vec4 colormp = texture2D( fboTex, gl_TexCoord[0].xy + vec2(-offset.x, offset.y));
......@@ -42,49 +42,34 @@ void main(void)
loc3 = true;
if(colorpp.a > 0.1)
loc9 = true;
if(color00.a > 0.1)
loc5 = true;
int location = 5;
bool isInternal = false;
if(loc1 && !loc9 && loc7 && !loc3)
location = 6;
if(loc1 && !loc9 && loc3 && !loc7)
location = 8;
if(loc3 && !loc7 && loc9 && !loc1)
location = 4;
if(loc7 && !loc3 && loc9 && !loc1)
location = 2;
if(loc1 && !loc7 && !loc3 && !loc9)
location = 9;
if(loc7 && !loc1 && !loc9 && !loc3)
location = 3;
if(loc9 && !loc7 && !loc3 && !loc1)
location = 1;
if(loc3 && !loc1 && !loc9 && !loc7)
location = 7;
if(loc1 && loc7 && loc3 && !loc9)
if(gl_TexCoord[0].x + offset.x > 1.0)
{
location = 1;
isInternal = true;
loc9 = 0;
loc3 = 0;
}
if(loc7 && loc1 && loc9 && !loc3)
if(gl_TexCoord[0].x - offset.x < 0.0)
{
location = 7;
isInternal = true;
loc1 = 0;
loc7 = 0;
}
if(loc9 && loc7 && loc3 && !loc1)
if(gl_TexCoord[0].y + offset.y > 1.0)
{
location = 9;
isInternal = true;
loc7 = 0;
loc9 = 0;
}
if(loc3 && loc1 && loc9 && !loc7)
if(gl_TexCoord[0].y - offset.y < 0.0)
{
location = 3;
isInternal = true;
loc1 = 0;
loc3 = 0;
}
vec2 fboCoord = gl_TexCoord[0].xy;
fboCoord.y = 1.0 - fboCoord.y;
vec2 texCoord = (fboCoord * mapCoord + scrollOffset) / tileSize + vec2(0.5, 0.5);
......@@ -92,48 +77,65 @@ void main(void)
texCoord.y = mod(texCoord.y, 1.0);
vec4 borderColor = vec4(0.0, 0.0, 0.0, 0.0);
if(location == 1)
{
if(isInternal)
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 0.0, 1.0 / 4.0 * 3.0));
else
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 0.0, 1.0 / 4.0 * 1.0));
}
if(loc1 && loc7 && loc3 && !loc9) //1 internal
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 0.0, 1.0 / 4.0 * 3.0));
if(loc9 && !loc7 && !loc3 && !loc1) //1 external
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 0.0, 1.0 / 4.0 * 1.0));
if(location == 2)
borderColor += texture2D( targetSkin, texCoord / vec2(2.0, 4.0) + vec2(1.0 / 4.0 * 2.0, 1.0 / 4.0 * 1.0));
if(loc7 && !loc3 && loc9 && !loc1) //2
borderColor += texture2D( targetSkin, texCoord / vec2(4.0, 4.0) + vec2(1.0 / 4.0 * 2.0, 1.0 / 4.0 * 1.0));
if(location == 3)
{
if(isInternal)
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 1.0, 1.0 / 4.0 * 3.0));
else
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 1.0, 1.0 / 4.0 * 1.0));
}
if(location == 6)
borderColor += texture2D( targetSkin, texCoord / vec2(4.0, 2.0) + vec2(1.0 / 4.0 * 3.0, 1.0 / 4.0 * 2.0));
if(loc3 && loc1 && loc9 && !loc7) //3 internal
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 1.0, 1.0 / 4.0 * 3.0));
if(loc7 && !loc1 && !loc9 && !loc3) //3 external
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 1.0, 1.0 / 4.0 * 1.0));
if(loc1 && !loc9 && loc7 && !loc3) //8
borderColor += texture2D( targetSkin, texCoord / vec2(4.0, 4.0) + vec2(1.0 / 4.0 * 3.0, 1.0 / 4.0 * 0.0));
if(location == 9)
{
if(isInternal)
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 1.0, 1.0 / 4.0 * 2.0));
else
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 1.0, 1.0 / 4.0 * 0.0));
}
if(location == 8)
borderColor += texture2D( targetSkin, texCoord / vec2(2.0, 4.0) + vec2(1.0 / 4.0 * 2.0, 1.0 / 4.0 * 0.0));
if(loc9 && loc7 && loc3 && !loc1)
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 1.0, 1.0 / 4.0 * 2.0));
if(loc1 && !loc7 && !loc3 && !loc9) //9 external
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 1.0, 1.0 / 4.0 * 0.0));
if(loc1 && !loc9 && loc3 && !loc7)
borderColor += texture2D( targetSkin, texCoord / vec2(4.0, 4.0) + vec2(1.0 / 4.0 * 2.0, 1.0 / 4.0 * 0.0));
if(location == 7)
if(loc7 && loc1 && loc9 && !loc3) //7 internal
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 0.0, 1.0 / 4.0 * 2.0));
if(loc3 && !loc1 && !loc9 && !loc7) //7 external
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 0.0, 1.0 / 4.0 * 0.0));
if(loc3 && !loc7 && loc9 && !loc1) //4
borderColor += texture2D( targetSkin, texCoord / vec2(4.0, 4.0) + vec2(1.0 / 4.0 * 3.0, 1.0 / 4.0 * 1.0));
if(loc3 && loc7 && !loc9 && !loc1) //3-7 diag
borderColor += texture2D( targetSkin, texCoord / vec2(4.0, 4.0) + vec2(1.0 / 4.0 * 2.0, 1.0 / 4.0 * 2.0));
if(!loc3 && !loc7 && loc9 && loc1) //1-9 diag
borderColor += texture2D( targetSkin, texCoord / vec2(4.0, 4.0) + vec2(1.0 / 4.0 * 3.0, 1.0 / 4.0 * 2.0));
if(loc3 && loc7 && loc9 && loc1) //internal quad
borderColor += texture2D( targetSkin, texCoord / vec2(4.0, 4.0) + vec2(1.0 / 4.0 * 2.0, 1.0 / 4.0 * 3.0));
if(!loc5 && borderColor.a > 0.0)
{
vec4 avgColor =
(colormm * colormm.a + colormp * colormp.a + colorpm * colorpm.a + colorpp * colorpp.a)
/ (colormm.a + colormp.a + colorpm.a + colorpp.a + 1e-5);
resultColor += avgColor;
resultColor.rgb += borderColor.rgb * borderColor.a;
resultColor.a = borderColor.a;
}else
{
if(isInternal)
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 0.0, 1.0 / 4.0 * 2.0));
else
borderColor += texture2D( targetSkin, texCoord / 4.0 + vec2(1.0 / 4.0 * 0.0, 1.0 / 4.0 * 0.0));
borderColor.rgb *= borderColor.a;
resultColor += borderColor;
}
if(location == 4)
borderColor += texture2D( targetSkin, texCoord / vec2(4.0, 2.0) + vec2(1.0 / 4.0 * 2.0, 1.0 / 4.0 * 2.0));
borderColor.rgb *= borderColor.a;
resultColor += borderColor;
gl_FragColor = resultColor;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment