I've run into a roadblock trying to get the basics of A5 going. I've determined a file exits via al_filename_exists, but al_load_bitmap continues to fail for reasons I can't seem to debug. My code is basically a mash of wiki tutorial code (doing speedhack '15). Scroll to "Test Grounds..." comment for relevant code:
#SelectExpand
1#include <stdio.h>
2#include <allegro5/allegro.h>
3#include "allegro5/allegro_image.h"
4#include "allegro5/allegro_native_dialog.h"
5
6const float FPS
= 60;
7const int SCREEN_W = 640;
8const int SCREEN_H = 480;
9const int BOUNCER_SIZE
= 32;
10
11int main
(int argc,
char **argv
){
12 ALLEGRO_DISPLAY *display
= NULL
;
13 ALLEGRO_EVENT_QUEUE *event_queue
= NULL
;
14 ALLEGRO_TIMER *timer
= NULL
;
15 ALLEGRO_BITMAP *bouncer
= NULL
;
16 float bouncer_x
= SCREEN_W / 2.
0 - BOUNCER_SIZE
/ 2.
0;
17 float bouncer_y
= SCREEN_H / 2.
0 - BOUNCER_SIZE
/ 2.
0;
18 float bouncer_dx
= -4.
0, bouncer_dy
= 4.
0;
19 bool redraw
= true;
20
21 if(!al_init()) {
22 fprintf(stderr,
"failed to initialize allegro!\n");
23 return -1;
24 }
25
26 timer
= al_create_timer(1.
0 / FPS
);
27 if(!timer
) {
28 fprintf(stderr,
"failed to create timer!\n");
29 return -1;
30 }
31
32 display
= al_create_display(SCREEN_W,
SCREEN_H);
33 if(!display
) {
34 fprintf(stderr,
"failed to create display!\n");
35 al_destroy_timer(timer
);
36 return -1;
37 }
38
39 bouncer
= al_create_bitmap(BOUNCER_SIZE, BOUNCER_SIZE
);
40 if(!bouncer
) {
41 fprintf(stderr,
"failed to create bouncer bitmap!\n");
42 al_destroy_display(display
);
43 al_destroy_timer(timer
);
44 return -1;
45 }
46
47 al_set_target_bitmap(bouncer
);
48
49 al_clear_to_color(al_map_rgb(255,
0,
255));
50
51 al_set_target_bitmap(al_get_backbuffer(display
));
52
53 event_queue
= al_create_event_queue();
54 if(!event_queue
) {
55 fprintf(stderr,
"failed to create event_queue!\n");
56 al_destroy_bitmap(bouncer
);
57 al_destroy_display(display
);
58 al_destroy_timer(timer
);
59 return -1;
60 }
61
62 al_register_event_source(event_queue,
al_get_display_event_source(display
));
63
64 al_register_event_source(event_queue,
al_get_timer_event_source(timer
));
65
66 al_clear_to_color(al_map_rgb(0,
0,
0));
67
68 al_flip_display();
69
70 al_start_timer(timer
);
71
72
73 /// Test Grounds...
74 ALLEGRO_PATH
*path
= al_get_standard_path(ALLEGRO_RESOURCES_PATH
);
75 al_append_path_component(path,
"Resources");
76 al_set_path_filename(path,
"test2.png");
77 const char *test
= al_path_cstr(path, ALLEGRO_NATIVE_PATH_SEP
);
78 const char *test2
= al_path_cstr(path,
'/');
79 if(al_filename_exists(test2
)) {
80 fprintf(stderr,
"hello world\n");
81 }
82
83 fprintf(stderr,
"%s\n", test2
);
84 ALLEGRO_BITMAP *image
= al_load_bitmap(test2
);
85
86 if(!image
) {
87 al_show_native_message_box(display,
"Error",
"Error",
"Failed to load image!", NULL, ALLEGRO_MESSAGEBOX_ERROR
);
88 al_destroy_display(display
);
89 return 0;
90 }
91
92 al_draw_bitmap(image,
200,
200,
0);
93...
The output I get is the following:
hello world
/Users/UserName/Library/Developer/Xcode/DerivedData/eldersofethos-fvfhklodylcqfegmldyrzbooqcre/Build/Products/Debug/EldersOfEthos.app/Contents/Resources/Resources/test2.png
Thoughts?
Edit: attached the image.