aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorfschildt <florian.schildt@protonmail.com>2025-09-17 15:30:21 +0200
committerfschildt <florian.schildt@protonmail.com>2025-09-17 15:30:21 +0200
commitf28e9c3e03a9f94764b3811f7c4aa01991943fc7 (patch)
tree569850adf97494f5ce31dfe31a4c2703f378a144 /src/main.cpp
parentb46a0d9369fbaa1938f0968ab216bc2d564a9c37 (diff)
switch to software renderer
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 0a632fa..0cf89d7 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,4 +1,3 @@
-#include "imgui_internal.h"
#include <basic/defs.hpp>
#include <cstdlib>
#include <memory>
@@ -8,6 +7,7 @@
#include <SDL3/SDL.h>
#include <SDL3/SDL_video.h>
+#include <GL/glew.h>
#include <GL/gl.h>
#include <imgui.h>
@@ -17,7 +17,6 @@
#include <stdlib.h>
#include <assert.h>
#include <iostream>
-#include <array>
Game::GameType
@@ -41,7 +40,7 @@ do_menu(RenderGroup &render_group)
ImGui::End();
- V3F32 clear_color = V3F32(0.4f, 0.4f, 0.4f);
+ Color clear_color = {0.4f, 0.4f, 0.4f, 1.0f};
render_group.SetCameraSize(4.0f, 3.0f);
render_group.Clear(clear_color);
@@ -81,6 +80,12 @@ main(int argc, char **argv)
return EXIT_FAILURE;
}
+ GLenum glew_error = glewInit();
+ if (glew_error != GLEW_OK)
+ {
+ fprintf(stderr, "Error: %s\n", glewGetErrorString(glew_error));
+ }
+
SDL_GL_MakeCurrent(window, sdl_gl_context);
SDL_GL_SetSwapInterval(1); // enable vsync
SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
@@ -101,8 +106,8 @@ main(int argc, char **argv)
std::unique_ptr<Game> game = nullptr;
- std::unique_ptr<Renderer> renderer = Renderer::Select(Renderer::API_OPENGL, window);
- if (!renderer->Init()) {
+ Renderer renderer {window};
+ if (!renderer.Init()) {
return EXIT_FAILURE;
}
@@ -145,6 +150,7 @@ main(int argc, char **argv)
SDL_GetWindowSize(window, &w, &h);
render_group.m_ScreenWidth = w;
render_group.m_ScreenHeight = h;
+ renderer.ResizeCanvas(w, h);
if (game) {
@@ -171,10 +177,10 @@ main(int argc, char **argv)
ImGui::End();
- renderer->Draw(render_group);
+ renderer.Draw(render_group);
ImGui::Render();
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
- renderer->Present();
+ SDL_GL_SwapWindow(window);
render_group.Reset();
}