Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro] lekcja 6, screen ekranu

Ostatnio zmodyfikowano 2010-11-04 19:32
Autor Wiadomość
robaczek122
Temat założony przez niniejszego użytkownika
[Allegro] lekcja 6, screen ekranu
» 2010-11-03 15:17:39
W kursie jest linijka:

C/C++
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ę.
P-23520
ison
» 2010-11-03 15:28:23
zakładam że pracujesz na windowsie:
C/C++
blit_from_hdc( GetDC( GetDesktopWindow() ), screen, 0, 0, 0, 0, SCR_W, SCR_H ); //SCR_W i SCR_H to rozmiar ekranu
zastąp screen jakimś buforem w postaci bitmapy i zapisz ją do pliku
P-23522
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:
C/C++
GetDC( GetDesktopWindow() )
a nie:
C/C++
GetDC( NULL )

Działający kod:
C/C++
#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 );
   
   
   
    //readkey();  
    destroy_bitmap( ekran );
   
    allegro_exit();
    return( 0 );
}
P-23531
pekfos
» 2010-11-04 18:00:01
po co main winapi? main + END_OF_MAIN() załatwia sprawę. a kod maszynowy ten sam
P-23532
malan
» 2010-11-04 19:11:02
<< deleted by malan >>
P-23538
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
P-23539
« 1 »
  Strona 1 z 1