Threading for renderer, textures, entities, game state
This commit is contained in:
@@ -5,31 +5,52 @@ namespace Game::Renderer {
|
||||
Renderer::Renderer() : mRenderer(nullptr) {}
|
||||
|
||||
Renderer::~Renderer() {
|
||||
destroy();
|
||||
}
|
||||
|
||||
void Renderer::destroy() {
|
||||
if (mRenderer) {
|
||||
SDL_DestroyRenderer(mRenderer);
|
||||
mRenderer = nullptr;
|
||||
LOG("Destroyed Renderer");
|
||||
}
|
||||
}
|
||||
|
||||
bool Renderer::init(SDL_Window* window) {
|
||||
mRenderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
|
||||
mRenderer = SDL_CreateRenderer(window, nullptr);
|
||||
if (!mRenderer) {
|
||||
std::string errorMsg = "Failed to create renderer: " + std::string(SDL_GetError());
|
||||
ERROR(errorMsg.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
SDL_SetRenderDrawColor(mRenderer, 0, 0, 255, 255); // Temp
|
||||
if (!SDL_SetRenderDrawColor(mRenderer, 0, 0, 255, 255)) {
|
||||
ERROR("Failed to set renderer draw color: " << SDL_GetError());
|
||||
return false;
|
||||
}
|
||||
|
||||
LOG("Renderer created successfully");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Renderer::clear() {
|
||||
SDL_RenderClear(mRenderer);
|
||||
void Renderer::run(std::stop_token stoken) {
|
||||
while (!stoken.stop_requested()) {
|
||||
mClear();
|
||||
// Get gamestate mutex and render the objects here; GameState::getState().objects or something, idk
|
||||
mPresent();
|
||||
}
|
||||
}
|
||||
|
||||
void Renderer::present() {
|
||||
SDL_RenderPresent(mRenderer);
|
||||
void Renderer::mClear() {
|
||||
if (!SDL_RenderClear(mRenderer)) {
|
||||
ERROR("Failed to clear renderer: " << SDL_GetError());
|
||||
}
|
||||
}
|
||||
|
||||
void Renderer::mPresent() {
|
||||
if (!SDL_RenderPresent(mRenderer)) {
|
||||
ERROR("Failed to present renderer: " << SDL_GetError());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user