GPU/HW: Add D3D11 renderer and refactor host interface/display

This commit is contained in:
Connor McLaughlin
2019-11-04 00:39:48 +10:00
parent f244da86a2
commit 9de9cf3be2
30 changed files with 2101 additions and 415 deletions

View File

@ -10,6 +10,8 @@
class StateWrapper;
class HostDisplay;
class System;
class DMA;
class InterruptController;
@ -90,7 +92,8 @@ public:
GPU();
virtual ~GPU();
virtual bool Initialize(System* system, DMA* dma, InterruptController* interrupt_controller, Timers* timers);
virtual bool Initialize(HostDisplay* host_display, System* system, DMA* dma,
InterruptController* interrupt_controller, Timers* timers);
virtual void Reset();
virtual bool DoState(StateWrapper& sw);
@ -116,6 +119,9 @@ public:
// Ticks for hblank/vblank.
void Execute(TickCount ticks);
// gpu_hw_d3d11.cpp
static std::unique_ptr<GPU> CreateHardwareD3D11Renderer();
// gpu_hw_opengl.cpp
static std::unique_ptr<GPU> CreateHardwareOpenGLRenderer();
@ -292,6 +298,7 @@ protected:
virtual void DispatchRenderCommand(RenderCommand rc, u32 num_vertices, const u32* command_ptr);
virtual void FlushRender();
HostDisplay* m_host_display = nullptr;
System* m_system = nullptr;
DMA* m_dma = nullptr;
InterruptController* m_interrupt_controller = nullptr;