renderiranje - nazaj na singlethreaded ker me SDL ne mara :(

This commit is contained in:
2026-03-11 20:19:15 +01:00
parent d748ca63a0
commit 834f0b29c3
18 changed files with 230 additions and 75 deletions

View File

@@ -1,16 +1,9 @@
#include <window/window.hpp>
namespace Game::Window {
Window::Window() : mWindow(nullptr), mRunning(false) {
}
Window::Window() : mWindow(nullptr), mRenderer(), mRunning(false) { }
Window::~Window() {
// Stop render thread
if (mRenderThread.joinable()) {
mRenderThread.request_stop();
mRenderThread.join();
}
mRenderer.destroy();
if (mWindow) {
@@ -36,14 +29,12 @@ namespace Game::Window {
LOG("Window created successfully");
// Spawn new thread for renderer
if (!mRenderer.init(mWindow)) {
SDL_DestroyWindow(mWindow);
mWindow = nullptr;
SDL_Quit();
return false;
}
mRenderThread = std::jthread(std::bind_front(&Renderer::Renderer::run, &mRenderer));
mRunning = true;
@@ -60,6 +51,14 @@ namespace Game::Window {
// Handle other events (e.g., keyboard, mouse) here
}
auto entities = State::GameState::getInstance().getEntitiesRef();
for (auto& entity : *entities) {
entity->update();
}
mRenderer.renderFrame();
SDL_Delay(16); // ~60 FPS target, maybe make dynamic based on avg. frame time - TODO
}
}
}