#pragma once #include "EASTL/array.h" #include "gameobject.hh" #include "psyqo/bump-allocator.hh" #include "psyqo/fragments.hh" #include "psyqo/gpu.hh" #include "psyqo/ordering-table.hh" #include "psyqo/primitives/common.hh" #include "psyqo/primitives/misc.hh" #include "psyqo/trigonometry.hh" namespace psxsplash { class Renderer final { static constexpr size_t ORDERING_TABLE_SIZE = 1024; static constexpr size_t BUMP_ALLOCATOR_SIZE = 100000; psyqo::GPU &m_gpu; psyqo::Trig<> m_trig; public: psyqo::OrderingTable m_ots[2]; psyqo::Fragments::SimpleFragment m_clear[2]; psyqo::Color m_clearcolor = {.r = 63, .g = 63, .b = 63}; psyqo::BumpAllocator m_ballocs[2]; Renderer(psyqo::GPU &gpuInstance) : m_gpu(gpuInstance) {} void initialize(); void render(eastl::array &objects); }; } // namespace psxsplash