24 if (sfs::safeLoad(&wr,
sizeof(wr), PIKA_ENGINE_SAVES_PATH
"windowPos",
false) != sfs::noError)
30 if (wr.
x < 0 || wr.
y < 0 || wr.
z <= 0 || wr.
w <= 0)
44 context.
wind = glfwCreateWindow(wr.
z, wr.
w,
"SamuraiPika", NULL, NULL);
60 context.
wind = SDL_CreateWindow(
"SamuraiPika", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, wr.
z, wr.
w, SDL_WINDOW_RESIZABLE | SDL_WINDOW_SHOWN);
71 timer = std::chrono::high_resolution_clock::now();
105#pragma region deltaTime
106 auto end = std::chrono::high_resolution_clock::now();
107 input.deltaTime = (std::chrono::duration_cast<std::chrono::microseconds>(end - timer)).count() / 1000000.0f;
110 if (input.deltaTime > 1.f / 10) { input.deltaTime = 1.f / 10; }
120 processInputBefore(input.lMouse);
121 processInputBefore(input.rMouse);
125 processInputBefore(input.buttons[i]);
128 memset(input.typedInput, 0,
sizeof(input.typedInput));
134 glfwSwapBuffers(context.wind);
137 SDL_RenderPresent(context.renderer);
141#pragma region window state
147 glfwGetWindowSize(context.wind, &w, &h);
149 SDL_GetWindowSize(context.wind, &w, &h);
164 glfwGetCursorPos(context.wind, &mouseX, &mouseY);
166 SDL_GetMouseState((
int*)&mouseX, (
int*)&mouseY);
168 input.mouseX = (int)mouseX;
169 input.mouseY = (int)mouseY;
174 if (!b.lastState() && b.held())
184 if (b.lastState() && !b.held())
190 b.setReleased(
false);
193 b.setLastState(b.held());
197 processInput(input.lMouse);
198 processInput(input.rMouse);
202 processInput(input.buttons[i]);
samurai::memory::CustomAllocator imguiAllocator