blob: 1549562b808447cadab94f649a35f86f2945efaf [file] [log] [blame]
#!amber
SHADER vertex vert_shader PASSTHROUGH
SHADER fragment frag_setup GLSL
#version 430
layout(location = 0) out vec4 result;
void main() {
result = vec4(floor(gl_FragCoord.x) / 255.0f, floor(gl_FragCoord.y) / 255.0f, 0, 0);
}
END
SHADER fragment frag_shader GLSL
#version 430
layout(binding = 0) uniform sampler2D tex;
layout(location = 0) out vec4 result;
void main() {
vec2 base = floor(gl_FragCoord.xy) / 255.0f;
uint mask = 0;
mask |= textureOffset(tex, base, ivec2(0, -1)).g < base.y ? 1 : 0;
mask |= textureOffset(tex, base, ivec2(0, 1)).g > base.y ? 2 : 0;
mask |= textureOffset(tex, base, ivec2(-1, 0)).r < base.x ? 4 : 0;
mask |= textureOffset(tex, base, ivec2(1, 0)).r > base.x ? 8 : 0;
result = vec4(mask/255.0f, 0, 0, 0);
}
END
IMAGE texture FORMAT R8G8B8A8_UNORM DIM_2D WIDTH 256 HEIGHT 256
SAMPLER sampler
PIPELINE graphics setup
ATTACH vert_shader
ATTACH frag_setup
BIND BUFFER texture AS color LOCATION 0
FRAMEBUFFER_SIZE 256 256
END
RUN setup DRAW_RECT POS 0 0 SIZE 256 256
BUFFER framebuffer FORMAT R8G8B8A8_UNORM
PIPELINE graphics pipeline
ATTACH vert_shader
ATTACH frag_shader
BIND BUFFER texture AS combined_image_sampler SAMPLER sampler DESCRIPTOR_SET 0 BINDING 0
BIND BUFFER framebuffer AS color LOCATION 0
FRAMEBUFFER_SIZE 256 256
END
RUN pipeline DRAW_RECT POS 0 0 SIZE 256 256
EXPECT framebuffer IDX 1 1 SIZE 254 254 EQ_RGBA 15 0 0 0