#pragma once #include #include namespace PD { struct GfxCitro3DConfig { // Vertex Allocator template using VertexAlloc = LinearAllocator; // Index Allocator template using IndexAlloc = LinearAllocator; }; class GfxCitro3D : public GfxDriverBase { public: GfxCitro3D() : GfxDriverBase("Citro3D") {} ~GfxCitro3D() {} void SysInit() override; void SysDeinit() override; void Submit(size_t count, size_t start) override; void BindTexture(TextureID id) override; void SysReset() override; Li::Texture LoadTexture( const std::vector& pixels, int w, int h, TextureFormat type = TextureFormat::RGBA32, TextureFilter filter = TextureFilter::Linear) override; void DeleteTexture(const Li::Texture& tex) override; private: struct Impl; Impl* impl = nullptr; }; } // namespace PD