16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-18 18:09:18 +02:00
Files
maszyna/entitysystem/systems/BillboardSystem.h
2026-05-24 21:48:05 +02:00

26 lines
585 B
C++

#pragma once
#include "BaseSystem.h"
#include "rendering/renderer.h"
#include <unordered_map>
#include <string>
// Renders Billboard components as camera-facing textured quads.
// Instances sharing the same texture are batched into one draw call.
class BillboardSystem : public BaseSystem
{
public:
BillboardSystem();
~BillboardSystem();
void Render(ECWorld& world) override;
private:
struct BillboardInstance {
glm::vec3 position; // camera-relative
float size;
};
struct RenderState;
std::unique_ptr<RenderState> m_renderState;
};