summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--CMakeLists.txt6
-rw-r--r--src/main.c50
3 files changed, 23 insertions, 34 deletions
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 <SDL.h>
+#include <GLFW/glfw3.h>
#include <stdio.h>
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;
}