| Zeile 22: | Zeile 22: | ||
clear_to_color(screen, makecol(0, 0, 0)); | clear_to_color(screen, makecol(0, 0, 0)); | ||
| + | |||
| + | return 0; | ||
} | } | ||
</c> | </c> | ||
| Zeile 44: | Zeile 46: | ||
clear_to_color(screen, makecol(0, 0, 0)); | clear_to_color(screen, makecol(0, 0, 0)); | ||
| − | int i = 0,k = 0; | + | int i = 0, k = 0; |
for(i = 0; i < 256; ++i) | for(i = 0; i < 256; ++i) | ||
| Zeile 50: | Zeile 52: | ||
for(k = 0; k < 256; ++k) | for(k = 0; k < 256; ++k) | ||
{ | { | ||
| + | //screen ist der Bildschirm, makecol bildet eine Farbe aus dem angegebenen RGB-Wert | ||
putpixel(screen, i, k, makecol(i, k, i)); | putpixel(screen, i, k, makecol(i, k, i)); | ||
} | } | ||
} | } | ||
| + | |||
| + | //Auf einen Tastendruck warten, damit das Bild nicht gleich verschwindet | ||
| + | readkey(); | ||
| + | |||
| + | return 0; | ||
| + | } | ||
| + | </c> | ||
| + | |||
| + | So weit, so gut. Wenn man dieses Programm ausprobiert (dazu braucht man Allegro und man muss mit dem Schalter -lalleg kompilieren), kann man sehen, wie der Farbverlauf Spalte für Spalte aufgebaut wird. Ab und zu ein ganz netter Anblick, aber für produktives Arbeiten nicht gerade hilfreich. | ||
| + | |||
| + | Nun das gleiche Beispiel mit einem zweiten Puffer (Bilder werden in Allegro als "BITMAP" gespeichert): | ||
| + | <c> | ||
| + | #include <allegro.h> | ||
| + | |||
| + | int main(int argc, char **argv) | ||
| + | { | ||
| + | allegro_init(); | ||
| + | install_keyboard(); | ||
| + | |||
| + | set_color_depth(32); | ||
| + | set_gfx_mode(GFX_AUTODETECT_WINDOWED, 256, 256, 0, 0); | ||
| + | |||
| + | clear_to_color(screen, makecol(0, 0, 0)); | ||
| + | |||
| + | int i = 0, k = 0; | ||
| + | |||
| + | //Puffer für das Bild erstellen | ||
| + | BITMAP *buffer = create_bitmap(SCREEN_W, SCREEN_H); | ||
| + | |||
| + | for(i = 0; i < 256; ++i) | ||
| + | { | ||
| + | for(k = 0; k < 256; ++k) | ||
| + | { | ||
| + | //Nun nicht mehr auf den Bildschirm, sondern in den Puffer zeichnen | ||
| + | putpixel(buffer, i, k, makecol(i, k, i)); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | //Den Puffer darstellen | ||
| + | blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); | ||
| + | |||
| + | readkey(); | ||
| + | |||
| + | return 0; | ||
} | } | ||
</c> | </c> | ||
| + | |||
| + | Nun sollte das Bild auf ein Mal erscheinen. | ||