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

@@ -2,24 +2,47 @@
#include <string>
#include <utils.hpp>
#include <object/transform.hpp>
#include <SDL3/SDL.h>
#include <SDL3_image/SDL_image.h>
#include <utility>
#include <memory>
namespace Game::Renderer {
class Renderer;
class Texture;
}
namespace Game::Object {
class Entity {
public:
Entity(std::string& name, Game::Renderer::Texture* tex) : mName(name), mTex(tex) {}
Entity(std::string name, std::shared_ptr<Game::Renderer::Texture> tex, Transform transform) : mName(name), mTex(tex), mTransform(transform), mIsActive(true) { LOG("Created Entity: " << mName); }
// I will define the copy and move constructors later - just deleted for now
DISABLE_COPY_AND_MOVE(Entity);
Entity(const Entity&);
Entity& operator=(const Entity&);
Entity(Entity&&) noexcept;
Entity& operator=(Entity&&) noexcept;
~Entity();
void start();
void update();
virtual void start() = 0;
virtual void update() = 0;
void render(Game::Renderer::Renderer* renderer);
// Setters and getters
void setTexture(std::shared_ptr<Game::Renderer::Texture> tex) { mTex = tex; }
void setName(const std::string& name) { mName = name; }
void setTransform(const Transform& transform) { mTransform = transform; }
void setActive(bool active) { mIsActive = active; }
std::shared_ptr<Game::Renderer::Texture> getTexture() { return mTex; }
std::string getName() { return mName; }
Transform* getTransform() { return &mTransform; }
bool isActive() { return mIsActive; }
protected:
std::string mName;
Game::Renderer::Texture* mTex;
std::shared_ptr<Game::Renderer::Texture> mTex;
Transform mTransform;
bool mIsActive;
private:
float mScaleConstant = 0.25f;
};
}