robaczek122 Temat założony przez niniejszego użytkownika |
[Allegro] lekcja 6, screen ekranu » 2010-11-03 15:17:39 W kursie jest linijka: save_bitmap( "ekran.bmp", screen, default_palette );
Da się w jakiś prosty sposób zrobić zrzut całego ekranu np. zastępując "screen" czymś innym? Próbowałem coś z win_get_dc(), ale nie wiem czy idę w złą stronę. |
|
ison |
» 2010-11-03 15:28:23 zakładam że pracujesz na windowsie: blit_from_hdc( GetDC( GetDesktopWindow() ), screen, 0, 0, 0, 0, SCR_W, SCR_H );
zastąp screen jakimś buforem w postaci bitmapy i zapisz ją do pliku |
|
robaczek122 Temat założony przez niniejszego użytkownika |
» 2010-11-04 17:30:00 Dzięki, udało się doprowadzić kod do ładu. Jedno pytanie, dlaczego mamy: GetDC( GetDesktopWindow() )
a nie: Działający kod: #include <allegro.h> #include <winalleg.h> #include <windows.h>
int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) { allegro_init(); install_keyboard(); set_color_depth( 16 ); BITMAP * ekran = NULL; ekran = create_bitmap( 1366, 768 ); if( !ekran ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować ekran!" ); allegro_exit(); return 0; } blit_from_hdc( GetDC( NULL ), ekran, 0, 0, 0, 0, 1000, 768 ); save_bitmap( "test.bmp", ekran, default_palette ); destroy_bitmap( ekran ); allegro_exit(); return( 0 ); }
|
|
pekfos |
» 2010-11-04 18:00:01 po co main winapi? main + END_OF_MAIN() załatwia sprawę. a kod maszynowy ten sam |
|
malan |
» 2010-11-04 19:11:02 << deleted by malan >> |
|
robaczek122 Temat założony przez niniejszego użytkownika |
» 2010-11-04 19:32:40 @pekfos, nie znałem tego rozwiązania, za to to było w starym kursie: http://kursy.ddt.pl/?LessonId=143 |
|
« 1 » |