Gosu::Button Gosu::Input::charToId(wchar_t ch) { std::wstring string(1, ch); SDL_Keycode keycode = SDL_GetKeyFromName(wstringToUTF8(string).c_str()); if (keycode == SDLK_UNKNOWN) { return noButton; } else { return Button(SDL_GetScancodeFromKey(keycode)); } }
void FI(saveImageFile)(const Bitmap& bitmap, Gosu::Writer writer, const std::wstring& formatHint) { std::string utf8FormatHint = wstringToUTF8(formatHint); FREE_IMAGE_FORMAT fif = FreeImage_GetFIFFromFilename(utf8FormatHint.c_str()); FIBITMAP* fib = bitmapToFIB(bitmap, fif); FreeImageIO fio = { NULL, WriteProc, SeekProc, TellProc }; FreeImage_SaveToHandle(fif, fib, &fio, &writer); FreeImage_Unload(fib); checkForFreeImageErrors(); }
SndFile(const std::wstring& filename) : file(NULL), reader(buffer.frontReader()) { info.format = 0; #ifdef GOSU_IS_WIN loadFile(buffer, filename); file = sf_open_virtual(ioInterface(), SFM_READ, &info, this); #else file = sf_open(wstringToUTF8(filename).c_str(), SFM_READ, &info); #endif if (!file) throw std::runtime_error(std::string(sf_strerror(NULL))); }
void FI(loadImageFile)(Bitmap& bitmap, const std::wstring& filename) { #ifdef GOSU_IS_WIN FREE_IMAGE_FORMAT fif = FreeImage_GetFileTypeU(filename.c_str()); FIBITMAP* fib = FreeImage_LoadU(fif, filename.c_str(), GOSU_FIFLAGS); #else std::string utf8Filename = wstringToUTF8(filename); FREE_IMAGE_FORMAT fif = FreeImage_GetFileType(utf8Filename.c_str()); FIBITMAP* fib = FreeImage_Load(fif, utf8Filename.c_str(), GOSU_FIFLAGS); #endif checkForFreeImageErrors(fib != 0); fibToBitmap(bitmap, fib, fif); }
void FI(saveImageFile)(const Bitmap& bitmap, const std::wstring& filename) { std::string utf8Filename = wstringToUTF8(filename); FREE_IMAGE_FORMAT fif = FreeImage_GetFIFFromFilename(utf8Filename.c_str()); FIBITMAP* fib = bitmapToFIB(bitmap, fif); #ifdef GOSU_IS_WIN FreeImage_SaveU(fif, fib, filename.c_str()); #else FreeImage_Save(fif, fib, utf8Filename.c_str()); #endif FreeImage_Unload(fib); checkForFreeImageErrors(); }