| Эмуляция > Эмуляторы консолей 1-4 поколений |
| Cохранение скриншота в буфер для Gens rerecording (С++) |
| (1/1) |
| feos:
http://code.google.com/p/gens-rerecording/source/browse/trunk/%20gens-rerecording/Gens/scrshot.cpp#181 Такой функции еще нет, но страсть как хочется иметь. Пытался вникнуть, какие данные слать в SetClipboardData. Сказали, что туда только объект HBITMAP можно совать, а его пока нет в коде. Зато файлы ПНГ и БМП каким-то образом создаются из данных в памяти, связанных с Dest (не HBITMAP, просто unsigned char). В свою очередь, получить объект HBITMAP можно через CreateDIBitmap. Но непонятно, где брать параметры для нее. Есть функция WRITE_FRAME_TO_SRC, но непонятно опять же, куда она сохраняет пригодный для переработки битмап. |
| ToXyS:
Dest и есть Bitmap. Вот к примеру обьявление его сигнатуры: --- Код: --- Dest[0] = 'B'; Dest[1] = 'M'; Dest[2] = (unsigned char) ((i >> 0) & 0xFF); Dest[3] = (unsigned char) ((i >> 8) & 0xFF); Dest[4] = (unsigned char) ((i >> 16) & 0xFF); Dest[5] = (unsigned char) ((i >> 24) & 0xFF); Dest[6] = Dest[7] = Dest[8] = Dest[9] = 0; Dest[10] = 54; Dest[11] = Dest[12] = Dest[13] = 0; --- Конец кода --- Вот BMP пишется в файл: --- Код: --- if(!ShotPNGFormat) fwrite(Dest-54, (X * Y * 3) + 54, 1, ScrShot_File); // save BMP --- Конец кода --- Собственно параметры нужно брать из Dest. Кое какая информация по структуре BITMAPINFOHEADER, необходимого для вызова CreateDIBitmap: http://vsokovikov.narod.ru/New_MSDN_API/Bitmaps/str_bitmapinfoheader.htm. |
| Навигация |
| Главная страница сообщений |