* rework GPU's settings interface, make it config-agnostic

* make video settings dialog functional, sorta
* fix dialogs that were resizable
This commit is contained in:
Arisotura
2020-05-28 15:53:32 +02:00
parent 5005a7c3f0
commit 0804ab3c78
15 changed files with 342 additions and 167 deletions

View File

@ -157,8 +157,6 @@ u32 NumCommands, CurCommand, ParamCount, TotalParams;
bool GeometryEnabled;
bool RenderingEnabled;
int Renderer;
u32 DispCnt;
u8 AlphaRefVal, AlphaRef;
@ -280,17 +278,11 @@ bool Init()
CmdStallQueue = new FIFO<CmdFIFOEntry>(64);
Renderer = -1;
// SetRenderer() will be called to set it up later
return true;
}
void DeInit()
{
if (Renderer == 0) SoftRenderer::DeInit();
else GLRenderer::DeInit();
delete CmdFIFO;
delete CmdPIPE;
@ -391,8 +383,6 @@ void Reset()
FlushAttributes = 0;
ResetRenderingState();
if (Renderer == 0) SoftRenderer::Reset();
else GLRenderer::Reset();
}
void DoSavestate(Savestate* file)
@ -607,43 +597,6 @@ void SetEnabled(bool geometry, bool rendering)
}
int InitRenderer(bool hasGL)
{
int renderer = hasGL ? Config::_3DRenderer : 0;
if (renderer == 1)
{
if (!GLRenderer::Init())
renderer = 0;
}
printf("renderer: %d\n", renderer);
if (renderer == 0) SoftRenderer::Init();
Renderer = renderer;
UpdateRendererConfig();
GPU::SetDisplaySettings(Renderer != 0);
return renderer;
}
void DeInitRenderer()
{
if (Renderer == 0) SoftRenderer::DeInit();
else GLRenderer::DeInit();
}
void UpdateRendererConfig()
{
if (Renderer == 0)
{
SoftRenderer::SetupRenderThread();
}
else
{
GLRenderer::UpdateDisplaySettings();
}
}
void MatrixLoadIdentity(s32* m)
{
@ -2470,7 +2423,7 @@ void CheckFIFODMA()
void VCount144()
{
if (Renderer == 0) SoftRenderer::VCount144();
if (GPU::Renderer == 0) SoftRenderer::VCount144();
}
@ -2552,14 +2505,14 @@ void VBlank()
void VCount215()
{
if (Renderer == 0) SoftRenderer::RenderFrame();
else GLRenderer::RenderFrame();
if (GPU::Renderer == 0) SoftRenderer::RenderFrame();
else GLRenderer::RenderFrame();
}
u32* GetLine(int line)
{
if (Renderer == 0) return SoftRenderer::GetLine(line);
else return GLRenderer::GetLine(line);
if (GPU::Renderer == 0) return SoftRenderer::GetLine(line);
else return GLRenderer::GetLine(line);
}