Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <allegro5/allegro.h>
- #include <allegro5/allegro_primitives.h>
- #include <allegro5/allegro_ttf.h>
- #include <math.h>
- const float FPS = 60;
- const int SCREEN_W = 640;
- const int SCREEN_H = 480;
- ALLEGRO_FONT *font = NULL;
- double rotate = 0.0;
- void draw_fliping_object()
- {
- ALLEGRO_TRANSFORM trans;
- rotate += 1.0 * (M_PI/180.0);
- al_identity_transform(&trans);
- al_scale_transform(&trans, 2, 2);
- al_hold_bitmap_drawing(true);
- al_draw_text(font, al_map_rgb(255,0,0), 0, 0, 0, "Some Text 1!");
- al_hold_bitmap_drawing(false);
- al_rotate_transform(&trans, rotate);
- al_translate_transform(&trans, SCREEN_W / 2, SCREEN_H / 2);
- al_use_transform(&trans);
- al_hold_bitmap_drawing(true);
- al_draw_filled_rectangle(-50, -50, 0, 0, al_map_rgb(255,255,255));
- al_draw_filled_rectangle(0, 0, 50, 50, al_map_rgb(255,255,255));
- al_draw_filled_rectangle(0, -50, 50, 0, al_map_rgb(255,255,255));
- al_draw_filled_rectangle(-50, 0, 0, 50, al_map_rgb(255,255,255));
- // void al_draw_text (const ALLEGRO_FONT *font, ALLEGRO_COLOR color, float x, float y, int flags, char const *text);
- al_draw_text(font, al_map_rgb(255,0,0), 0, 0, 0, "Some Text 2!");
- al_hold_bitmap_drawing(false);
- }
- int main(int argc, char **argv)
- {
- ALLEGRO_DISPLAY *display = NULL;
- ALLEGRO_EVENT_QUEUE *event_queue = NULL;
- ALLEGRO_TIMER *timer = NULL;
- bool redraw = true;
- if(!al_init()) {
- fprintf(stderr, "failed to initialize allegro!\n");
- return -1;
- }
- al_init_primitives_addon();
- al_init_font_addon();
- al_init_ttf_addon();
- font = al_load_font("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf", 20, 0);
- if(!font) {
- fprintf(stderr, "failed to load font!\n");
- return -1;
- }
- timer = al_create_timer(1.0 / FPS);
- if(!timer) {
- al_destroy_font(font);
- fprintf(stderr, "failed to create timer!\n");
- return -1;
- }
- display = al_create_display(SCREEN_W, SCREEN_H);
- if(!display) {
- fprintf(stderr, "failed to create display!\n");
- al_destroy_font(font);
- al_destroy_timer(timer);
- return -1;
- }
- event_queue = al_create_event_queue();
- if(!event_queue) {
- fprintf(stderr, "failed to create event_queue!\n");
- al_destroy_font(font);
- al_destroy_display(display);
- al_destroy_timer(timer);
- return -1;
- }
- al_register_event_source(event_queue, al_get_display_event_source(display));
- al_register_event_source(event_queue, al_get_timer_event_source(timer));
- al_clear_to_color(al_map_rgb(0,0,0));
- al_flip_display();
- al_start_timer(timer);
- while(1)
- {
- ALLEGRO_EVENT ev;
- al_wait_for_event(event_queue, &ev);
- if(ev.type == ALLEGRO_EVENT_TIMER) {
- redraw = true;
- }
- else if(ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE) {
- break;
- }
- if(redraw && al_event_queue_is_empty(event_queue)) {
- redraw = false;
- al_clear_to_color(al_map_rgb(0,0,0));
- draw_fliping_object();
- al_flip_display();
- }
- }
- al_destroy_font(font);
- al_destroy_timer(timer);
- al_destroy_display(display);
- al_destroy_event_queue(event_queue);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement