aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2015-09-02 01:06:55 +0200
committerraysan5 <raysan5@gmail.com>2015-09-02 01:06:55 +0200
commit9a578c59624f671418a1f3b046b6b09aa4233909 (patch)
tree9394a7458d11ea59f62fdf5b50d0669a5df425fd
parent0a345a6128de40229638c66ceb37728ae7e5f0c5 (diff)
downloadraylib-9a578c59624f671418a1f3b046b6b09aa4233909.tar.gz
raylib-9a578c59624f671418a1f3b046b6b09aa4233909.zip
Added shaders examples resources
-rw-r--r--examples/makefile70
-rw-r--r--examples/resources/shaders/base.vs14
-rw-r--r--examples/resources/shaders/bloom.fs42
-rw-r--r--examples/resources/shaders/grayscale.fs17
-rw-r--r--examples/resources/shaders/shapes_base.vs (renamed from examples/resources/shaders/custom.vs)7
-rw-r--r--examples/resources/shaders/shapes_grayscale.fs (renamed from examples/resources/shaders/custom.fs)11
-rw-r--r--examples/resources/shaders/swirl.fs41
7 files changed, 179 insertions, 23 deletions
diff --git a/examples/makefile b/examples/makefile
index 1f3ddb7f..15a4bd0a 100644
--- a/examples/makefile
+++ b/examples/makefile
@@ -154,9 +154,14 @@ EXAMPLES = \
core_input_keys \
core_input_mouse \
core_mouse_wheel \
+ core_input_gamepad \
core_random_values \
core_color_select \
+ core_drop_files \
core_3d_mode \
+ core_3d_picking \
+ core_3d_camera_free \
+ core_3d_camera_first_person \
shapes_logo_raylib \
shapes_basic_shapes \
shapes_colors_palette \
@@ -165,16 +170,23 @@ EXAMPLES = \
textures_image_loading \
textures_rectangle \
textures_srcrec_dstrec \
+ textures_to_image \
+ textures_raw_data \
+ textures_formats_loading \
+ textures_particles_trail_blending \
text_sprite_fonts \
text_rbmf_fonts \
text_format_text \
text_font_select \
models_geometric_shapes \
- models_planes \
models_billboard \
models_obj_loading \
models_heightmap \
models_cubicmap \
+ shaders_model_shader \
+ shaders_shapes_textures \
+ shaders_custom_uniform \
+ shaders_postprocessing \
audio_sound_loading \
audio_music_stream \
fix_dylib \
@@ -201,16 +213,26 @@ core_input_keys: core_input_keys.c
core_input_mouse: core_input_mouse.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
-ifeq ($(PLATFORM),PLATFORM_DESKTOP)
# compile [core] example - gamepad input
core_input_gamepad: core_input_gamepad.c
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+else
+ @echo core_input_gamepad: Only supported on desktop platform
endif
# compile [core] example - mouse wheel
core_mouse_wheel: core_mouse_wheel.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+# compile [core] example - drop files
+core_drop_files: core_drop_files.c
+ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+else
+ @echo core_drop_files: Only supported on desktop platform
+endif
+
# compile [core] example - generate random values
core_random_values: core_random_values.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
@@ -223,6 +245,18 @@ core_color_select: core_color_select.c
core_3d_mode: core_3d_mode.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+# compile [core] example - 3d picking
+core_3d_picking: core_3d_picking.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
+# compile [core] example - 3d camera free
+core_3d_camera_free: core_3d_camera_free.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
+# compile [core] example - 3d camera first person
+core_3d_camera_first_person: core_3d_camera_first_person.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
# compile [shapes] example - raylib logo (with basic shapes)
shapes_logo_raylib: shapes_logo_raylib.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
@@ -255,6 +289,22 @@ textures_rectangle: textures_rectangle.c
textures_srcrec_dstrec: textures_srcrec_dstrec.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+# compile [textures] example - texture to image
+textures_to_image: textures_to_image.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
+# compile [textures] example - texture raw data
+textures_raw_data: textures_raw_data.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
+# compile [textures] example - texture formats loading
+textures_formats_loading: textures_formats_loading.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
+# compile [textures] example - texture particles trail blending
+textures_particles_trail_blending: textures_particles_trail_blending.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
# compile [text] example - sprite fonts loading
text_sprite_fonts: text_sprite_fonts.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
@@ -295,6 +345,22 @@ models_heightmap: models_heightmap.c
models_cubicmap: models_cubicmap.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+# compile [shaders] example - model shader
+shaders_model_shader: shaders_model_shader.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
+# compile [shaders] example - shapes texture shader
+shaders_shapes_textures: shaders_shapes_textures.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
+# compile [shaders] example - custom uniform in shader
+shaders_custom_uniform: shaders_custom_uniform.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
+# compile [shaders] example - postprocessing shader
+shaders_postprocessing: shaders_postprocessing.c
+ $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
+
# compile [audio] example - sound loading and playing (WAV and OGG)
audio_sound_loading: audio_sound_loading.c
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS)
diff --git a/examples/resources/shaders/base.vs b/examples/resources/shaders/base.vs
index 78e543b7..59eae0a0 100644
--- a/examples/resources/shaders/base.vs
+++ b/examples/resources/shaders/base.vs
@@ -1,19 +1,19 @@
-#version 110
+#version 330
-attribute vec3 vertexPosition;
-attribute vec2 vertexTexCoord;
-attribute vec4 vertexColor;
+in vec3 vertexPosition;
+in vec2 vertexTexCoord;
+in vec3 vertexNormal;
+
+out vec2 fragTexCoord;
uniform mat4 projectionMatrix;
uniform mat4 modelviewMatrix;
-varying vec2 fragTexCoord;
-varying vec4 fragColor;
+// NOTE: Add here your custom variables
void main()
{
fragTexCoord = vertexTexCoord;
- fragColor = vertexColor;
gl_Position = projectionMatrix*modelviewMatrix*vec4(vertexPosition, 1.0);
} \ No newline at end of file
diff --git a/examples/resources/shaders/bloom.fs b/examples/resources/shaders/bloom.fs
new file mode 100644
index 00000000..f9cebe18
--- /dev/null
+++ b/examples/resources/shaders/bloom.fs
@@ -0,0 +1,42 @@
+#version 330
+
+in vec2 fragTexCoord;
+
+out vec4 fragColor;
+
+uniform sampler2D texture0;
+uniform vec4 tintColor;
+
+// NOTE: Add here your custom variables
+
+void main()
+{
+ vec4 sum = vec4(0);
+ vec4 tc = vec4(0);
+
+ for (int i = -4; i < 4; i++)
+ {
+ for (int j = -3; j < 3; j++)
+ {
+ sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004) * 0.25;
+ }
+ }
+
+ if (texture2D(texture0, fragTexCoord).r < 0.3)
+ {
+ tc = sum*sum*0.012 + texture2D(texture0, fragTexCoord);
+ }
+ else
+ {
+ if (texture2D(texture0, fragTexCoord).r < 0.5)
+ {
+ tc = sum*sum*0.009 + texture2D(texture0, fragTexCoord);
+ }
+ else
+ {
+ tc = sum*sum*0.0075 + texture2D(texture0, fragTexCoord);
+ }
+ }
+
+ fragColor = tc;
+} \ No newline at end of file
diff --git a/examples/resources/shaders/grayscale.fs b/examples/resources/shaders/grayscale.fs
index 1b778871..38337e00 100644
--- a/examples/resources/shaders/grayscale.fs
+++ b/examples/resources/shaders/grayscale.fs
@@ -1,15 +1,20 @@
-#version 110
+#version 330
+
+in vec2 fragTexCoord;
+
+out vec4 fragColor;
uniform sampler2D texture0;
-varying vec2 fragTexCoord;
-varying vec4 fragColor;
+uniform vec4 tintColor;
+
+// NOTE: Add here your custom variables
void main()
{
- vec4 base = texture2D(texture0, fragTexCoord)*fragColor;
-
+ vec4 base = texture2D(texture0, fragTexCoord)*tintColor;
+
// Convert to grayscale using NTSC conversion weights
float gray = dot(base.rgb, vec3(0.299, 0.587, 0.114));
- gl_FragColor = vec4(gray, gray, gray, base.a);
+ fragColor = vec4(gray, gray, gray, tintColor.a);
} \ No newline at end of file
diff --git a/examples/resources/shaders/custom.vs b/examples/resources/shaders/shapes_base.vs
index 629c954d..78e543b7 100644
--- a/examples/resources/shaders/custom.vs
+++ b/examples/resources/shaders/shapes_base.vs
@@ -1,16 +1,19 @@
-#version 330
+#version 110
attribute vec3 vertexPosition;
attribute vec2 vertexTexCoord;
-attribute vec3 vertexNormal;
+attribute vec4 vertexColor;
uniform mat4 projectionMatrix;
uniform mat4 modelviewMatrix;
varying vec2 fragTexCoord;
+varying vec4 fragColor;
void main()
{
fragTexCoord = vertexTexCoord;
+ fragColor = vertexColor;
+
gl_Position = projectionMatrix*modelviewMatrix*vec4(vertexPosition, 1.0);
} \ No newline at end of file
diff --git a/examples/resources/shaders/custom.fs b/examples/resources/shaders/shapes_grayscale.fs
index 1e53933b..1b778871 100644
--- a/examples/resources/shaders/custom.fs
+++ b/examples/resources/shaders/shapes_grayscale.fs
@@ -1,16 +1,15 @@
-#version 330
+#version 110
uniform sampler2D texture0;
varying vec2 fragTexCoord;
-
-uniform vec4 tintColor;
+varying vec4 fragColor;
void main()
{
- vec4 base = texture2D(texture0, fragTexCoord)*tintColor;
-
+ vec4 base = texture2D(texture0, fragTexCoord)*fragColor;
+
// Convert to grayscale using NTSC conversion weights
float gray = dot(base.rgb, vec3(0.299, 0.587, 0.114));
- gl_FragColor = vec4(gray, gray, gray, tintColor.a);
+ gl_FragColor = vec4(gray, gray, gray, base.a);
} \ No newline at end of file
diff --git a/examples/resources/shaders/swirl.fs b/examples/resources/shaders/swirl.fs
new file mode 100644
index 00000000..ba26cc05
--- /dev/null
+++ b/examples/resources/shaders/swirl.fs
@@ -0,0 +1,41 @@
+#version 330
+
+in vec2 fragTexCoord;
+
+out vec4 fragColor;
+
+uniform sampler2D texture0;
+uniform vec4 tintColor;
+
+// NOTE: Add here your custom variables
+
+const float renderWidth = 800; // HARDCODED for example!
+const float renderHeight = 480; // Use uniforms instead...
+
+float radius = 250.0;
+float angle = 0.8;
+
+uniform vec2 center = vec2(200, 200);
+
+void main (void)
+{
+ vec2 texSize = vec2(renderWidth, renderHeight);
+ vec2 tc = fragTexCoord*texSize;
+ tc -= center;
+ float dist = length(tc);
+
+ if (dist < radius)
+ {
+ float percent = (radius - dist)/radius;
+ float theta = percent*percent*angle*8.0;
+ float s = sin(theta);
+ float c = cos(theta);
+
+ tc = vec2(dot(tc, vec2(c, -s)), dot(tc, vec2(s, c)));
+ }
+
+ tc += center;
+ vec3 color = texture2D(texture0, tc/texSize).rgb;
+
+ fragColor = vec4(color, 1.0);;
+} \ No newline at end of file