summaryrefslogtreecommitdiff
path: root/advanced_opengl
diff options
context:
space:
mode:
Diffstat (limited to 'advanced_opengl')
-rwxr-xr-xadvanced_opengl/1.depth/build.sh2
-rwxr-xr-xadvanced_opengl/1.depth/depthbin1282576 -> 1282544 bytes
-rw-r--r--advanced_opengl/1.depth/shaders/depth.fs10
-rw-r--r--advanced_opengl/1.depth/shaders/depth.vs2
-rwxr-xr-xadvanced_opengl/10.antialiasing/anti_aliasing_msaabin1277808 -> 1277808 bytes
-rw-r--r--advanced_opengl/10.antialiasing/anti_aliasing_msaa.c6
-rwxr-xr-xadvanced_opengl/10.antialiasing/anti_aliasing_offscreenbin1278840 -> 1278840 bytes
-rw-r--r--advanced_opengl/10.antialiasing/anti_aliasing_offscreen.c6
-rw-r--r--advanced_opengl/10.antialiasing/shaders/color.fs2
-rw-r--r--advanced_opengl/10.antialiasing/shaders/screen.fs73
-rw-r--r--advanced_opengl/10.antialiasing/shaders/screen.vs2
-rwxr-xr-xadvanced_opengl/2.stencil/build.sh2
-rw-r--r--advanced_opengl/2.stencil/shaders/outline.fs2
-rw-r--r--advanced_opengl/2.stencil/shaders/stencil.vs2
-rwxr-xr-xadvanced_opengl/2.stencil/stencilbin1282960 -> 1282928 bytes
-rwxr-xr-xadvanced_opengl/3.blending/blendingbin1287968 -> 1287936 bytes
-rwxr-xr-xadvanced_opengl/3.blending/build.sh2
-rw-r--r--advanced_opengl/3.blending/shaders/blending.vs2
-rwxr-xr-xadvanced_opengl/4.face_culling/build.sh2
-rwxr-xr-xadvanced_opengl/4.face_culling/face_cullingbin1283048 -> 1283016 bytes
-rw-r--r--advanced_opengl/4.face_culling/shaders/face_culling.vs2
-rwxr-xr-xadvanced_opengl/5.framebuffers/build.sh2
-rwxr-xr-xadvanced_opengl/5.framebuffers/framebuffersbin1288800 -> 1288768 bytes
-rw-r--r--advanced_opengl/5.framebuffers/shaders/cube.vs2
-rw-r--r--advanced_opengl/5.framebuffers/shaders/screen.fs70
-rw-r--r--advanced_opengl/5.framebuffers/shaders/screen.vs2
-rwxr-xr-xadvanced_opengl/6.cubemaps/build.sh2
-rwxr-xr-xadvanced_opengl/6.cubemaps/cubemapsbin1288192 -> 1288160 bytes
-rw-r--r--advanced_opengl/6.cubemaps/shaders/cube.vs2
-rw-r--r--advanced_opengl/6.cubemaps/shaders/reflection.vs4
-rw-r--r--advanced_opengl/6.cubemaps/shaders/refraction.fs2
-rw-r--r--advanced_opengl/6.cubemaps/shaders/refraction.vs4
-rw-r--r--advanced_opengl/6.cubemaps/shaders/skybox.vs2
-rwxr-xr-xadvanced_opengl/7.uniform_buffer/build.sh2
-rw-r--r--advanced_opengl/7.uniform_buffer/shaders/color_cube.fs2
-rw-r--r--advanced_opengl/7.uniform_buffer/shaders/color_cube.vs2
-rw-r--r--advanced_opengl/7.uniform_buffer/shaders/cube.vs2
-rw-r--r--advanced_opengl/7.uniform_buffer/shaders/skybox.vs2
-rwxr-xr-xadvanced_opengl/7.uniform_buffer/uniform_bufferbin1288480 -> 1288448 bytes
-rwxr-xr-xadvanced_opengl/8.geometry_shader/build.sh2
-rwxr-xr-xadvanced_opengl/8.geometry_shader/geometry_shaderbin1282800 -> 1282768 bytes
-rw-r--r--advanced_opengl/8.geometry_shader/shaders/base.fs2
-rw-r--r--advanced_opengl/8.geometry_shader/shaders/base.vs2
-rw-r--r--advanced_opengl/8.geometry_shader/shaders/basic.vs2
-rw-r--r--advanced_opengl/8.geometry_shader/shaders/explosion.gs6
-rw-r--r--advanced_opengl/8.geometry_shader/shaders/explosion.vs2
-rwxr-xr-xadvanced_opengl/9.instancing/build.sh3
-rwxr-xr-xadvanced_opengl/9.instancing/instancingbin1284168 -> 1065104 bytes
-rw-r--r--advanced_opengl/9.instancing/instancing.c14
-rw-r--r--advanced_opengl/9.instancing/shaders/instanced_arrays.vs4
-rw-r--r--advanced_opengl/9.instancing/shaders/instanced_mat4.vs2
-rwxr-xr-xadvanced_opengl/build.sh9
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
index db67630..68f04d6 100755
--- a/advanced_opengl/1.depth/depth
+++ b/advanced_opengl/1.depth/depth
Binary files differ
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
index d0afd7e..36811f7 100755
--- a/advanced_opengl/10.antialiasing/anti_aliasing_msaa
+++ b/advanced_opengl/10.antialiasing/anti_aliasing_msaa
Binary files differ
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
index 72be7e2..c8a241c 100755
--- a/advanced_opengl/10.antialiasing/anti_aliasing_offscreen
+++ b/advanced_opengl/10.antialiasing/anti_aliasing_offscreen
Binary files differ
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
index ad0f48c..eb4eac5 100755
--- a/advanced_opengl/2.stencil/stencil
+++ b/advanced_opengl/2.stencil/stencil
Binary files differ
diff --git a/advanced_opengl/3.blending/blending b/advanced_opengl/3.blending/blending
index 063ce51..40fe12a 100755
--- a/advanced_opengl/3.blending/blending
+++ b/advanced_opengl/3.blending/blending
Binary files differ
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
index 62d75b4..eb6e3e9 100755
--- a/advanced_opengl/4.face_culling/face_culling
+++ b/advanced_opengl/4.face_culling/face_culling
Binary files differ
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
index 4b2c4c5..a1f7170 100755
--- a/advanced_opengl/5.framebuffers/framebuffers
+++ b/advanced_opengl/5.framebuffers/framebuffers
Binary files differ
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
index 661279d..bdf54f5 100755
--- a/advanced_opengl/6.cubemaps/cubemaps
+++ b/advanced_opengl/6.cubemaps/cubemaps
Binary files differ
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
index e2b3e42..57aa64d 100755
--- a/advanced_opengl/7.uniform_buffer/uniform_buffer
+++ b/advanced_opengl/7.uniform_buffer/uniform_buffer
Binary files differ
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
index f245068..77fcab4 100755
--- a/advanced_opengl/8.geometry_shader/geometry_shader
+++ b/advanced_opengl/8.geometry_shader/geometry_shader
Binary files differ
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
index 08b099d..c722860 100755
--- a/advanced_opengl/9.instancing/instancing
+++ b/advanced_opengl/9.instancing/instancing
Binary files differ
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