/* Created on 19.06.18. */ #pragma once #include #include #include #include #include #include #include namespace glez::detail::record { class RecordedCommands { public: struct segment { std::size_t start { 0 }; std::size_t size { 0 }; glez::texture* texture { nullptr }; glez::font* font { nullptr }; }; RecordedCommands(); ~RecordedCommands(); void reset(); void store(glez::vertex* vertices, size_t vcount, uint32_t* indices, size_t icount); void bindTexture(glez::texture* tx); void bindFont(glez::font* font); void render(); void end(); protected: void cutSegment(); ftgl::vertex_buffer_t* vertex_buffer {}; std::vector segments {}; segment current {}; }; extern RecordedCommands* currentRecord; extern bool isReplaying; } // namespace glez::detail::record