bugfix
This commit is contained in:
parent
3b5ae0c3a1
commit
02f0e58631
@ -70,7 +70,7 @@ namespace idk::mono
|
||||
auto klass = Raw();
|
||||
auto end_klass = envi.Type("Object")->Raw();
|
||||
|
||||
while (klass != end_klass)
|
||||
while (klass && klass != end_klass)
|
||||
{
|
||||
for (void* itr = nullptr; auto method = mono_class_get_methods(klass, &itr);)
|
||||
{
|
||||
|
||||
@ -68,8 +68,8 @@ std::optional<std::wstring_view> GetArgValue(std::wstring_view arg, LPWSTR* args
|
||||
{
|
||||
std::wstring_view incoming = args[i];
|
||||
auto val_start = incoming.find_first_of(':');
|
||||
if(val_start!=incoming.npos && incoming.substr(0,val_start)==arg)
|
||||
result = incoming.substr(val_start+1);
|
||||
if (val_start != incoming.npos && incoming.substr(0, val_start) == arg)
|
||||
result = incoming.substr(val_start + 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -90,9 +90,9 @@ LRESULT ProcessAltTab(idk::Windows& win)//, HWND hwnd, UINT msg, WPARAM wParam,
|
||||
void MinimizeOnAltTab(idk::Windows& windows)
|
||||
{
|
||||
static auto on_alt_tab = [&windows]()->LRESULT//HWND hwnd, UINT msg, WPARAM wParam, [[maybe_unused]] LPARAM lParam) -> LRESULT
|
||||
{
|
||||
return ProcessAltTab(windows);// , hwnd, msg, wParam, lParam);
|
||||
};
|
||||
{
|
||||
return ProcessAltTab(windows);// , hwnd, msg, wParam, lParam);
|
||||
};
|
||||
windows.OnFocusLost.Listen(on_alt_tab);
|
||||
}
|
||||
namespace idk::mt::hack
|
||||
@ -156,7 +156,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
|
||||
auto& sys = c->AddSystem<vkn::VulkanWin32GraphicsSystem>();
|
||||
if (HasArg(L"--simulate", command_lines, num_args))
|
||||
{
|
||||
vkn::ExtraConfigs ec{ .enable_simulation=true };
|
||||
vkn::ExtraConfigs ec{ .enable_simulation = true };
|
||||
sys.SetExtraConfigs(ec);
|
||||
}
|
||||
gSys = &sys;
|
||||
@ -185,9 +185,9 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
|
||||
Core::GetSystem<LogSystem>().SetLogDir(idk_app_data.string());
|
||||
|
||||
c->Init();
|
||||
|
||||
auto project_dir = string{ Core::GetSystem<FileSystem>().GetExeDir() } +"/project/hydeandseek.idk";
|
||||
auto data_dir = string{ Core::GetSystem<FileSystem>().GetExeDir() };
|
||||
auto exedir = Core::GetSystem<FileSystem>().GetExeDir();
|
||||
auto project_dir = string{ exedir } + "/testproj/testproj.idk";
|
||||
auto data_dir = string{ exedir };
|
||||
auto arg_proj = GetArgValue(L"--project", command_lines, num_args);
|
||||
auto arg_data = GetArgValue(L"--engine", command_lines, num_args);
|
||||
if (arg_proj)
|
||||
@ -209,7 +209,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
|
||||
data_dir = derp;
|
||||
}
|
||||
auto& filesys = Core::GetSystem<FileSystem>();
|
||||
filesys.Mount(string{ data_dir } + "/engine_data", "/engine_data", false);
|
||||
filesys.Mount(string{ data_dir } + "/engine/engine_data", "/engine_data", false);
|
||||
|
||||
Core::GetSystem<ProjectManager>().LoadProject(project_dir);
|
||||
|
||||
@ -248,7 +248,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
|
||||
Core::GetResourceManager().RegisterLoader<GraphLoader>(shadergraph::Graph::ext);
|
||||
Core::GetResourceManager().RegisterFactory<GraphFactory>();
|
||||
|
||||
filesys.Mount(string{ data_dir } +"/editor_data", "/editor_data", false);
|
||||
filesys.Mount(string{ exedir } + "/engine/editor_data", "/editor_data", false);
|
||||
if (shadergraph::NodeTemplate::GetTable().empty())
|
||||
shadergraph::NodeTemplate::LoadTable("/editor_data/nodes");
|
||||
|
||||
@ -305,7 +305,7 @@ ManagedErrorString::ManagedErrorString(DWORD NTStatusMessage, ...)
|
||||
&list);
|
||||
|
||||
}
|
||||
ManagedErrorString::ManagedErrorString(DWORD NTStatusMessage, int count , DWORD_PTR* test )
|
||||
ManagedErrorString::ManagedErrorString(DWORD NTStatusMessage, int count, DWORD_PTR* test)
|
||||
{
|
||||
Hand = LoadLibrary(L"NTDLL.DLL");
|
||||
|
||||
@ -330,7 +330,7 @@ std::wstring GetReadFlag(DWORD flag)
|
||||
}
|
||||
std::wstring AccessViolationDesc(const _EXCEPTION_RECORD& record)
|
||||
{
|
||||
ManagedErrorString err{ record.ExceptionCode ,0};
|
||||
ManagedErrorString err{ record.ExceptionCode ,0 };
|
||||
auto flag_msg = GetReadFlag(record.ExceptionInformation[0]);
|
||||
if (err.numChars)
|
||||
{
|
||||
@ -338,22 +338,22 @@ std::wstring AccessViolationDesc(const _EXCEPTION_RECORD& record)
|
||||
do
|
||||
{
|
||||
|
||||
std::wstring result(estimated_size+1,L' ');
|
||||
std::wstring result(estimated_size + 1, L' ');
|
||||
|
||||
int numCharsWritten = std::swprintf(result.data(), result.size(), err.lpMessageBuffer, record.ExceptionAddress, record.ExceptionInformation[1], flag_msg.c_str());
|
||||
if (numCharsWritten > 0)
|
||||
{
|
||||
result.resize(numCharsWritten);
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
auto lower_bound = estimated_size;
|
||||
lower_bound = 1;
|
||||
estimated_size = std::max(estimated_size, lower_bound);
|
||||
estimated_size *= 2;
|
||||
continue;
|
||||
}
|
||||
int numCharsWritten = std::swprintf(result.data(), result.size(), err.lpMessageBuffer, record.ExceptionAddress, record.ExceptionInformation[1], flag_msg.c_str());
|
||||
if (numCharsWritten > 0)
|
||||
{
|
||||
result.resize(numCharsWritten);
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
auto lower_bound = estimated_size;
|
||||
lower_bound = 1;
|
||||
estimated_size = std::max(estimated_size, lower_bound);
|
||||
estimated_size *= 2;
|
||||
continue;
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
return L"";
|
||||
@ -369,29 +369,29 @@ std::wstring GetErrorString(const _EXCEPTION_RECORD& record)
|
||||
codeName = L"Non-System Exception";
|
||||
sdescription = ((std::exception*)record.ExceptionInformation[1])->what();
|
||||
break;
|
||||
case EXCEPTION_ACCESS_VIOLATION : codeName = L"EXCEPTION_ACCESS_VIOLATION "; description = AccessViolationDesc(record); break;
|
||||
case EXCEPTION_DATATYPE_MISALIGNMENT : codeName = L"EXCEPTION_DATATYPE_MISALIGNMENT "; break;
|
||||
case EXCEPTION_BREAKPOINT : codeName = L"EXCEPTION_BREAKPOINT "; break;
|
||||
case EXCEPTION_SINGLE_STEP : codeName = L"EXCEPTION_SINGLE_STEP "; break;
|
||||
case EXCEPTION_ARRAY_BOUNDS_EXCEEDED : codeName = L"EXCEPTION_ARRAY_BOUNDS_EXCEEDED "; break;
|
||||
case EXCEPTION_FLT_DENORMAL_OPERAND : codeName = L"EXCEPTION_FLT_DENORMAL_OPERAND "; break;
|
||||
case EXCEPTION_FLT_DIVIDE_BY_ZERO : codeName = L"EXCEPTION_FLT_DIVIDE_BY_ZERO "; break;
|
||||
case EXCEPTION_FLT_INEXACT_RESULT : codeName = L"EXCEPTION_FLT_INEXACT_RESULT "; break;
|
||||
case EXCEPTION_FLT_INVALID_OPERATION : codeName = L"EXCEPTION_FLT_INVALID_OPERATION "; break;
|
||||
case EXCEPTION_FLT_OVERFLOW : codeName = L"EXCEPTION_FLT_OVERFLOW "; break;
|
||||
case EXCEPTION_FLT_STACK_CHECK : codeName = L"EXCEPTION_FLT_STACK_CHECK "; break;
|
||||
case EXCEPTION_FLT_UNDERFLOW : codeName = L"EXCEPTION_FLT_UNDERFLOW "; break;
|
||||
case EXCEPTION_INT_DIVIDE_BY_ZERO : codeName = L"EXCEPTION_INT_DIVIDE_BY_ZERO "; break;
|
||||
case EXCEPTION_INT_OVERFLOW : codeName = L"EXCEPTION_INT_OVERFLOW "; break;
|
||||
case EXCEPTION_PRIV_INSTRUCTION : codeName = L"EXCEPTION_PRIV_INSTRUCTION "; break;
|
||||
case EXCEPTION_IN_PAGE_ERROR : codeName = L"EXCEPTION_IN_PAGE_ERROR "; break;
|
||||
case EXCEPTION_ILLEGAL_INSTRUCTION : codeName = L"EXCEPTION_ILLEGAL_INSTRUCTION "; break;
|
||||
case EXCEPTION_NONCONTINUABLE_EXCEPTION : codeName = L"EXCEPTION_NONCONTINUABLE_EXCEPTION "; break;
|
||||
case EXCEPTION_STACK_OVERFLOW : codeName = L"EXCEPTION_STACK_OVERFLOW "; break;
|
||||
case EXCEPTION_INVALID_DISPOSITION : codeName = L"EXCEPTION_INVALID_DISPOSITION "; break;
|
||||
case EXCEPTION_GUARD_PAGE : codeName = L"EXCEPTION_GUARD_PAGE "; break;
|
||||
case EXCEPTION_INVALID_HANDLE : codeName = L"EXCEPTION_INVALID_HANDLE "; break;
|
||||
case CONTROL_C_EXIT : codeName = L"CONTROL_C_EXIT "; break;
|
||||
case EXCEPTION_ACCESS_VIOLATION: codeName = L"EXCEPTION_ACCESS_VIOLATION "; description = AccessViolationDesc(record); break;
|
||||
case EXCEPTION_DATATYPE_MISALIGNMENT: codeName = L"EXCEPTION_DATATYPE_MISALIGNMENT "; break;
|
||||
case EXCEPTION_BREAKPOINT: codeName = L"EXCEPTION_BREAKPOINT "; break;
|
||||
case EXCEPTION_SINGLE_STEP: codeName = L"EXCEPTION_SINGLE_STEP "; break;
|
||||
case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: codeName = L"EXCEPTION_ARRAY_BOUNDS_EXCEEDED "; break;
|
||||
case EXCEPTION_FLT_DENORMAL_OPERAND: codeName = L"EXCEPTION_FLT_DENORMAL_OPERAND "; break;
|
||||
case EXCEPTION_FLT_DIVIDE_BY_ZERO: codeName = L"EXCEPTION_FLT_DIVIDE_BY_ZERO "; break;
|
||||
case EXCEPTION_FLT_INEXACT_RESULT: codeName = L"EXCEPTION_FLT_INEXACT_RESULT "; break;
|
||||
case EXCEPTION_FLT_INVALID_OPERATION: codeName = L"EXCEPTION_FLT_INVALID_OPERATION "; break;
|
||||
case EXCEPTION_FLT_OVERFLOW: codeName = L"EXCEPTION_FLT_OVERFLOW "; break;
|
||||
case EXCEPTION_FLT_STACK_CHECK: codeName = L"EXCEPTION_FLT_STACK_CHECK "; break;
|
||||
case EXCEPTION_FLT_UNDERFLOW: codeName = L"EXCEPTION_FLT_UNDERFLOW "; break;
|
||||
case EXCEPTION_INT_DIVIDE_BY_ZERO: codeName = L"EXCEPTION_INT_DIVIDE_BY_ZERO "; break;
|
||||
case EXCEPTION_INT_OVERFLOW: codeName = L"EXCEPTION_INT_OVERFLOW "; break;
|
||||
case EXCEPTION_PRIV_INSTRUCTION: codeName = L"EXCEPTION_PRIV_INSTRUCTION "; break;
|
||||
case EXCEPTION_IN_PAGE_ERROR: codeName = L"EXCEPTION_IN_PAGE_ERROR "; break;
|
||||
case EXCEPTION_ILLEGAL_INSTRUCTION: codeName = L"EXCEPTION_ILLEGAL_INSTRUCTION "; break;
|
||||
case EXCEPTION_NONCONTINUABLE_EXCEPTION: codeName = L"EXCEPTION_NONCONTINUABLE_EXCEPTION "; break;
|
||||
case EXCEPTION_STACK_OVERFLOW: codeName = L"EXCEPTION_STACK_OVERFLOW "; break;
|
||||
case EXCEPTION_INVALID_DISPOSITION: codeName = L"EXCEPTION_INVALID_DISPOSITION "; break;
|
||||
case EXCEPTION_GUARD_PAGE: codeName = L"EXCEPTION_GUARD_PAGE "; break;
|
||||
case EXCEPTION_INVALID_HANDLE: codeName = L"EXCEPTION_INVALID_HANDLE "; break;
|
||||
case CONTROL_C_EXIT: codeName = L"CONTROL_C_EXIT "; break;
|
||||
|
||||
default:
|
||||
codeName = L"Unknown Exception";
|
||||
@ -403,8 +403,8 @@ std::wstring GetErrorString(const _EXCEPTION_RECORD& record)
|
||||
stream << sdescription.c_str();
|
||||
else
|
||||
stream << description;
|
||||
stream<< L"\nArgument Values: ";
|
||||
for (auto c = record.NumberParameters; c >0; --c)
|
||||
stream << L"\nArgument Values: ";
|
||||
for (auto c = record.NumberParameters; c > 0; --c)
|
||||
{
|
||||
auto i = record.NumberParameters - c;
|
||||
stream << L"[" << i << L"]: 0x" << std::hex << record.ExceptionInformation[i] << L",";
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
/*template<>
|
||||
struct hash<vk::DescriptorSetLayout>
|
||||
{
|
||||
size_t operator()(const vk::DescriptorSetLayout& dsl)const
|
||||
@ -27,5 +27,5 @@ namespace std
|
||||
{
|
||||
return reinterpret_cast<intptr_t>(s.operator VkSemaphore());
|
||||
}
|
||||
};
|
||||
};*/
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user