Add backends
- Renamed GfxOpenGL to GfxOPenGL2 - Added GfxOpenGL3 backend for OpenGL 3.3+ - Added WIP DirectX9 backend - Added structure for Citro3D - Added linear Allocator
This commit is contained in:
39
backends/include/pd_system/gfx_directx9.hpp
Normal file
39
backends/include/pd_system/gfx_directx9.hpp
Normal file
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include <pd/drivers/gfx.hpp>
|
||||
|
||||
namespace PD {
|
||||
struct GfxDirectX9Config {
|
||||
// Vertex Allocator
|
||||
template <typename T>
|
||||
using VertexAlloc = std::allocator<T>;
|
||||
// Index Allocator
|
||||
template <typename T>
|
||||
using IndexAlloc = std::allocator<T>;
|
||||
|
||||
static constexpr size_t NumVertices = 32768; // 8192*4
|
||||
static constexpr size_t NumIndices = 49152; // 8192*6
|
||||
};
|
||||
|
||||
class GfxDirectX9 : public GfxDriverBase<GfxDirectX9Config> {
|
||||
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;
|
||||
TextureID LoadTexture(const std::vector<PD::u8>& pixels, int w, int h,
|
||||
TextureFormat type = TextureFormat::RGBA32,
|
||||
TextureFilter filter = TextureFilter::Linear) override;
|
||||
void DeleteTexture(const TextureID& tex) override;
|
||||
|
||||
private:
|
||||
struct Impl;
|
||||
Impl* impl = nullptr;
|
||||
void* pDevice = nullptr;
|
||||
};
|
||||
} // namespace PD
|
||||
Reference in New Issue
Block a user