Procházet zdrojové kódy

Add resolution uniform

rexim před 4 roky
rodič
revize
5fe791575b
2 změnil soubory, kde provedl 10 přidání a 1 odebrání
  1. 7 0
      main.c
  2. 3 1
      main.frag

+ 7 - 0
main.c

@@ -108,6 +108,7 @@ bool link_program(GLuint vert_shader, GLuint frag_shader, GLuint *program)
 
 bool program_failed = false;
 GLuint program = 0;
+GLint resolution_location = 0;
 
 void reload_shaders(void)
 {
@@ -138,6 +139,8 @@ void reload_shaders(void)
 
     glUseProgram(program);
 
+    resolution_location = glGetUniformLocation(program, "resolution");
+
     printf("Successfully Reload the Shaders\n");
 }
 
@@ -218,6 +221,10 @@ int main()
         glClear(GL_COLOR_BUFFER_BIT);
 
         if (!program_failed) {
+            glUniform2f(resolution_location,
+                        SCREEN_WIDTH,
+                        SCREEN_HEIGHT);
+
             glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
         }
 

+ 3 - 1
main.frag

@@ -1,7 +1,9 @@
 #version 130
 
+uniform vec2 resolution;
+
 out vec4 color;
 
 void main(void) {
-    color = vec4(0.0, 1.0, 0.0, 1.0);
+    color = vec4(gl_FragCoord.xy / resolution, 0.0, 1.0);
 };