#pragma once #include #include #include "typedefs.hpp" class DrawContext; class Camera; class Assets; class Batch3D; class Frustum; class TextNote; struct EngineSettings; class TextsRenderer { Batch3D& batch; const Assets& assets; const Frustum& frustum; std::unordered_map> notes; u64id_t nextNote = 1; void renderNote( const TextNote& note, const DrawContext& context, const Camera& camera, const EngineSettings& settings, bool hudVisible, bool frontLayer, bool projected ); public: TextsRenderer(Batch3D& batch, const Assets& assets, const Frustum& frustum); void render( const DrawContext& context, const Camera& camera, const EngineSettings& settings, bool hudVisible, bool frontLayer ); u64id_t add(std::unique_ptr note); TextNote* get(u64id_t id) const; void remove(u64id_t id); };