30 lines
616 B
GLSL
30 lines
616 B
GLSL
#version 430
|
|
|
|
// Game of Life rendering shader
|
|
// Just renders the content of the ssbo at binding 1 to screen
|
|
|
|
#define GOL_WIDTH 768
|
|
|
|
// Input vertex attributes (from vertex shader)
|
|
in vec2 fragTexCoord;
|
|
|
|
// Output fragment color
|
|
out vec4 finalColor;
|
|
|
|
// Input game of life grid.
|
|
layout(std430, binding = 1) readonly buffer golLayout
|
|
{
|
|
uint golBuffer[];
|
|
};
|
|
|
|
// Output resolution
|
|
uniform vec2 resolution;
|
|
|
|
void main()
|
|
{
|
|
ivec2 coords = ivec2(fragTexCoord*resolution);
|
|
|
|
if ((golBuffer[coords.x + coords.y*uvec2(resolution).x]) == 1) finalColor = vec4(1.0);
|
|
else finalColor = vec4(0.0, 0.0, 0.0, 1.0);
|
|
}
|