From e96c22d6f8b26abaf2d2d41df478d4a5e856836c Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sun, 18 Jan 2015 11:19:25 +0100 Subject: Updated makefiles for templates Now support multiple platforms --- examples/makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'examples') diff --git a/examples/makefile b/examples/makefile index b4d7bfa3..35cba99e 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 -- cgit v1.2.3 From b92c1bbbf770da306059578cedc310f6d1542efb Mon Sep 17 00:00:00 2001 From: Constantine Tarasenkov Date: Sun, 25 Jan 2015 17:53:29 +0300 Subject: Fixes for makefiles, GLFW 3.1 library for Linux --- examples/makefile | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'examples') diff --git a/examples/makefile b/examples/makefile index 35cba99e..9b0c9d4c 100644 --- a/examples/makefile +++ b/examples/makefile @@ -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 -- cgit v1.2.3 From eae98e1c34512579d69966c99713bd0c45bfcb50 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 4 May 2015 23:46:31 +0200 Subject: Big batch of changes, check description: - Camera system moved to a separate module [camera.c] - WIP: Added customization functions for camera controls - Added custom shaders support on batch drawing - Complete redesign of textures module to support multiple texture formats (compressed and uncompressed) --- examples/models_custom_shader.c | 86 +++++++++++++++++++++++++++++++++ examples/resources/shaders/base.vs | 19 ++++++++ examples/resources/shaders/custom.fs | 16 ++++++ examples/resources/shaders/custom.vs | 16 ++++++ examples/resources/shaders/grayscale.fs | 15 ++++++ 5 files changed, 152 insertions(+) create mode 100644 examples/models_custom_shader.c create mode 100644 examples/resources/shaders/base.vs create mode 100644 examples/resources/shaders/custom.fs create mode 100644 examples/resources/shaders/custom.vs create mode 100644 examples/resources/shaders/grayscale.fs (limited to 'examples') 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 -- cgit v1.2.3