aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorRay <raysan5@gmail.com>2015-07-03 20:49:16 +0200
committerRay <raysan5@gmail.com>2015-07-03 20:49:16 +0200
commita59433e7a3b22d5ded7505689fb44f1927194077 (patch)
tree4e75d2a6213b0b799b3ea12c677986158905bff4 /examples
parentcae6f3c613794e5e02233aa1590eb1ea9a8239cd (diff)
parentcd08ae7b858b62b341aebc86a7a4e915447c9423 (diff)
downloadraylib-a59433e7a3b22d5ded7505689fb44f1927194077.tar.gz
raylib-a59433e7a3b22d5ded7505689fb44f1927194077.zip
Merge pull request #23 from raysan5/develop
Integrate develop branch
Diffstat (limited to 'examples')
-rw-r--r--examples/makefile21
-rw-r--r--examples/models_custom_shader.c86
-rw-r--r--examples/resources/shaders/base.vs19
-rw-r--r--examples/resources/shaders/custom.fs16
-rw-r--r--examples/resources/shaders/custom.vs16
-rw-r--r--examples/resources/shaders/grayscale.fs15
6 files changed, 162 insertions, 11 deletions
diff --git a/examples/makefile b/examples/makefile
index b4d7bfa3..9b0c9d4c 100644
--- a/examples/makefile
+++ b/examples/makefile
@@ -23,7 +23,7 @@
# define raylib platform to compile for
# possible platforms: PLATFORM_DESKTOP PLATFORM_RPI PLATFORM_WEB
-# WARNING: To compile examples to HTML5, they must be redesigned to use emscripten.h and emscripten_set_main_loop()
+# WARNING: To compile to HTML5, code must be redesigned to use emscripten.h and emscripten_set_main_loop()
PLATFORM ?= PLATFORM_DESKTOP
# determine PLATFORM_OS in case PLATFORM_DESKTOP selected
@@ -113,20 +113,20 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
ifeq ($(PLATFORM_OS),LINUX)
# libraries for Debian GNU/Linux desktop compiling
# requires the following packages:
- # libglfw3-dev libopenal-dev libglew-dev libegl1-mesa-dev
- LIBS = -lraylib -lglfw -lGLEW -lGL -lopenal
- endif
+ # libopenal-dev libglew-dev libegl1-mesa-dev
+ LIBS = -lraylib -lglfw3 -lGLEW -lGL -lopenal -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lm -pthread
+ else
ifeq ($(PLATFORM_OS),OSX)
- # libraries for OS X 10.9 desktop compiling
- # requires the following packages:
- # libglfw3-dev libopenal-dev libglew-dev libegl1-mesa-dev
- LIBS = -lraylib -lglfw -framework OpenGL -framework OpenAl -framework Cocoa
-
+ # libraries for OS X 10.9 desktop compiling
+ # requires the following packages:
+ # libglfw3-dev libopenal-dev libglew-dev libegl1-mesa-dev
+ LIBS = -lraylib -lglfw -framework OpenGL -framework OpenAl -framework Cocoa
else
# libraries for Windows desktop compiling
# NOTE: GLFW3 and OpenAL Soft libraries should be installed
LIBS = -lraylib -lglfw3 -lglew32 -lopengl32 -lopenal32 -lgdi32
endif
+ endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
# libraries for Raspberry Pi compiling
@@ -327,8 +327,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
rm -f *.o
else
ifeq ($(PLATFORM_OS),LINUX)
- find . -type f -executable -delete
- rm -f *.o
+ find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -f
else
del *.o *.exe
endif
diff --git a/examples/models_custom_shader.c b/examples/models_custom_shader.c
new file mode 100644
index 00000000..5430ed65
--- /dev/null
+++ b/examples/models_custom_shader.c
@@ -0,0 +1,86 @@
+/*******************************************************************************************
+*
+* raylib [models] example - Load and draw a 3d model (OBJ)
+*
+* This example has been created using raylib 1.0 (www.raylib.com)
+* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
+*
+* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com)
+*
+********************************************************************************************/
+
+#include "raylib.h"
+
+int main()
+{
+ // Initialization
+ //--------------------------------------------------------------------------------------
+ int screenWidth = 1280;
+ int screenHeight = 720;
+
+ InitWindow(screenWidth, screenHeight, "raylib [models] example - custom shader");
+
+ // Define the camera to look into our 3d world
+ Camera camera = {{ 10.0, 8.0, 10.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 1.0, 0.0 }};
+
+ Texture2D texture = LoadTexture("resources/catsham.png"); // Load model texture
+ Shader shader = LoadShader("resources/shaders/custom.vs", "resources/shaders/custom.fs");
+ //Shader poste = LoadShader("resources/shaders/custom.vs", "resources/shaders/pixel.fs");
+
+ Model cat = LoadModel("resources/cat.obj"); // Load OBJ model
+
+ SetModelTexture(&cat, texture); // Bind texture to model
+ //SetModelShader(&cat, poste);
+
+ Vector3 catPosition = { 0.0, 0.0, 0.0 }; // Set model position
+
+ SetPostproShader(shader);
+
+ SetTargetFPS(60); // Set our game to run at 60 frames-per-second
+ //--------------------------------------------------------------------------------------
+
+ // Main game loop
+ while (!WindowShouldClose()) // Detect window close button or ESC key
+ {
+ // Update
+ //----------------------------------------------------------------------------------
+ if (IsKeyDown(KEY_LEFT)) catPosition.x -= 0.2;
+ if (IsKeyDown(KEY_RIGHT)) catPosition.x += 0.2;
+ if (IsKeyDown(KEY_UP)) catPosition.z -= 0.2;
+ if (IsKeyDown(KEY_DOWN)) catPosition.z += 0.2;
+ //----------------------------------------------------------------------------------
+
+ // Draw
+ //----------------------------------------------------------------------------------
+ BeginDrawing();
+
+ ClearBackground(RAYWHITE);
+
+ Begin3dMode(camera);
+
+ DrawModel(cat, catPosition, 0.1f, WHITE); // Draw 3d model with texture
+
+ DrawGrid(10.0, 1.0); // Draw a grid
+
+ DrawGizmo(catPosition); // Draw gizmo
+
+ End3dMode();
+
+ DrawFPS(10, 10);
+
+ EndDrawing();
+ //----------------------------------------------------------------------------------
+ }
+
+ // De-Initialization
+ //--------------------------------------------------------------------------------------
+ UnloadTexture(texture); // Unload texture
+ UnloadModel(cat); // Unload model
+ UnloadShader(shader);
+ //UnloadShader(poste);
+
+ CloseWindow(); // Close window and OpenGL context
+ //--------------------------------------------------------------------------------------
+
+ return 0;
+} \ No newline at end of file
diff --git a/examples/resources/shaders/base.vs b/examples/resources/shaders/base.vs
new file mode 100644
index 00000000..78e543b7
--- /dev/null
+++ b/examples/resources/shaders/base.vs
@@ -0,0 +1,19 @@
+#version 110
+
+attribute vec3 vertexPosition;
+attribute vec2 vertexTexCoord;
+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/custom.fs
new file mode 100644
index 00000000..1e53933b
--- /dev/null
+++ b/examples/resources/shaders/custom.fs
@@ -0,0 +1,16 @@
+#version 330
+
+uniform sampler2D texture0;
+varying vec2 fragTexCoord;
+
+uniform vec4 tintColor;
+
+void main()
+{
+ 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, tintColor.a);
+} \ No newline at end of file
diff --git a/examples/resources/shaders/custom.vs b/examples/resources/shaders/custom.vs
new file mode 100644
index 00000000..629c954d
--- /dev/null
+++ b/examples/resources/shaders/custom.vs
@@ -0,0 +1,16 @@
+#version 330
+
+attribute vec3 vertexPosition;
+attribute vec2 vertexTexCoord;
+attribute vec3 vertexNormal;
+
+uniform mat4 projectionMatrix;
+uniform mat4 modelviewMatrix;
+
+varying vec2 fragTexCoord;
+
+void main()
+{
+ fragTexCoord = vertexTexCoord;
+ gl_Position = projectionMatrix*modelviewMatrix*vec4(vertexPosition, 1.0);
+} \ No newline at end of file
diff --git a/examples/resources/shaders/grayscale.fs b/examples/resources/shaders/grayscale.fs
new file mode 100644
index 00000000..1b778871
--- /dev/null
+++ b/examples/resources/shaders/grayscale.fs
@@ -0,0 +1,15 @@
+#version 110
+
+uniform sampler2D texture0;
+varying vec2 fragTexCoord;
+varying vec4 fragColor;
+
+void main()
+{
+ 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, base.a);
+} \ No newline at end of file