From 79173c530d1846082c631dd4fe81c6429fffa5f0 Mon Sep 17 00:00:00 2001 From: Schark Date: Wed, 10 May 2023 23:42:32 -0700 Subject: Transition to opengl and glfw --- .gitignore | 1 + CMakeLists.txt | 6 +++--- src/main.c | 50 +++++++++++++++++++------------------------------- 3 files changed, 23 insertions(+), 34 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a007fea --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build/* diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e80f12..c7f1de8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,10 +3,10 @@ project(raycaster C) set(CMAKE_C_STANDARD 99) -find_package(SDL2 REQUIRED) -include_directories(${SDL2_INCLUDE_DIRS} include) +find_package(OpenGL REQUIRED) +find_package(glfw3 REQUIRED) file(GLOB SOURCES "src/*.c") add_executable(raycaster ${SOURCES}) -target_link_libraries(raycaster ${SDL2_LIBRARIES}) +target_link_libraries(raycaster ${OPENGL_gl_LIBRARY} glfw) diff --git a/src/main.c b/src/main.c index c225b14..cb652fd 100644 --- a/src/main.c +++ b/src/main.c @@ -1,46 +1,34 @@ -#include +#include #include int main(int argc, char *argv[]) { - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError()); - return 1; - } + GLFWwindow* window; - SDL_Window *window = SDL_CreateWindow("Raycaster", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 600, SDL_WINDOW_SHOWN); - if (!window) { - printf("Window could not be created! SDL_Error: %s\n", SDL_GetError()); - return 1; + // initiate glfw library + if (!glfwInit()){ + printf("Failed to initiate GLFW.\n"); + return -1; } - SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_SOFTWARE); - if (!renderer) { - printf("Renderer could not be created. SDL_Error: %s\n", SDL_GetError()); - SDL_DestroyWindow(window); - SDL_Quit(); - return 1; + // create glfw window + window = glfwCreateWindow(800, 600, "raycaster", NULL, NULL); + if (!window){ + printf("Failed to create GLFW window.\n"); + glfwTerminate(); + return -1; } - int running = 1; - SDL_Event event; - - while (running) { - while (SDL_PollEvent(&event)){ - if (event.type == SDL_QUIT) { - running = 0; - } - } + // make window current + glfwMakeContextCurrent(window); - SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); - SDL_RenderClear(renderer); + while (!glfwWindowShouldClose(window)) { - SDL_RenderPresent(renderer); + glClear(GL_COLOR_BUFFER_BIT); + glfwSwapBuffers(window); + glfwPollEvents(); } - SDL_DestroyRenderer(renderer); - SDL_DestroyWindow(window); - SDL_Quit(); - + glfwTerminate(); return 0; } -- cgit v1.2.3-18-g5258