bool XboxController::WasButtonHeldForMs(XboxButtons buttonType, WORD buttonState, int milliseconds) { if (IsButtonJustPressed(buttonType, buttonState)) { pressTime[buttonType] = milliseconds_now(); } if (IsButtonJustReleased(buttonType, buttonState)) { releaseTime[buttonType] = milliseconds_now(); } if ((releaseTime[buttonType] - pressTime[buttonType]) >= milliseconds) { pressTime[buttonType] = 0; releaseTime[buttonType] = 0; return true; } return false; }
int main() { int number_iterations = 1000; unsigned int width = 1920; unsigned int hight = 1080; char* image = new char[width * hight]; //ZeroMemory(image, width * hight); char* imageDest = new char[width * hight]; //ZeroMemory(imageDest, width * hight); //image[0] = 0x55; __int64 *image64 = (__int64*)image; __int64 *imageDesc64 = (__int64*)imageDest; long long start = 0; long long end = 0; start = milliseconds_now(); for (size_t i = 0; i < number_iterations; i++) { int lenght64 = (width * hight) / sizeof(__int64); while (lenght64--) { imageDesc64[lenght64] ^= image64[lenght64]; } } end = milliseconds_now(); std::cout << "Pointer 64---:" << end - start << "ms." << std::endl; //image[1] = 0xAA; start = milliseconds_now(); for (size_t i = 0; i < number_iterations; i++) { int lenght = (width * hight); while (lenght--) { imageDest[lenght] ^= image[lenght]; } } end = milliseconds_now(); std::cout << "Pointer 8:" << end - start << "ms." << std::endl; return 0; }
void Engine::Renderer::mainLoop(GameLoop *gameLoop) { MSG msg; long long startTime, currentTime, newTime, frameTime; long long accumulator = 0; long long dt = 16; if (gameLoop == NULL) { MessageBox(NULL, TEXT("Wrong GameLoop"), TEXT(__FILE__), MB_OK); abort(); } _stopLoop = FALSE; gameLoop->reshape(_width, _height); startTime = milliseconds_now(); currentTime = milliseconds_now() - startTime; while (!_stopLoop) { while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); switch (msg.message) { case WM_QUIT: _stopLoop = TRUE; break; } } newTime = milliseconds_now() - startTime; frameTime = newTime - currentTime; currentTime = newTime; for (accumulator += frameTime; accumulator >= dt; accumulator -= dt) gameLoop->idle(currentTime); gameLoop->display((FLOAT)accumulator / dt); _pSwapChain->Present(0, 0); } }