99int main(
int argc,
char **argv)
101#if defined(EVENGINE_WINDOWS) || defined(_WIN32)
102 SetUnhandledExceptionFilter(&eveCrashHandler);
105 const char *testCrash = std::getenv(
"EVE_TEST_CRASH");
106 if (testCrash && testCrash[0] !=
'\0' && testCrash[0] !=
'0') {
107 std::fprintf(stderr,
"[crash] EVE_TEST_CRASH: forcing an access violation\n");
108 *
static_cast<volatile int *
>(
nullptr) = 0;
111 const auto tMain = std::chrono::steady_clock::now();
112 std::fprintf(stderr,
"[startup] static-init -> main(): %.1f ms\n",
113 std::chrono::duration<double, std::milli>(tMain - gEveStaticInitStart).count());
114 std::fprintf(stderr,
"[startup] process clock() at main(): %.1f ms\n",
115 (
double) std::clock() * 1000.0 / (
double) CLOCKS_PER_SEC);
116#if defined(EVENGINE_IOS)
119 static std::string gamePath;
120 static std::vector<char *> injected;
122 gamePath = eve::ios::getGameDirectory();
123 if (gamePath.empty())
125 static char runFlag[] =
"run";
126 injected = {argv[0], runFlag, gamePath.data()};
127 argc =
static_cast<int>(injected.size());
128 argv = injected.data();
130 eve::ios::initAudioSessionInterruptionHandler();
131#elif defined(EVENGINE_WEBGPU)
134 static std::string gamePath;
135 static std::vector<char *> injected;
137 gamePath = eve::webgpu_platform::getGameDirectory();
138 if (gamePath.empty())
140 static char runFlag[] =
"run";
141 injected = {argv[0], runFlag, gamePath.data()};
142 argc =
static_cast<int>(injected.size());
143 argv = injected.data();
int main(int argc, char **argv)