diff options
| author | raysan5 <raysan5@gmail.com> | 2016-04-23 11:29:19 +0200 |
|---|---|---|
| committer | raysan5 <raysan5@gmail.com> | 2016-04-23 11:29:19 +0200 |
| commit | 173529e04856102fee404ffd5d2942e9b1d4fdf4 (patch) | |
| tree | 06469f0b0b635baf93130b6dc4703734d33db43f /examples/oculus_glfw_sample/raylib_rlgl_standalone.c | |
| parent | 9639b14e1bbfb9065d788dd6341527c93ad55e88 (diff) | |
| download | raylib-173529e04856102fee404ffd5d2942e9b1d4fdf4.tar.gz raylib-173529e04856102fee404ffd5d2942e9b1d4fdf4.zip | |
Oculus SDK 1.3 + GLFW3 sample -NOT WORKING-
Diffstat (limited to 'examples/oculus_glfw_sample/raylib_rlgl_standalone.c')
| -rw-r--r-- | examples/oculus_glfw_sample/raylib_rlgl_standalone.c | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/examples/oculus_glfw_sample/raylib_rlgl_standalone.c b/examples/oculus_glfw_sample/raylib_rlgl_standalone.c new file mode 100644 index 00000000..adce9276 --- /dev/null +++ b/examples/oculus_glfw_sample/raylib_rlgl_standalone.c @@ -0,0 +1,131 @@ +/******************************************************************************************* +* +* raylib [rlgl] example - Using rlgl module as standalone module +* +* NOTE: This example requires OpenGL 3.3 or ES2 versions for shaders support, +* OpenGL 1.1 does not support shaders but it can also be used. +* +* Compile rlgl module using: +* gcc -c rlgl.c -Wall -std=c99 -DRLGL_STANDALONE -DRAYMATH_IMPLEMENTATION -DGRAPHICS_API_OPENGL_33 +* +* Compile example using: +* gcc -o $(NAME_PART).exe $(FILE_NAME) rlgl.o glad.o -lglfw3 -lopengl32 -lgdi32 -std=c99 +* +* This example has been created using raylib 1.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "glad.h" +#include <GLFW/glfw3.h> + +#define RLGL_STANDALONE +#include "rlgl.h" + +#include <stdlib.h> +#include <stdio.h> + +//---------------------------------------------------------------------------------- +// Module specific Functions Declaration +//---------------------------------------------------------------------------------- +static void ErrorCallback(int error, const char* description) +{ + fputs(description, stderr); +} + +static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) +{ + if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) + { + glfwSetWindowShouldClose(window, GL_TRUE); + } +} + +void DrawRectangleV(Vector2 position, Vector2 size, Color color); + +//---------------------------------------------------------------------------------- +// Main Entry point +//---------------------------------------------------------------------------------- +int main(void) +{ + const int screenWidth = 800; + const int screenHeight = 450; + + GLFWwindow *window; + + glfwSetErrorCallback(ErrorCallback); + + if (!glfwInit()) exit(EXIT_FAILURE); + + glfwWindowHint(GLFW_SAMPLES, 4); + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + + window = glfwCreateWindow(screenWidth, screenHeight, "rlgl standalone", NULL, NULL); + + if (!window) + { + glfwTerminate(); + exit(EXIT_FAILURE); + } + + glfwSetKeyCallback(window, KeyCallback); + + glfwMakeContextCurrent(window); + glfwSwapInterval(1); + + if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) + { + printf("Cannot load GL extensions.\n"); + exit(1); + } + + rlglInit(); + rlglInitGraphics(0, 0, screenWidth, screenHeight); + rlClearColor(245, 245, 245, 255); // Define clear color + + Vector2 position = { screenWidth/2 - 100, screenHeight/2 - 100 }; + Vector2 size = { 200, 200 }; + Color color = { 180, 20, 20, 255 }; + + while (!glfwWindowShouldClose(window)) + { + rlClearScreenBuffers(); + + DrawRectangleV(position, size, color); + + rlglDraw(); + + glfwSwapBuffers(window); + glfwPollEvents(); + } + + rlglClose(); + + glfwDestroyWindow(window); + glfwTerminate(); + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module specific Functions Definitions +//---------------------------------------------------------------------------------- +void DrawRectangleV(Vector2 position, Vector2 size, Color color) +{ + rlBegin(RL_TRIANGLES); + rlColor4ub(color.r, color.g, color.b, color.a); + + rlVertex2i(position.x, position.y); + rlVertex2i(position.x, position.y + size.y); + rlVertex2i(position.x + size.x, position.y + size.y); + + rlVertex2i(position.x, position.y); + rlVertex2i(position.x + size.x, position.y + size.y); + rlVertex2i(position.x + size.x, position.y); + rlEnd(); +}
\ No newline at end of file |
