wip framebuffers

This commit is contained in:
2025-09-14 15:47:01 +02:00
parent 3320e83efb
commit 85e061398e
4 changed files with 19 additions and 4 deletions
+1 -3
View File
@@ -4,8 +4,7 @@ uniform float iTime;
uniform vec2 iResolution;
uniform sampler2D frame0;
in vec2 vUV;
out vec4 fragColor;
layout(location = 0) out vec4 fragColor2;
layout(location = 0) out vec4 fragColor;
void main() {
vec2 uv0 = vUV.st;
@@ -14,5 +13,4 @@ void main() {
vec3 color = vec3(vUV, sin(iTime * 0.5) * 0.5 + 0.5);
color *= 1 - step(cos(iTime) * 0.1 + 0.5,length(uv1));
fragColor = vec4(color, 1.0);
fragColor2 = vec4(color, 1.0);
}
+11 -1
View File
@@ -4,7 +4,7 @@
#define CONSTANTS_H
static char *vertex_shader_text =
"#version 330\n"
"#version 460\n"
"uniform mat4 mvp;\n"
"in vec2 vPos;\n"
"out vec2 vUV;\n"
@@ -14,6 +14,16 @@ static char *vertex_shader_text =
" vUV = vPos;\n"
"}\n";
static char *output_fragment_shader_text =
"#version 460\n"
"in vec2 vUV;\n"
"out vec4 fragColor;\n"
"uniform sampler2D frame0\n"
"void main()\n"
"{\n"
" fragColor = vec4(texture(frame0, vUV).xyz, 1.0);\n"
"}\n";
static const Vertex vertices[6] = {{{0.0f, 0.0f}}, {{0.0f, 1.0f}},
{{1.0f, 1.0f}}, {{0.0f, 0.0f}},
{{1.0f, 1.0f}}, {{1.0f, 0.0f}}};
+6
View File
@@ -103,6 +103,11 @@ ShaderProgram init_program(File fragment_shader, Context context) {
program.error |= !compile_shader(
program.fragment_shader, fragment_shader.path, fragment_shader.content);
program.output_fragment_shader = glCreateShader(GL_FRAGMENT_SHADER);
program.error |=
!compile_shader(program.output_fragment_shader,
"internal fragment shader", output_fragment_shader_text);
if (program.error) {
return program;
}
@@ -111,6 +116,7 @@ ShaderProgram init_program(File fragment_shader, Context context) {
program.program = glCreateProgram();
glAttachShader(program.program, program.vertex_shader);
glAttachShader(program.program, program.fragment_shader);
glAttachShader(program.program, program.output_fragment_shader);
glLinkProgram(program.program);
// create uniforms pointers
+1
View File
@@ -34,6 +34,7 @@ typedef struct ShaderProgram {
GLuint vertex_shader;
GLuint fragment_shader;
GLuint output_fragment_shader;
GLuint mvp_location;
GLuint itime_location;