varying vec2 openfl_TextureCoordv;
uniform sampler2D openfl_Texture;

	
uniform float a2;

float imgWidth;
float imgHeight;
float stepSize;
float kernel[9];
vec2 offset[9];

float step_w; 
float step_h;

void main() {

	imgWidth=256.0;
	imgHeight=256.0;
	stepSize=a2;
	step_w = stepSize/imgWidth;
	step_h = stepSize/imgHeight;

	offset[0] = vec2(-step_w, -step_h);
	offset[1] = vec2(0.0, -step_h);
	offset[2] = vec2(step_w, -step_h);
	offset[3] = vec2(-step_w, 0.0);
	offset[4] = vec2(0.0, 0.0);
	offset[5] = vec2(step_w, 0.0);
	offset[6] = vec2(-step_w, step_h);
	offset[7] = vec2(0.0, step_h);
	offset[8] = vec2(step_w, step_h);


	kernel[0] = 0.;
	kernel[1] = -1.;
	kernel[2] = 0.;
	kernel[3] = -1.;
	kernel[4] = 5.;
	kernel[5] = -1.;
	kernel[6] = 0.;
	kernel[7] = -1.;
	kernel[8] = 0.;


	vec4 sum = vec4(0.0);
	vec2 tc = openfl_TextureCoordv;
	
	for (int i = 0; i < 9; i++) {
	
		 vec4 color = texture2D(openfl_Texture,tc + offset[i]);
		sum += color * kernel[i] ;
	
	}
	gl_FragColor = sum;
}