mirror of https://github.com/AxioDL/boo.git
Windows deallocation fixes
This commit is contained in:
parent
3028e34b51
commit
6ff4229f9b
|
@ -2786,6 +2786,7 @@ struct VulkanCommandQueue : IGraphicsCommandQueue
|
|||
m_running = false;
|
||||
if (m_submitted && vk::GetFenceStatus(m_ctx->m_dev, m_drawCompleteFence) == VK_NOT_READY)
|
||||
vk::WaitForFences(m_ctx->m_dev, 1, &m_drawCompleteFence, VK_FALSE, -1);
|
||||
stallDynamicUpload();
|
||||
static_cast<VulkanDataFactoryImpl*>(m_parent->getDataFactory())->DestroyGammaResources();
|
||||
m_drawResTokens[0].clear();
|
||||
m_drawResTokens[1].clear();
|
||||
|
|
|
@ -407,6 +407,13 @@ public:
|
|||
return clientReturn;
|
||||
}
|
||||
|
||||
~ApplicationWin32()
|
||||
{
|
||||
for (auto& p : m_allWindows)
|
||||
if (auto w = p.second.lock())
|
||||
w->_cleanup();
|
||||
}
|
||||
|
||||
SystemStringView getUniqueName() const
|
||||
{
|
||||
return m_uniqueName;
|
||||
|
@ -506,7 +513,10 @@ int ApplicationRun(IApplication::EPlatformType platform,
|
|||
|
||||
APP = new ApplicationWin32(cb, uniqueName, friendlyName, pname, args,
|
||||
gfxApi, samples, anisotropy, deepColor, singleInstance);
|
||||
return APP->run();
|
||||
int ret = APP->run();
|
||||
delete APP;
|
||||
APP = nullptr;
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1018,9 +1018,9 @@ public:
|
|||
m_gfxCtx.reset(new GraphicsContextWin32D3D(api, this, m_hwnd, b3dCtx));
|
||||
}
|
||||
|
||||
~WindowWin32()
|
||||
void _cleanup()
|
||||
{
|
||||
|
||||
m_gfxCtx.reset();
|
||||
}
|
||||
|
||||
void setCallback(IWindowCallback* cb)
|
||||
|
|
|
@ -613,7 +613,9 @@ int WINAPIV main(Platform::Array<Platform::String^>^ params)
|
|||
int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR lpCmdLine, int)
|
||||
{
|
||||
int argc = 0;
|
||||
const boo::SystemChar** argv = (const wchar_t**)(CommandLineToArgvW(lpCmdLine, &argc));
|
||||
const boo::SystemChar** argv;
|
||||
if (lpCmdLine[0])
|
||||
argv = (const wchar_t**)(CommandLineToArgvW(lpCmdLine, &argc));
|
||||
static boo::SystemChar selfPath[1024];
|
||||
GetModuleFileNameW(nullptr, selfPath, 1024);
|
||||
static const boo::SystemChar* booArgv[32] = {};
|
||||
|
@ -622,6 +624,6 @@ int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR lpCmdLine, int)
|
|||
booArgv[i+1] = argv[i];
|
||||
|
||||
logvisor::CreateWin32Console();
|
||||
return wmain(argc+1, booArgv);
|
||||
return wmain(argc + 1, booArgv);
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue