diff options
author | pryazha <pryadeiniv@mail.ru> | 2025-02-06 12:38:09 +0500 |
---|---|---|
committer | pryazha <pryadeiniv@mail.ru> | 2025-02-06 12:38:09 +0500 |
commit | 926cbd0d49890772f911e6a6bedb7835605ced89 (patch) | |
tree | ea27e2c84e32ab6d8d29af9e61cd432e30a46bc6 /advanced_opengl | |
parent | bf1c59565096ac9774493846cfb15e259d3b0e66 (diff) |
change
Diffstat (limited to 'advanced_opengl')
52 files changed, 138 insertions, 129 deletions
diff --git a/advanced_opengl/1.depth/build.sh b/advanced_opengl/1.depth/build.sh index 837b21c..04fe803 100755 --- a/advanced_opengl/1.depth/build.sh +++ b/advanced_opengl/1.depth/build.sh @@ -2,4 +2,4 @@ . ../../config TARGET='depth' set -x -gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS && ./$TARGET +gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS diff --git a/advanced_opengl/1.depth/depth b/advanced_opengl/1.depth/depth Binary files differindex db67630..68f04d6 100755 --- a/advanced_opengl/1.depth/depth +++ b/advanced_opengl/1.depth/depth diff --git a/advanced_opengl/1.depth/shaders/depth.fs b/advanced_opengl/1.depth/shaders/depth.fs index 2f3d9ca..a515c15 100644 --- a/advanced_opengl/1.depth/shaders/depth.fs +++ b/advanced_opengl/1.depth/shaders/depth.fs @@ -6,14 +6,14 @@ in vec2 tex_coords; uniform sampler2D our_texture; -float near = 0.1f; -float far = 100.0f; +float near = 0.1; +float far = 100.0; float linearize_depth(float depth) { - float ndc_z = 2.0f*depth-1.0f; - return((2.0f*near*far)/(far+near-ndc_z*(far-near))); + float ndc_z = 2.0*depth-1.0; + return((2.0*near*far)/(far+near-ndc_z*(far-near))); } void @@ -23,5 +23,5 @@ main(void) frag_color = texture(our_texture, tex_coords); */ float depth = linearize_depth(gl_FragCoord.z)/far; - frag_color = vec4(vec3(depth), 1.0f); + frag_color = vec4(vec3(depth), 1.0); } diff --git a/advanced_opengl/1.depth/shaders/depth.vs b/advanced_opengl/1.depth/shaders/depth.vs index d3d92d1..62e71a2 100644 --- a/advanced_opengl/1.depth/shaders/depth.vs +++ b/advanced_opengl/1.depth/shaders/depth.vs @@ -11,6 +11,6 @@ out vec2 tex_coords; void main(void) { - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); tex_coords = atex_coords; } diff --git a/advanced_opengl/10.antialiasing/anti_aliasing_msaa b/advanced_opengl/10.antialiasing/anti_aliasing_msaa Binary files differindex d0afd7e..36811f7 100755 --- a/advanced_opengl/10.antialiasing/anti_aliasing_msaa +++ b/advanced_opengl/10.antialiasing/anti_aliasing_msaa diff --git a/advanced_opengl/10.antialiasing/anti_aliasing_msaa.c b/advanced_opengl/10.antialiasing/anti_aliasing_msaa.c index 9fcb645..65a5b01 100644 --- a/advanced_opengl/10.antialiasing/anti_aliasing_msaa.c +++ b/advanced_opengl/10.antialiasing/anti_aliasing_msaa.c @@ -169,9 +169,9 @@ main(void) if (key_is_pressed(global_input.exit)) glfwSetWindowShouldClose(window, GLFW_TRUE); - camera_pos = update_camera_orbital(global_input, - camera_pos, v3f_zero(), - dt, camera_speed); + V3F camera_dv = get_dv_camera_orbital(&global_input, camera_pos, + v3f_zero(), dt, camera_speed); + camera_pos = v3f_add(camera_pos, camera_dv); projection = perspective(fovx, (F32)global_width/(F32)global_height, near, far); view = look_at(camera_pos, v3f_zero(), v3f(0.0f, 1.0f, 0.0f)); diff --git a/advanced_opengl/10.antialiasing/anti_aliasing_offscreen b/advanced_opengl/10.antialiasing/anti_aliasing_offscreen Binary files differindex 72be7e2..c8a241c 100755 --- a/advanced_opengl/10.antialiasing/anti_aliasing_offscreen +++ b/advanced_opengl/10.antialiasing/anti_aliasing_offscreen diff --git a/advanced_opengl/10.antialiasing/anti_aliasing_offscreen.c b/advanced_opengl/10.antialiasing/anti_aliasing_offscreen.c index 91a26f9..5c6debb 100644 --- a/advanced_opengl/10.antialiasing/anti_aliasing_offscreen.c +++ b/advanced_opengl/10.antialiasing/anti_aliasing_offscreen.c @@ -218,9 +218,9 @@ main(void) if (key_is_pressed(global_input.exit)) glfwSetWindowShouldClose(window, GLFW_TRUE); - camera_pos = update_camera_orbital(global_input, - camera_pos, v3f_zero(), - dt, camera_speed); + V3F camera_dv = get_dv_camera_orbital(&global_input, camera_pos, + v3f_zero(), dt, camera_speed); + camera_pos = v3f_add(camera_pos, camera_dv); projection = perspective(fovx, (F32)WIDTH/(F32)HEIGHT, near, far); view = look_at(camera_pos, v3f_zero(), v3f(0.0f, 1.0f, 0.0f)); diff --git a/advanced_opengl/10.antialiasing/shaders/color.fs b/advanced_opengl/10.antialiasing/shaders/color.fs index b935555..542143e 100644 --- a/advanced_opengl/10.antialiasing/shaders/color.fs +++ b/advanced_opengl/10.antialiasing/shaders/color.fs @@ -5,5 +5,5 @@ out vec4 frag_color; void main(void) { - frag_color = vec4(0.76f, 0.47f, 0.84f, 1.0f); + frag_color = vec4(0.76, 0.47, 0.84, 1.0); } diff --git a/advanced_opengl/10.antialiasing/shaders/screen.fs b/advanced_opengl/10.antialiasing/shaders/screen.fs index 8fefa24..183d490 100644 --- a/advanced_opengl/10.antialiasing/shaders/screen.fs +++ b/advanced_opengl/10.antialiasing/shaders/screen.fs @@ -9,7 +9,7 @@ uniform sampler2D texture1; vec4 inversion() { - vec4 result = vec4(1.0f-vec3(texture(texture1, tex_coords)), 1.0f); + vec4 result = vec4(1.0-vec3(texture(texture1, tex_coords)), 1.0); return(result); } @@ -17,8 +17,8 @@ vec4 grayscale_average() { vec4 tex_color = texture(texture1, tex_coords); - float average = (tex_color.r+tex_color.g+tex_color.b)/3.0f; - vec4 result = vec4(average, average, average, 1.0f); + float average = (tex_color.r+tex_color.g+tex_color.b)/3.0; + vec4 result = vec4(average, average, average, 1.0); return(result); } @@ -26,25 +26,25 @@ vec4 grayscale_weights() { vec4 tex_color = texture(texture1, tex_coords); - float average = 0.2126*tex_color.r+0.7152*tex_color.g+0.0722f*tex_color.b; - vec4 result = vec4(average, average, average, 1.0f); + float average = 0.2126*tex_color.r+0.7152*tex_color.g+0.0722*tex_color.b; + vec4 result = vec4(average, average, average, 1.0); return(result); } -const float offset = 1.0f/300.0f; +const float offset = 1.0/300.0; vec4 kernel_effect(float[9] kernel) { vec2 offsets[9] = vec2[]( vec2(-offset, offset), /* top-left */ - vec2(0.0f, offset), /* top-center */ + vec2(0.0, offset), /* top-center */ vec2(offset, offset), /* top-right */ - vec2(-offset, 0.0f), /* center-left */ - vec2(0.0f, 0.0f), /* center-center */ - vec2(offset, 0.0f), /* center-right */ + vec2(-offset, 0.0), /* center-left */ + vec2(0.0, 0.0), /* center-center */ + vec2(offset, 0.0), /* center-right */ vec2(-offset, -offset), /* bottom-left */ - vec2(0.0f, -offset), /* bottom-center */ + vec2(0.0, -offset), /* bottom-center */ vec2(offset, -offset) /* bottom-right */ ); @@ -57,11 +57,11 @@ kernel_effect(float[9] kernel) vec3(texture(texture1, tex_coords+offsets[offset_index])); } - vec3 color = vec3(0.0f); + vec3 color = vec3(0.0); for (int i = 0; i < 9; ++i) color += sample_texture[i]*kernel[i]; - return(vec4(color, 1.0f)); + return(vec4(color, 1.0)); } void @@ -74,49 +74,46 @@ main(void) ); float gaussian_blur_kernel[9] = float[]( - 1.0f/16.0f, 2.0f/16.0f, 1.0f/16.0f, - 2.0f/16.0f, 4.0f/16.0f, 2.0f/16.0f, - 1.0f/16.0f, 2.0f/16.0f, 1.0f/16.0f + 1.0/16.0, 2.0/16.0, 1.0/16.0, + 2.0/16.0, 4.0/16.0, 2.0/16.0, + 1.0/16.0, 2.0/16.0, 1.0/16.0 ); float box_blur_kernel[9] = float[]( - 1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f, - 1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f, - 1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f + 1.0/9.0, 1.0/9.0, 1.0/9.0, + 1.0/9.0, 1.0/9.0, 1.0/9.0, + 1.0/9.0, 1.0/9.0, 1.0/9.0 ); float edge_detection_kernel[9] = float[]( - 1.0f, 1.0f, 1.0f, - 1.0f, -8.0f, 1.0f, - 1.0f, 1.0f, 1.0f + 1.0, 1.0, 1.0, + 1.0, -8.0, 1.0, + 1.0, 1.0, 1.0 ); float sharpening_kernel[9] = float[]( - 0.0f, -1.0f, 0.0f, - -1.0f, 5.0f, -1.0f, - 0.0f, -1.0f, 0.0f + 0.0, -1.0, 0.0, + -1.0, 5.0, -1.0, + 0.0, -1.0, 0.0 ); float sobel_kernel_vertical[9] = float[]( - -1.0f, 0.0f, 1.0f, - -2.0f, 0.0f, 2.0f, - -1.0f, 0.0f, 0.0f + -1.0, 0.0, 1.0, + -2.0, 0.0, 2.0, + -1.0, 0.0, 0.0 ); float sobel_kernel_horizontal[9] = float[]( - -1.0f, -2.0f, -1.0f, - 0.0f, 0.0f, 0.0f, - 1.0f, 2.0f, 1.0f + -1.0, -2.0, -1.0, + 0.0, 0.0, 0.0, + 1.0, 2.0, 1.0 ); float funny_kernel[9] = float[]( - 1.0f, 1.0f, 1.0f, - 1.0f, -4.0f, 1.0f, - 1.0f, 1.0f, 1.0f + 1.0, 1.0, 1.0, + 1.0, -4.0, 1.0, + 1.0, 1.0, 1.0 ); - /* frag_color = kernel_effect(funny_kernel); - frag_color *= vec4(0.76f, 0.47f, 0.84f, 1.0f); - */ - frag_color = grayscale_weights(); + frag_color *= vec4(0.76, 0.47, 0.84, 1.0); } diff --git a/advanced_opengl/10.antialiasing/shaders/screen.vs b/advanced_opengl/10.antialiasing/shaders/screen.vs index 0a5213b..1f233ee 100644 --- a/advanced_opengl/10.antialiasing/shaders/screen.vs +++ b/advanced_opengl/10.antialiasing/shaders/screen.vs @@ -7,6 +7,6 @@ out vec2 tex_coords; void main(void) { - gl_Position = vec4(apos, 1.0f); + gl_Position = vec4(apos, 1.0); tex_coords = atex_coords; } diff --git a/advanced_opengl/2.stencil/build.sh b/advanced_opengl/2.stencil/build.sh index 335dd5d..c4aa562 100755 --- a/advanced_opengl/2.stencil/build.sh +++ b/advanced_opengl/2.stencil/build.sh @@ -2,4 +2,4 @@ . ../../config TARGET='stencil' set -x -gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS && ./$TARGET +gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS diff --git a/advanced_opengl/2.stencil/shaders/outline.fs b/advanced_opengl/2.stencil/shaders/outline.fs index b935555..542143e 100644 --- a/advanced_opengl/2.stencil/shaders/outline.fs +++ b/advanced_opengl/2.stencil/shaders/outline.fs @@ -5,5 +5,5 @@ out vec4 frag_color; void main(void) { - frag_color = vec4(0.76f, 0.47f, 0.84f, 1.0f); + frag_color = vec4(0.76, 0.47, 0.84, 1.0); } diff --git a/advanced_opengl/2.stencil/shaders/stencil.vs b/advanced_opengl/2.stencil/shaders/stencil.vs index d3d92d1..62e71a2 100644 --- a/advanced_opengl/2.stencil/shaders/stencil.vs +++ b/advanced_opengl/2.stencil/shaders/stencil.vs @@ -11,6 +11,6 @@ out vec2 tex_coords; void main(void) { - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); tex_coords = atex_coords; } diff --git a/advanced_opengl/2.stencil/stencil b/advanced_opengl/2.stencil/stencil Binary files differindex ad0f48c..eb4eac5 100755 --- a/advanced_opengl/2.stencil/stencil +++ b/advanced_opengl/2.stencil/stencil diff --git a/advanced_opengl/3.blending/blending b/advanced_opengl/3.blending/blending Binary files differindex 063ce51..40fe12a 100755 --- a/advanced_opengl/3.blending/blending +++ b/advanced_opengl/3.blending/blending diff --git a/advanced_opengl/3.blending/build.sh b/advanced_opengl/3.blending/build.sh index 1fb5c9c..51f3629 100755 --- a/advanced_opengl/3.blending/build.sh +++ b/advanced_opengl/3.blending/build.sh @@ -2,4 +2,4 @@ . ../../config TARGET='blending' set -x -gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS && ./$TARGET +gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS diff --git a/advanced_opengl/3.blending/shaders/blending.vs b/advanced_opengl/3.blending/shaders/blending.vs index d3d92d1..62e71a2 100644 --- a/advanced_opengl/3.blending/shaders/blending.vs +++ b/advanced_opengl/3.blending/shaders/blending.vs @@ -11,6 +11,6 @@ out vec2 tex_coords; void main(void) { - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); tex_coords = atex_coords; } diff --git a/advanced_opengl/4.face_culling/build.sh b/advanced_opengl/4.face_culling/build.sh index e60b2dc..d67eefa 100755 --- a/advanced_opengl/4.face_culling/build.sh +++ b/advanced_opengl/4.face_culling/build.sh @@ -2,4 +2,4 @@ . ../../config TARGET='face_culling' set -x -gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS && ./$TARGET +gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS diff --git a/advanced_opengl/4.face_culling/face_culling b/advanced_opengl/4.face_culling/face_culling Binary files differindex 62d75b4..eb6e3e9 100755 --- a/advanced_opengl/4.face_culling/face_culling +++ b/advanced_opengl/4.face_culling/face_culling diff --git a/advanced_opengl/4.face_culling/shaders/face_culling.vs b/advanced_opengl/4.face_culling/shaders/face_culling.vs index d3d92d1..62e71a2 100644 --- a/advanced_opengl/4.face_culling/shaders/face_culling.vs +++ b/advanced_opengl/4.face_culling/shaders/face_culling.vs @@ -11,6 +11,6 @@ out vec2 tex_coords; void main(void) { - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); tex_coords = atex_coords; } diff --git a/advanced_opengl/5.framebuffers/build.sh b/advanced_opengl/5.framebuffers/build.sh index 58a1162..cb55ebf 100755 --- a/advanced_opengl/5.framebuffers/build.sh +++ b/advanced_opengl/5.framebuffers/build.sh @@ -2,4 +2,4 @@ . ../../config TARGET='framebuffers' set -x -gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS && ./$TARGET +gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS diff --git a/advanced_opengl/5.framebuffers/framebuffers b/advanced_opengl/5.framebuffers/framebuffers Binary files differindex 4b2c4c5..a1f7170 100755 --- a/advanced_opengl/5.framebuffers/framebuffers +++ b/advanced_opengl/5.framebuffers/framebuffers diff --git a/advanced_opengl/5.framebuffers/shaders/cube.vs b/advanced_opengl/5.framebuffers/shaders/cube.vs index 3c11932..aea5c2c 100644 --- a/advanced_opengl/5.framebuffers/shaders/cube.vs +++ b/advanced_opengl/5.framebuffers/shaders/cube.vs @@ -12,6 +12,6 @@ out vec2 tex_coords; void main(void) { - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); tex_coords = atex_coords; } diff --git a/advanced_opengl/5.framebuffers/shaders/screen.fs b/advanced_opengl/5.framebuffers/shaders/screen.fs index 8f0b2da..183d490 100644 --- a/advanced_opengl/5.framebuffers/shaders/screen.fs +++ b/advanced_opengl/5.framebuffers/shaders/screen.fs @@ -9,7 +9,7 @@ uniform sampler2D texture1; vec4 inversion() { - vec4 result = vec4(1.0f-vec3(texture(texture1, tex_coords)), 1.0f); + vec4 result = vec4(1.0-vec3(texture(texture1, tex_coords)), 1.0); return(result); } @@ -17,8 +17,8 @@ vec4 grayscale_average() { vec4 tex_color = texture(texture1, tex_coords); - float average = (tex_color.r+tex_color.g+tex_color.b)/3.0f; - vec4 result = vec4(average, average, average, 1.0f); + float average = (tex_color.r+tex_color.g+tex_color.b)/3.0; + vec4 result = vec4(average, average, average, 1.0); return(result); } @@ -26,25 +26,25 @@ vec4 grayscale_weights() { vec4 tex_color = texture(texture1, tex_coords); - float average = 0.2126*tex_color.r+0.7152*tex_color.g+0.0722f*tex_color.b; - vec4 result = vec4(average, average, average, 1.0f); + float average = 0.2126*tex_color.r+0.7152*tex_color.g+0.0722*tex_color.b; + vec4 result = vec4(average, average, average, 1.0); return(result); } -const float offset = 1.0f/300.0f; +const float offset = 1.0/300.0; vec4 kernel_effect(float[9] kernel) { vec2 offsets[9] = vec2[]( vec2(-offset, offset), /* top-left */ - vec2(0.0f, offset), /* top-center */ + vec2(0.0, offset), /* top-center */ vec2(offset, offset), /* top-right */ - vec2(-offset, 0.0f), /* center-left */ - vec2(0.0f, 0.0f), /* center-center */ - vec2(offset, 0.0f), /* center-right */ + vec2(-offset, 0.0), /* center-left */ + vec2(0.0, 0.0), /* center-center */ + vec2(offset, 0.0), /* center-right */ vec2(-offset, -offset), /* bottom-left */ - vec2(0.0f, -offset), /* bottom-center */ + vec2(0.0, -offset), /* bottom-center */ vec2(offset, -offset) /* bottom-right */ ); @@ -57,11 +57,11 @@ kernel_effect(float[9] kernel) vec3(texture(texture1, tex_coords+offsets[offset_index])); } - vec3 color = vec3(0.0f); + vec3 color = vec3(0.0); for (int i = 0; i < 9; ++i) color += sample_texture[i]*kernel[i]; - return(vec4(color, 1.0f)); + return(vec4(color, 1.0)); } void @@ -74,46 +74,46 @@ main(void) ); float gaussian_blur_kernel[9] = float[]( - 1.0f/16.0f, 2.0f/16.0f, 1.0f/16.0f, - 2.0f/16.0f, 4.0f/16.0f, 2.0f/16.0f, - 1.0f/16.0f, 2.0f/16.0f, 1.0f/16.0f + 1.0/16.0, 2.0/16.0, 1.0/16.0, + 2.0/16.0, 4.0/16.0, 2.0/16.0, + 1.0/16.0, 2.0/16.0, 1.0/16.0 ); float box_blur_kernel[9] = float[]( - 1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f, - 1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f, - 1.0f/9.0f, 1.0f/9.0f, 1.0f/9.0f + 1.0/9.0, 1.0/9.0, 1.0/9.0, + 1.0/9.0, 1.0/9.0, 1.0/9.0, + 1.0/9.0, 1.0/9.0, 1.0/9.0 ); float edge_detection_kernel[9] = float[]( - 1.0f, 1.0f, 1.0f, - 1.0f, -8.0f, 1.0f, - 1.0f, 1.0f, 1.0f + 1.0, 1.0, 1.0, + 1.0, -8.0, 1.0, + 1.0, 1.0, 1.0 ); float sharpening_kernel[9] = float[]( - 0.0f, -1.0f, 0.0f, - -1.0f, 5.0f, -1.0f, - 0.0f, -1.0f, 0.0f + 0.0, -1.0, 0.0, + -1.0, 5.0, -1.0, + 0.0, -1.0, 0.0 ); float sobel_kernel_vertical[9] = float[]( - -1.0f, 0.0f, 1.0f, - -2.0f, 0.0f, 2.0f, - -1.0f, 0.0f, 0.0f + -1.0, 0.0, 1.0, + -2.0, 0.0, 2.0, + -1.0, 0.0, 0.0 ); float sobel_kernel_horizontal[9] = float[]( - -1.0f, -2.0f, -1.0f, - 0.0f, 0.0f, 0.0f, - 1.0f, 2.0f, 1.0f + -1.0, -2.0, -1.0, + 0.0, 0.0, 0.0, + 1.0, 2.0, 1.0 ); float funny_kernel[9] = float[]( - 1.0f, 1.0f, 1.0f, - 1.0f, -4.0f, 1.0f, - 1.0f, 1.0f, 1.0f + 1.0, 1.0, 1.0, + 1.0, -4.0, 1.0, + 1.0, 1.0, 1.0 ); frag_color = kernel_effect(funny_kernel); - frag_color *= vec4(0.76f, 0.47f, 0.84f, 1.0f); + frag_color *= vec4(0.76, 0.47, 0.84, 1.0); } diff --git a/advanced_opengl/5.framebuffers/shaders/screen.vs b/advanced_opengl/5.framebuffers/shaders/screen.vs index 157dde2..8fdea55 100644 --- a/advanced_opengl/5.framebuffers/shaders/screen.vs +++ b/advanced_opengl/5.framebuffers/shaders/screen.vs @@ -9,6 +9,6 @@ uniform mat4 model; void main(void) { - gl_Position = model*vec4(apos, 1.0f); + gl_Position = model*vec4(apos, 1.0); tex_coords = atex_coords; } diff --git a/advanced_opengl/6.cubemaps/build.sh b/advanced_opengl/6.cubemaps/build.sh index bf1d66c..9bda0bc 100755 --- a/advanced_opengl/6.cubemaps/build.sh +++ b/advanced_opengl/6.cubemaps/build.sh @@ -2,4 +2,4 @@ . ../../config TARGET='cubemaps' set -x -gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS && ./$TARGET +gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS diff --git a/advanced_opengl/6.cubemaps/cubemaps b/advanced_opengl/6.cubemaps/cubemaps Binary files differindex 661279d..bdf54f5 100755 --- a/advanced_opengl/6.cubemaps/cubemaps +++ b/advanced_opengl/6.cubemaps/cubemaps diff --git a/advanced_opengl/6.cubemaps/shaders/cube.vs b/advanced_opengl/6.cubemaps/shaders/cube.vs index 3c11932..aea5c2c 100644 --- a/advanced_opengl/6.cubemaps/shaders/cube.vs +++ b/advanced_opengl/6.cubemaps/shaders/cube.vs @@ -12,6 +12,6 @@ out vec2 tex_coords; void main(void) { - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); tex_coords = atex_coords; } diff --git a/advanced_opengl/6.cubemaps/shaders/reflection.vs b/advanced_opengl/6.cubemaps/shaders/reflection.vs index 34ad142..c9a0698 100644 --- a/advanced_opengl/6.cubemaps/shaders/reflection.vs +++ b/advanced_opengl/6.cubemaps/shaders/reflection.vs @@ -13,7 +13,7 @@ uniform mat4 projection; void main(void) { - pos = vec3(model*vec4(apos, 1.0f)); + pos = vec3(model*vec4(apos, 1.0)); normal = mat3(transpose(inverse(model)))*anormal; - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); } diff --git a/advanced_opengl/6.cubemaps/shaders/refraction.fs b/advanced_opengl/6.cubemaps/shaders/refraction.fs index 8a8a8c5..ef8c415 100644 --- a/advanced_opengl/6.cubemaps/shaders/refraction.fs +++ b/advanced_opengl/6.cubemaps/shaders/refraction.fs @@ -11,7 +11,7 @@ uniform samplerCube skybox; void main(void) { - float ratio = 1.0f/1.52f; + float ratio = 1.0/1.52; vec3 i = pos-camera_pos; vec3 r = refract(i, normalize(normal), ratio); frag_color = texture(skybox, r); diff --git a/advanced_opengl/6.cubemaps/shaders/refraction.vs b/advanced_opengl/6.cubemaps/shaders/refraction.vs index 34ad142..c9a0698 100644 --- a/advanced_opengl/6.cubemaps/shaders/refraction.vs +++ b/advanced_opengl/6.cubemaps/shaders/refraction.vs @@ -13,7 +13,7 @@ uniform mat4 projection; void main(void) { - pos = vec3(model*vec4(apos, 1.0f)); + pos = vec3(model*vec4(apos, 1.0)); normal = mat3(transpose(inverse(model)))*anormal; - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); } diff --git a/advanced_opengl/6.cubemaps/shaders/skybox.vs b/advanced_opengl/6.cubemaps/shaders/skybox.vs index 4259dc1..c790148 100644 --- a/advanced_opengl/6.cubemaps/shaders/skybox.vs +++ b/advanced_opengl/6.cubemaps/shaders/skybox.vs @@ -11,6 +11,6 @@ void main(void) { tex_coords = apos; - vec4 pos = projection*view*vec4(apos, 1.0f); + vec4 pos = projection*view*vec4(apos, 1.0); gl_Position = pos.xyww; } diff --git a/advanced_opengl/7.uniform_buffer/build.sh b/advanced_opengl/7.uniform_buffer/build.sh index d5620a3..54642df 100755 --- a/advanced_opengl/7.uniform_buffer/build.sh +++ b/advanced_opengl/7.uniform_buffer/build.sh @@ -2,4 +2,4 @@ . ../../config TARGET='uniform_buffer' set -x -gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS && ./$TARGET +gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS diff --git a/advanced_opengl/7.uniform_buffer/shaders/color_cube.fs b/advanced_opengl/7.uniform_buffer/shaders/color_cube.fs index 8aa5add..fbbafbf 100644 --- a/advanced_opengl/7.uniform_buffer/shaders/color_cube.fs +++ b/advanced_opengl/7.uniform_buffer/shaders/color_cube.fs @@ -5,5 +5,5 @@ out vec4 frag_color; void main(void) { - frag_color = vec4(1.0f, 0.0f, 0.0f, 1.0f); + frag_color = vec4(1.0, 0.0, 0.0, 1.0); } diff --git a/advanced_opengl/7.uniform_buffer/shaders/color_cube.vs b/advanced_opengl/7.uniform_buffer/shaders/color_cube.vs index 630242d..17a3448 100644 --- a/advanced_opengl/7.uniform_buffer/shaders/color_cube.vs +++ b/advanced_opengl/7.uniform_buffer/shaders/color_cube.vs @@ -12,5 +12,5 @@ uniform mat4 model; void main(void) { - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); } diff --git a/advanced_opengl/7.uniform_buffer/shaders/cube.vs b/advanced_opengl/7.uniform_buffer/shaders/cube.vs index cb0b7bf..054164d 100644 --- a/advanced_opengl/7.uniform_buffer/shaders/cube.vs +++ b/advanced_opengl/7.uniform_buffer/shaders/cube.vs @@ -16,6 +16,6 @@ out vec2 tex_coords; void main(void) { - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); tex_coords = atex_coords; } diff --git a/advanced_opengl/7.uniform_buffer/shaders/skybox.vs b/advanced_opengl/7.uniform_buffer/shaders/skybox.vs index 36a07ed..03b2171 100644 --- a/advanced_opengl/7.uniform_buffer/shaders/skybox.vs +++ b/advanced_opengl/7.uniform_buffer/shaders/skybox.vs @@ -14,6 +14,6 @@ void main(void) { tex_coords = apos; - vec4 pos = projection*view*vec4(apos, 1.0f); + vec4 pos = projection*view*vec4(apos, 1.0); gl_Position = pos.xyww; } diff --git a/advanced_opengl/7.uniform_buffer/uniform_buffer b/advanced_opengl/7.uniform_buffer/uniform_buffer Binary files differindex e2b3e42..57aa64d 100755 --- a/advanced_opengl/7.uniform_buffer/uniform_buffer +++ b/advanced_opengl/7.uniform_buffer/uniform_buffer diff --git a/advanced_opengl/8.geometry_shader/build.sh b/advanced_opengl/8.geometry_shader/build.sh index fc81331..f3339cb 100755 --- a/advanced_opengl/8.geometry_shader/build.sh +++ b/advanced_opengl/8.geometry_shader/build.sh @@ -2,4 +2,4 @@ . ../../config TARGET='geometry_shader' set -x -gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS && ./$TARGET +gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS diff --git a/advanced_opengl/8.geometry_shader/geometry_shader b/advanced_opengl/8.geometry_shader/geometry_shader Binary files differindex f245068..77fcab4 100755 --- a/advanced_opengl/8.geometry_shader/geometry_shader +++ b/advanced_opengl/8.geometry_shader/geometry_shader diff --git a/advanced_opengl/8.geometry_shader/shaders/base.fs b/advanced_opengl/8.geometry_shader/shaders/base.fs index 283d885..73897db 100644 --- a/advanced_opengl/8.geometry_shader/shaders/base.fs +++ b/advanced_opengl/8.geometry_shader/shaders/base.fs @@ -7,5 +7,5 @@ out vec4 frag_color; void main(void) { - frag_color = vec4(fcolor, 1.0f); + frag_color = vec4(fcolor, 1.0); } diff --git a/advanced_opengl/8.geometry_shader/shaders/base.vs b/advanced_opengl/8.geometry_shader/shaders/base.vs index 2924e6c..9ad9e7a 100644 --- a/advanced_opengl/8.geometry_shader/shaders/base.vs +++ b/advanced_opengl/8.geometry_shader/shaders/base.vs @@ -10,5 +10,5 @@ void main(void) { vs_out.color = acolor; - gl_Position = vec4(apos, 0.0f, 1.0f); + gl_Position = vec4(apos, 0.0, 1.0); } diff --git a/advanced_opengl/8.geometry_shader/shaders/basic.vs b/advanced_opengl/8.geometry_shader/shaders/basic.vs index 9a630b6..77e8b70 100644 --- a/advanced_opengl/8.geometry_shader/shaders/basic.vs +++ b/advanced_opengl/8.geometry_shader/shaders/basic.vs @@ -11,6 +11,6 @@ uniform mat4 projection; void main(void) { - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); tex_coords = atex_coords; } diff --git a/advanced_opengl/8.geometry_shader/shaders/explosion.gs b/advanced_opengl/8.geometry_shader/shaders/explosion.gs index 1883ad2..3498878 100644 --- a/advanced_opengl/8.geometry_shader/shaders/explosion.gs +++ b/advanced_opengl/8.geometry_shader/shaders/explosion.gs @@ -21,9 +21,9 @@ get_normal(void) vec4 explode(vec4 position, vec3 normal) { - float magnitude = 0.2f; - vec3 direction = normal*magnitude*((sin(time)+1.0f)/2.0f); - vec4 result = position+vec4(direction, 0.0f); + float magnitude = 0.2; + vec3 direction = normal*magnitude*((sin(time)+1.0)/2.0); + vec4 result = position+vec4(direction, 0.0); return(result); } diff --git a/advanced_opengl/8.geometry_shader/shaders/explosion.vs b/advanced_opengl/8.geometry_shader/shaders/explosion.vs index 5925b8f..46abd27 100644 --- a/advanced_opengl/8.geometry_shader/shaders/explosion.vs +++ b/advanced_opengl/8.geometry_shader/shaders/explosion.vs @@ -14,5 +14,5 @@ void main(void) { vs_out.gtex_coords = atex_coords; - gl_Position = projection*view*model*vec4(apos, 1.0f); + gl_Position = projection*view*model*vec4(apos, 1.0); } diff --git a/advanced_opengl/9.instancing/build.sh b/advanced_opengl/9.instancing/build.sh index 40b314b..ebb6a01 100755 --- a/advanced_opengl/9.instancing/build.sh +++ b/advanced_opengl/9.instancing/build.sh @@ -1,5 +1,6 @@ #!/bin/sh . ../../config +CFLAGS='-O2' TARGET='instancing' set -x -gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS && ./$TARGET +gcc -o $TARGET $CFLAGS $INCLUDE $LFLAGS $TARGET.c $LIBS diff --git a/advanced_opengl/9.instancing/instancing b/advanced_opengl/9.instancing/instancing Binary files differindex 08b099d..c722860 100755 --- a/advanced_opengl/9.instancing/instancing +++ b/advanced_opengl/9.instancing/instancing diff --git a/advanced_opengl/9.instancing/instancing.c b/advanced_opengl/9.instancing/instancing.c index 90647fb..f24a258 100644 --- a/advanced_opengl/9.instancing/instancing.c +++ b/advanced_opengl/9.instancing/instancing.c @@ -322,9 +322,10 @@ main(void) } break; case 2: { - camera_pos = update_camera_orbital(global_input, - camera_pos, v3f_zero(), - dt, camera_speed); + V3F camera_dv = get_dv_camera_orbital(&global_input, + camera_pos, v3f_zero(), + dt, camera_speed); + camera_pos = v3f_add(camera_pos, camera_dv); projection = perspective(fovx, (F32)global_width/(F32)global_height, near, far); V3F world_up = v3f(0.0f, 1.0f, 0.0f); @@ -350,9 +351,10 @@ main(void) } break; case 3: { - camera_pos = update_camera_orbital(global_input, - camera_pos, v3f_zero(), - dt, camera_speed); + V3F camera_dv = get_dv_camera_orbital(&global_input, + camera_pos, v3f_zero(), + dt, camera_speed); + camera_pos = v3f_add(camera_pos, camera_dv); projection = perspective(fovx, (F32)global_width/(F32)global_height, near, far); V3F world_up = v3f(0.0f, 1.0f, 0.0f); diff --git a/advanced_opengl/9.instancing/shaders/instanced_arrays.vs b/advanced_opengl/9.instancing/shaders/instanced_arrays.vs index e7bbeb7..4ea0fe4 100644 --- a/advanced_opengl/9.instancing/shaders/instanced_arrays.vs +++ b/advanced_opengl/9.instancing/shaders/instanced_arrays.vs @@ -9,6 +9,6 @@ void main(void) { color = acolor; - vec2 pos = apos*(gl_InstanceID/100.0f); - gl_Position = vec4(pos+aoffset, 0.0f, 1.0f); + vec2 pos = apos*(gl_InstanceID/100.0); + gl_Position = vec4(pos+aoffset, 0.0, 1.0); } diff --git a/advanced_opengl/9.instancing/shaders/instanced_mat4.vs b/advanced_opengl/9.instancing/shaders/instanced_mat4.vs index 5ab3a81..c65be90 100644 --- a/advanced_opengl/9.instancing/shaders/instanced_mat4.vs +++ b/advanced_opengl/9.instancing/shaders/instanced_mat4.vs @@ -12,5 +12,5 @@ void main(void) { tex_coords = atex_coords; - gl_Position = projection*view*instance_matrix*vec4(apos, 1.0f); + gl_Position = projection*view*instance_matrix*vec4(apos, 1.0); } diff --git a/advanced_opengl/build.sh b/advanced_opengl/build.sh new file mode 100755 index 0000000..4829c7d --- /dev/null +++ b/advanced_opengl/build.sh @@ -0,0 +1,9 @@ +#!/bin/sh +targets=$(ls) +for target in $targets ; do + if [ $target != 'build.sh' ] ; then + cd $target + ./build.sh + cd .. + fi +done |