diff --git a/EU07.cpp b/EU07.cpp index 4b2653f6..823b3be8 100644 --- a/EU07.cpp +++ b/EU07.cpp @@ -90,7 +90,7 @@ void screenshot_save_thread( char *img ) perf = ts.tv_nsec; #endif - std::string filename = "screenshots/" + std::string(datetime) + + std::string filename = Global::screenshot_dir + "/" + std::string(datetime) + "_" + std::to_string(perf) + ".png"; if (png_image_write_to_file(&png, filename.c_str(), 0, img, -Global::iWindowWidth * 3, nullptr) == 1) @@ -186,7 +186,7 @@ void key_callback( GLFWwindow *window, int key, int scancode, int action, int mo switch( key ) { - case GLFW_KEY_F11: { + case GLFW_KEY_PRINT_SCREEN: { make_screenshot(); break; } diff --git a/Globals.cpp b/Globals.cpp index 302e9c87..66ea9a06 100644 --- a/Globals.cpp +++ b/Globals.cpp @@ -178,6 +178,8 @@ Global::soundmode_t Global::soundpitchmode = Global::linear; Global::soundmode_t Global::soundgainmode = Global::linear; Global::soundstopmode_t Global::soundstopmode = Global::queue; +std::string Global::screenshot_dir = "screenshots"; + //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- @@ -808,6 +810,11 @@ void Global::ConfigParse(cParser &Parser) Parser >> Global::motiontelemetry_conf.latposbased; Parser >> Global::motiontelemetry_conf.axlebumpscale; } + else if (token == "screenshotsdir") + { + Parser.getTokens(1); + Parser >> Global::screenshot_dir; + } } while ((token != "") && (token != "endconfig")); //(!Parser->EndOfFile) // na koniec trochę zależności if (!bLoadTraction) // wczytywanie drutów i słupów diff --git a/Globals.h b/Globals.h index c86f454f..0d2ce375 100644 --- a/Globals.h +++ b/Globals.h @@ -321,6 +321,8 @@ public: static opengl_light DayLight; + static std::string screenshot_dir; + enum soundmode_t { linear, diff --git a/windows.cpp b/windows.cpp index fe96b241..0bdc061e 100644 --- a/windows.cpp +++ b/windows.cpp @@ -68,23 +68,26 @@ LRESULT APIENTRY WndProc( HWND hWnd, // handle for this window } case WM_KEYDOWN: case WM_KEYUP: { - if (wParam == VK_INSERT || wParam == VK_DELETE || wParam == VK_HOME || wParam == VK_END || wParam == VK_PRIOR || wParam == VK_NEXT) + if (wParam == VK_INSERT || wParam == VK_DELETE || wParam == VK_HOME || wParam == VK_END || + wParam == VK_PRIOR || wParam == VK_NEXT || wParam == VK_SNAPSHOT) lParam &= ~0x1ff0000; - if (wParam == VK_INSERT) + if (wParam == VK_INSERT) lParam |= 0x152 << 16; - if (wParam == VK_DELETE) + else if (wParam == VK_DELETE) lParam |= 0x153 << 16; - if (wParam == VK_HOME) + else if (wParam == VK_HOME) lParam |= 0x147 << 16; - if (wParam == VK_END) + else if (wParam == VK_END) lParam |= 0x14F << 16; - if (wParam == VK_PRIOR) + else if (wParam == VK_PRIOR) lParam |= 0x149 << 16; - if (wParam == VK_NEXT) + else if (wParam == VK_NEXT) lParam |= 0x151 << 16; + else if (wParam == VK_SNAPSHOT) + lParam |= 0x137 << 16; break; } } - // pass all unhandled messages to DefWindowProc + // pass all messages to DefWindowProc return CallWindowProc( BaseWindowProc, Hwnd, uMsg, wParam, lParam ); };