wip framebuffers
This commit is contained in:
+1
-3
@@ -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
@@ -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}}};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -34,6 +34,7 @@ typedef struct ShaderProgram {
|
||||
|
||||
GLuint vertex_shader;
|
||||
GLuint fragment_shader;
|
||||
GLuint output_fragment_shader;
|
||||
|
||||
GLuint mvp_location;
|
||||
GLuint itime_location;
|
||||
|
||||
Reference in New Issue
Block a user