diff --git a/projects/msvc/GLideN64.vcxproj b/projects/msvc/GLideN64.vcxproj index 4a8898a6..66435e12 100644 --- a/projects/msvc/GLideN64.vcxproj +++ b/projects/msvc/GLideN64.vcxproj @@ -398,6 +398,9 @@ copy /Y "$(OutDir)$(TargetName).*" "$(Mupen64PluginsDir_x64)") true + + true + true diff --git a/projects/msvc/GLideN64.vcxproj.filters b/projects/msvc/GLideN64.vcxproj.filters index e94f737d..9209c2e6 100644 --- a/projects/msvc/GLideN64.vcxproj.filters +++ b/projects/msvc/GLideN64.vcxproj.filters @@ -145,6 +145,9 @@ Source Files\windows + + + Source Files\windows Source Files\windows diff --git a/projects/msvc/GLideNUI-wtl.vcxproj b/projects/msvc/GLideNUI-wtl.vcxproj index 6a034119..6d709494 100644 --- a/projects/msvc/GLideNUI-wtl.vcxproj +++ b/projects/msvc/GLideNUI-wtl.vcxproj @@ -107,7 +107,6 @@ - diff --git a/projects/msvc/GLideNUI-wtl.vcxproj.filters b/projects/msvc/GLideNUI-wtl.vcxproj.filters index 986b2f31..bd56d47e 100644 --- a/projects/msvc/GLideNUI-wtl.vcxproj.filters +++ b/projects/msvc/GLideNUI-wtl.vcxproj.filters @@ -66,9 +66,6 @@ Source Files - - Source Files - Source Files diff --git a/projects/msvc/GLideNUI.vcxproj b/projects/msvc/GLideNUI.vcxproj index d6a1c073..7e3bf6f9 100644 --- a/projects/msvc/GLideNUI.vcxproj +++ b/projects/msvc/GLideNUI.vcxproj @@ -127,7 +127,6 @@ true - diff --git a/projects/msvc/GLideNUI.vcxproj.filters b/projects/msvc/GLideNUI.vcxproj.filters index 614be9ef..c0508e0d 100644 --- a/projects/msvc/GLideNUI.vcxproj.filters +++ b/projects/msvc/GLideNUI.vcxproj.filters @@ -69,9 +69,6 @@ Source Files - - Source Files - Source Files diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 37725c96..9869a0fe 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -128,7 +128,6 @@ set(GLideNUI_SOURCES GLideNUI/ConfigDialog.cpp GLideNUI/Config_GLideNUI.cpp GLideNUI/GLideNUI.cpp - GLideNUI/ScreenShot.cpp GLideNUI/Settings.cpp GLideNUI/QtKeyToHID.cpp GLideNUI/HIDKeyToName.cpp @@ -223,6 +222,7 @@ else(MUPENPLUSAPI) windows/GLideN64_windows.cpp windows/MemoryStatus_windows.cpp windows/ZilmarAPIImpl_windows.cpp + windows/ScreenShot.cpp Graphics/OpenGLContext/windows/windows_DisplayWindow.cpp Graphics/OpenGLContext/windows/WindowsWGL.cpp ${GLideNUI_SOURCES} diff --git a/src/GLideNUI-wtl/GLideNUI.h b/src/GLideNUI-wtl/GLideNUI.h index fba02c6c..a5aff8d9 100644 --- a/src/GLideNUI-wtl/GLideNUI.h +++ b/src/GLideNUI-wtl/GLideNUI.h @@ -19,7 +19,6 @@ EXPORT bool CALL RunConfig(const wchar_t * _strFileName, const char * _romName, EXPORT int CALL RunAbout(const wchar_t * _strFileName); EXPORT void CALL LoadConfig(const wchar_t * _strFileName); EXPORT void CALL LoadCustomRomSettings(const wchar_t * _strFileName, const char * _romName); -EXPORT void CALL SaveScreenshot(const wchar_t * _folder, const char * _name, int _width, int _height, const unsigned char * _data); #if defined(__cplusplus) } diff --git a/src/GLideNUI/GLideNUI.h b/src/GLideNUI/GLideNUI.h index 2fa41c57..72969a69 100644 --- a/src/GLideNUI/GLideNUI.h +++ b/src/GLideNUI/GLideNUI.h @@ -19,7 +19,6 @@ EXPORT bool CALL RunConfig(const wchar_t * _strFileName, const char * _romName, EXPORT int CALL RunAbout(const wchar_t * _strFileName); EXPORT void CALL LoadConfig(const wchar_t * _strFileName); EXPORT void CALL LoadCustomRomSettings(const wchar_t * _strFileName, const char * _romName); -EXPORT void CALL SaveScreenshot(const wchar_t * _folder, const char * _name, int _width, int _height, const unsigned char * _data); #if defined(__cplusplus) } diff --git a/src/GLideNUI/ScreenShot.cpp b/src/GLideNUI/ScreenShot.cpp deleted file mode 100644 index 9b9be3b4..00000000 --- a/src/GLideNUI/ScreenShot.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include -#include -#include -#include "GLideNUI.h" - -#include "../Config.h" - -EXPORT void CALL SaveScreenshot(const wchar_t * _folder, const char * _name, int _width, int _height, const unsigned char * _data) -{ - const char * png = "png"; - const char * jpg = "jpg"; - const char * fileExt = config.texture.screenShotFormat == 0 ? png : jpg; - QString folderName = QString::fromWCharArray(_folder); - QDir folder; - if (!folder.exists(folderName) && !folder.mkpath(folderName)) - return; - - QString romName(_name); - romName = romName.replace(' ', '_'); - romName = romName.replace(':', ';'); - QString fileName; - int i; - for (i = 0; i < 1000; ++i) { - fileName = fileName.asprintf("%lsGLideN64_%ls_%03i.%s", folderName.data(), romName.data(), i, fileExt); - QFile f(fileName); - if (!f.exists()) - break; - } - if (i == 1000) - return; - QImage image(_data, _width, _height, QImage::Format_RGB888); - QImageWriter writer(fileName, fileExt); - writer.write(image.mirrored()); -} diff --git a/src/Graphics/OpenGLContext/windows/windows_DisplayWindow.cpp b/src/Graphics/OpenGLContext/windows/windows_DisplayWindow.cpp index 35563f2f..e138040e 100644 --- a/src/Graphics/OpenGLContext/windows/windows_DisplayWindow.cpp +++ b/src/Graphics/OpenGLContext/windows/windows_DisplayWindow.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include using namespace opengl; diff --git a/src/GLideNUI-wtl/ScreenShot.cpp b/src/windows/ScreenShot.cpp similarity index 92% rename from src/GLideNUI-wtl/ScreenShot.cpp rename to src/windows/ScreenShot.cpp index 8a0e21a3..df7d2e80 100644 --- a/src/GLideNUI-wtl/ScreenShot.cpp +++ b/src/windows/ScreenShot.cpp @@ -1,7 +1,6 @@ -#include "GLideNUI.h" -#include "../Config.h" -#include "util/util.h" #include + +#include "Config.h" #include "../GLideNHQ/inc/png.h" void write_png_file(const wchar_t * file_name, int width, int height, const uint8_t *buffer) @@ -77,7 +76,7 @@ void write_png_file(const wchar_t * file_name, int width, int height, const uint fclose(fp); } -EXPORT void CALL SaveScreenshot(const wchar_t * _folder, const char * _name, int _width, int _height, const unsigned char * _data) +void SaveScreenshot(const wchar_t * _folder, const char * _name, int _width, int _height, const unsigned char * _data) { const wchar_t * fileExt = L"png"; @@ -96,7 +95,9 @@ EXPORT void CALL SaveScreenshot(const wchar_t * _folder, const char * _name, int if ((FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) return; - std::wstring romName = ToUTF16(_name); + wchar_t wbuf[MAX_PATH]; + mbstowcs(wbuf, _name, MAX_PATH); + std::wstring romName = std::wstring(wbuf); for (size_t i = 0, n = romName.size(); i < n; i++) { if (romName[i] == L' ') romName[i] = L'_'; if (romName[i] == L':') romName[i] = L';'; diff --git a/src/windows/ScreenShot.h b/src/windows/ScreenShot.h new file mode 100644 index 00000000..43fa251f --- /dev/null +++ b/src/windows/ScreenShot.h @@ -0,0 +1,6 @@ +#ifndef SCREENSHOT_H +#define SCREENSHOT_H + +void SaveScreenshot(const wchar_t * _folder, const char * _name, int _width, int _height, const unsigned char * _data); + +#endif // SCREENSHOT_H