Core: Don't pass through a reference to the window handle
Now that MainNoGUI is properly architected and GLX doesn't need to sometimes craft its own windows sometimes which we have to thread back into MainNoGUI, we don't need to thread the window handle that GLX creates at all. This removes the reference to pass back here, and the g_pWindowHandle always be the same as the window returned by Host_GetRenderHandle(). A future cleanup could remove g_pWindowHandle entirely.
This commit is contained in:
parent
6e312dce91
commit
7ca8d8dfc7
|
@ -208,9 +208,6 @@ bool Init()
|
|||
!!SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.AR"));
|
||||
}
|
||||
|
||||
// g_pWindowHandle is first the m_Panel handle,
|
||||
// then it is updated to the render window handle,
|
||||
// within g_video_backend->Initialize()
|
||||
g_pWindowHandle = Host_GetRenderHandle();
|
||||
|
||||
// Start the emu thread
|
||||
|
|
|
@ -16,7 +16,7 @@ void cInterfaceAGL::Swap()
|
|||
|
||||
// Create rendering window.
|
||||
// Call browser: Core.cpp:EmuThread() > main.cpp:Video_Initialize()
|
||||
bool cInterfaceAGL::Create(void *&window_handle)
|
||||
bool cInterfaceAGL::Create(void *window_handle)
|
||||
{
|
||||
// FIXME: Get rid of the explicit use of wxPanel here. This shouldn't be necessary.
|
||||
GLWin.cocoaWin = reinterpret_cast<NSView*>(((wxPanel*)window_handle)->GetHandle());
|
||||
|
|
|
@ -14,7 +14,7 @@ class cInterfaceAGL : public cInterfaceBase
|
|||
{
|
||||
public:
|
||||
void Swap();
|
||||
bool Create(void *&window_handle);
|
||||
bool Create(void *window_handle);
|
||||
bool MakeCurrent();
|
||||
bool ClearCurrent();
|
||||
void Shutdown();
|
||||
|
|
|
@ -87,7 +87,7 @@ err_exit:
|
|||
|
||||
// Create rendering window.
|
||||
// Call browser: Core.cpp:EmuThread() > main.cpp:Video_Initialize()
|
||||
bool cInterfaceEGL::Create(void *&window_handle)
|
||||
bool cInterfaceEGL::Create(void *window_handle)
|
||||
{
|
||||
const char *s;
|
||||
EGLint egl_major, egl_minor;
|
||||
|
|
|
@ -20,7 +20,7 @@ public:
|
|||
void SetMode(u32 mode) { s_opengl_mode = mode; }
|
||||
void UpdateFPSDisplay(const std::string& text);
|
||||
void* GetFuncAddress(const std::string& name);
|
||||
bool Create(void *&window_handle);
|
||||
bool Create(void *window_handle);
|
||||
bool MakeCurrent();
|
||||
void Shutdown();
|
||||
};
|
||||
|
|
|
@ -37,7 +37,7 @@ void cInterfaceGLX::Swap()
|
|||
|
||||
// Create rendering window.
|
||||
// Call browser: Core.cpp:EmuThread() > main.cpp:Video_Initialize()
|
||||
bool cInterfaceGLX::Create(void *&window_handle)
|
||||
bool cInterfaceGLX::Create(void *window_handle)
|
||||
{
|
||||
int glxMajorVersion, glxMinorVersion;
|
||||
|
||||
|
@ -102,7 +102,6 @@ bool cInterfaceGLX::Create(void *&window_handle)
|
|||
}
|
||||
|
||||
XWindow.CreateXWindow();
|
||||
window_handle = (void *)GLWin.win;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ public:
|
|||
void Swap() override;
|
||||
void UpdateFPSDisplay(const std::string& text) override;
|
||||
void* GetFuncAddress(const std::string& name) override;
|
||||
bool Create(void *&window_handle) override;
|
||||
bool Create(void *window_handle);
|
||||
bool MakeCurrent() override;
|
||||
bool ClearCurrent() override;
|
||||
void Shutdown() override;
|
||||
|
|
|
@ -63,7 +63,7 @@ void cInterfaceWGL::UpdateFPSDisplay(const std::string& text)
|
|||
|
||||
// Create rendering window.
|
||||
// Call browser: Core.cpp:EmuThread() > main.cpp:Video_Initialize()
|
||||
bool cInterfaceWGL::Create(void *&window_handle)
|
||||
bool cInterfaceWGL::Create(void *window_handle)
|
||||
{
|
||||
if (window_handle == nullptr)
|
||||
return false;
|
||||
|
|
|
@ -14,7 +14,7 @@ public:
|
|||
void Swap();
|
||||
void UpdateFPSDisplay(const std::string& text);
|
||||
void* GetFuncAddress(const std::string& name);
|
||||
bool Create(void *&window_handle);
|
||||
bool Create(void *window_handle);
|
||||
bool MakeCurrent();
|
||||
bool ClearCurrent();
|
||||
void Shutdown();
|
||||
|
|
|
@ -31,6 +31,7 @@ class Platform
|
|||
{
|
||||
public:
|
||||
virtual void Init() = 0;
|
||||
virtual void SetTitle(const std::string &title) = 0;
|
||||
virtual void MainLoop() = 0;
|
||||
virtual void Shutdown() = 0;
|
||||
virtual ~Platform() {};
|
||||
|
@ -58,7 +59,10 @@ void* Host_GetRenderHandle()
|
|||
return windowHandle;
|
||||
}
|
||||
|
||||
void Host_UpdateTitle(const std::string& title){};
|
||||
void Host_UpdateTitle(const std::string& title)
|
||||
{
|
||||
platform->SetTitle(title);
|
||||
}
|
||||
|
||||
void Host_UpdateDisasmDialog(){}
|
||||
|
||||
|
@ -175,6 +179,11 @@ class PlatformX11 : public Platform
|
|||
}
|
||||
}
|
||||
|
||||
void SetTitle(const std::string &string) override
|
||||
{
|
||||
XStoreName(dpy, win, string.c_str());
|
||||
}
|
||||
|
||||
void MainLoop() override
|
||||
{
|
||||
bool fullscreen = SConfig::GetInstance().m_LocalCoreStartupParameter.bFullscreen;
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace DX11
|
|||
|
||||
class VideoBackend : public VideoBackendHardware
|
||||
{
|
||||
bool Initialize(void *&) override;
|
||||
bool Initialize(void *) override;
|
||||
void Shutdown() override;
|
||||
|
||||
std::string GetName() const override;
|
||||
|
|
|
@ -141,7 +141,7 @@ void VideoBackend::ShowConfig(void *hParent)
|
|||
Host_ShowVideoConfig(hParent, GetDisplayName(), "gfx_dx11");
|
||||
}
|
||||
|
||||
bool VideoBackend::Initialize(void *&window_handle)
|
||||
bool VideoBackend::Initialize(void *window_handle)
|
||||
{
|
||||
if (window_handle == nullptr)
|
||||
return false;
|
||||
|
|
|
@ -29,7 +29,7 @@ public:
|
|||
virtual void SetMode(u32 mode) { s_opengl_mode = GLInterfaceMode::MODE_OPENGL; }
|
||||
virtual u32 GetMode() { return s_opengl_mode; }
|
||||
virtual void* GetFuncAddress(const std::string& name) { return nullptr; }
|
||||
virtual bool Create(void *&window_handle) { return true; }
|
||||
virtual bool Create(void *window_handle) { return true; }
|
||||
virtual bool MakeCurrent() { return true; }
|
||||
virtual bool ClearCurrent() { return true; }
|
||||
virtual void Shutdown() {}
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace OGL
|
|||
|
||||
class VideoBackend : public VideoBackendHardware
|
||||
{
|
||||
bool Initialize(void *&) override;
|
||||
bool Initialize(void *) override;
|
||||
void Shutdown() override;
|
||||
|
||||
std::string GetName() const override;
|
||||
|
|
|
@ -155,7 +155,7 @@ void VideoBackend::ShowConfig(void *_hParent)
|
|||
Host_ShowVideoConfig(_hParent, GetDisplayName(), "gfx_opengl");
|
||||
}
|
||||
|
||||
bool VideoBackend::Initialize(void *&window_handle)
|
||||
bool VideoBackend::Initialize(void *window_handle)
|
||||
{
|
||||
InitializeShared();
|
||||
InitBackendInfo();
|
||||
|
|
|
@ -71,7 +71,7 @@ void VideoSoftware::ShowConfig(void *hParent)
|
|||
Host_ShowVideoConfig(hParent, GetDisplayName(), "gfx_software");
|
||||
}
|
||||
|
||||
bool VideoSoftware::Initialize(void *&window_handle)
|
||||
bool VideoSoftware::Initialize(void *window_handle)
|
||||
{
|
||||
g_SWVideoConfig.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_software.ini").c_str());
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ namespace SW
|
|||
|
||||
class VideoSoftware : public VideoBackend
|
||||
{
|
||||
bool Initialize(void *&) override;
|
||||
bool Initialize(void *window_handle) override;
|
||||
void Shutdown() override;
|
||||
|
||||
std::string GetName() const override;
|
||||
|
|
|
@ -72,7 +72,7 @@ public:
|
|||
|
||||
virtual unsigned int PeekMessages() = 0;
|
||||
|
||||
virtual bool Initialize(void *&) = 0;
|
||||
virtual bool Initialize(void *window_handle) = 0;
|
||||
virtual void Shutdown() = 0;
|
||||
virtual void RunLoop(bool enable) = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue