#pragma once #include namespace PD { struct GfxDirectX9Config { // Vertex Allocator template using VertexAlloc = std::allocator; // Index Allocator template using IndexAlloc = std::allocator; static constexpr size_t NumVertices = 32768; // 8192*4 static constexpr size_t NumIndices = 49152; // 8192*6 }; class GfxDirectX9 : public GfxDriverBase { public: GfxDirectX9(void* device = nullptr) : GfxDriverBase("DirectX9"), pDevice(device) {} ~GfxDirectX9() {} 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; void* pDevice = nullptr; }; } // namespace PD