MCPcopy Create free account
hub / github.com/OneLoneCoder/olcPixelGameEngine / olc_UpdateViewport

Method olc_UpdateViewport

olcPixelGameEngine.h:4517–4549  ·  view source on GitHub ↗

Externalised API

Source from the content-addressed store, hash-verified

4515
4516 // Externalised API
4517 void PixelGameEngine::olc_UpdateViewport()
4518 {
4519 if (bRealWindowMode)
4520 {
4521 vPixelSize = { 1,1 };
4522 vViewSize = vScreenSize;
4523 vViewPos = { 0,0 };
4524 return;
4525 }
4526
4527 int32_t ww = vScreenSize.x * vPixelSize.x;
4528 int32_t wh = vScreenSize.y * vPixelSize.y;
4529 float wasp = (float)ww / (float)wh;
4530
4531 if (bPixelCohesion)
4532 {
4533 vScreenPixelSize = (vWindowSize / vScreenSize);
4534 vViewSize = (vWindowSize / vScreenSize) * vScreenSize;
4535 }
4536 else
4537 {
4538 vViewSize.x = (int32_t)vWindowSize.x;
4539 vViewSize.y = (int32_t)((float)vViewSize.x / wasp);
4540
4541 if (vViewSize.y > vWindowSize.y)
4542 {
4543 vViewSize.y = vWindowSize.y;
4544 vViewSize.x = (int32_t)((float)vViewSize.y * wasp);
4545 }
4546 }
4547
4548 vViewPos = (vWindowSize - vViewSize) / 2;
4549 }
4550
4551 void PixelGameEngine::olc_UpdateWindowPos(int32_t x, int32_t y)
4552 {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected