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