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

Method olc_CoreUpdate

olcPixelGameEngine.h:4783–4939  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4781
4782
4783 void PixelGameEngine::olc_CoreUpdate()
4784 {
4785 // Handle Timing
4786 m_tp2 = std::chrono::system_clock::now();
4787 std::chrono::duration<float> elapsedTime = m_tp2 - m_tp1;
4788 m_tp1 = m_tp2;
4789
4790 // Our time per frame coefficient
4791 float fElapsedTime = elapsedTime.count();
4792 fLastElapsed = fElapsedTime;
4793
4794 if (bConsoleSuspendTime)
4795 fElapsedTime = 0.0f;
4796
4797 // Some platforms will need to check for events
4798 platform->HandleSystemEvent();
4799
4800 // Compare hardware input states from previous frame
4801 auto ScanHardware = [&](HWButton* pKeys, bool* pStateOld, bool* pStateNew, uint32_t nKeyCount)
4802 {
4803 for (uint32_t i = 0; i < nKeyCount; i++)
4804 {
4805 pKeys[i].bPressed = false;
4806 pKeys[i].bReleased = false;
4807 if (pStateNew[i] != pStateOld[i])
4808 {
4809 if (pStateNew[i])
4810 {
4811 pKeys[i].bPressed = !pKeys[i].bHeld;
4812 pKeys[i].bHeld = true;
4813 }
4814 else
4815 {
4816 pKeys[i].bReleased = true;
4817 pKeys[i].bHeld = false;
4818 }
4819 }
4820 pStateOld[i] = pStateNew[i];
4821 }
4822 };
4823
4824 ScanHardware(pKeyboardState, pKeyOldState, pKeyNewState, 256);
4825 ScanHardware(pMouseState, pMouseOldState, pMouseNewState, nMouseButtons);
4826
4827 // Cache mouse coordinates so they remain consistent during frame
4828 vMousePos = vMousePosCache;
4829 nMouseWheelDelta = nMouseWheelDeltaCache;
4830 nMouseWheelDeltaCache = 0;
4831
4832 vDroppedFiles = vDroppedFilesCache;
4833 vDroppedFilesPoint = vDroppedFilesPointCache;
4834 vDroppedFilesCache.clear();
4835
4836
4837
4838 // Swap Keypress cache
4839 nKeyPressCacheTarget ^= 0x01;
4840

Callers 2

DrawFunctMethod · 0.80
MainLoopMethod · 0.80

Calls 15

SetDecalModeFunction · 0.85
countMethod · 0.80
OnAfterUserUpdateMethod · 0.80
DecalMethod · 0.80
HandleSystemEventMethod · 0.45
clearMethod · 0.45
OnBeforeUserUpdateMethod · 0.45
UpdateViewportMethod · 0.45
ClearBufferMethod · 0.45
PrepareDrawingMethod · 0.45
ApplyTextureMethod · 0.45
UpdateMethod · 0.45

Tested by

no test coverage detected