renderiranje - nazaj na singlethreaded ker me SDL ne mara :(
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user