1 module allegro5.display; 2 3 import allegro5.bitmap; 4 import allegro5.color; 5 import allegro5.events; 6 7 extern (C) 8 { 9 enum 10 { 11 ALLEGRO_WINDOWED = 1 << 0, 12 ALLEGRO_FULLSCREEN = 1 << 1, 13 ALLEGRO_OPENGL = 1 << 2, 14 ALLEGRO_DIRECT3D_INTERNAL = 1 << 3, 15 ALLEGRO_RESIZABLE = 1 << 4, 16 ALLEGRO_FRAMELESS = 1 << 5, 17 ALLEGRO_NOFRAME = ALLEGRO_FRAMELESS, /* older synonym */ 18 ALLEGRO_GENERATE_EXPOSE_EVENTS = 1 << 6, 19 ALLEGRO_OPENGL_3_0 = 1 << 7, 20 ALLEGRO_OPENGL_FORWARD_COMPATIBLE = 1 << 8, 21 ALLEGRO_FULLSCREEN_WINDOW = 1 << 9, 22 ALLEGRO_MINIMIZED = 1 << 10, 23 ALLEGRO_PROGRAMMABLE_PIPELINE = 1 << 11, 24 ALLEGRO_GTK_TOPLEVEL_INTERNAL = 1 << 12 25 } 26 27 enum ALLEGRO_DISPLAY_OPTIONS 28 { 29 ALLEGRO_RED_SIZE = 0, 30 ALLEGRO_GREEN_SIZE = 1, 31 ALLEGRO_BLUE_SIZE = 2, 32 ALLEGRO_ALPHA_SIZE = 3, 33 ALLEGRO_RED_SHIFT = 4, 34 ALLEGRO_GREEN_SHIFT = 5, 35 ALLEGRO_BLUE_SHIFT = 6, 36 ALLEGRO_ALPHA_SHIFT = 7, 37 ALLEGRO_ACC_RED_SIZE = 8, 38 ALLEGRO_ACC_GREEN_SIZE = 9, 39 ALLEGRO_ACC_BLUE_SIZE = 10, 40 ALLEGRO_ACC_ALPHA_SIZE = 11, 41 ALLEGRO_STEREO = 12, 42 ALLEGRO_AUX_BUFFERS = 13, 43 ALLEGRO_COLOR_SIZE = 14, 44 ALLEGRO_DEPTH_SIZE = 15, 45 ALLEGRO_STENCIL_SIZE = 16, 46 ALLEGRO_SAMPLE_BUFFERS = 17, 47 ALLEGRO_SAMPLES = 18, 48 ALLEGRO_RENDER_METHOD = 19, 49 ALLEGRO_FLOAT_COLOR = 20, 50 ALLEGRO_FLOAT_DEPTH = 21, 51 ALLEGRO_SINGLE_BUFFER = 22, 52 ALLEGRO_SWAP_METHOD = 23, 53 ALLEGRO_COMPATIBLE_DISPLAY = 24, 54 ALLEGRO_UPDATE_DISPLAY_REGION = 25, 55 ALLEGRO_VSYNC = 26, 56 ALLEGRO_MAX_BITMAP_SIZE = 27, 57 ALLEGRO_SUPPORT_NPOT_BITMAP = 28, 58 ALLEGRO_CAN_DRAW_INTO_BITMAP = 29, 59 ALLEGRO_SUPPORT_SEPARATE_ALPHA = 30, 60 ALLEGRO_AUTO_CONVERT_BITMAPS = 31, 61 ALLEGRO_SUPPORTED_ORIENTATIONS = 32, 62 ALLEGRO_DISPLAY_OPTIONS_COUNT 63 } 64 65 enum 66 { 67 ALLEGRO_DONTCARE, 68 ALLEGRO_REQUIRE, 69 ALLEGRO_SUGGEST 70 } 71 72 enum ALLEGRO_DISPLAY_ORIENTATION 73 { 74 ALLEGRO_DISPLAY_ORIENTATION_UNKNOWN = 0, 75 ALLEGRO_DISPLAY_ORIENTATION_0_DEGREES = 1, 76 ALLEGRO_DISPLAY_ORIENTATION_90_DEGREES = 2, 77 ALLEGRO_DISPLAY_ORIENTATION_180_DEGREES = 4, 78 ALLEGRO_DISPLAY_ORIENTATION_270_DEGREES = 8, 79 ALLEGRO_DISPLAY_ORIENTATION_PORTRAIT = 5, 80 ALLEGRO_DISPLAY_ORIENTATION_LANDSCAPE = 10, 81 ALLEGRO_DISPLAY_ORIENTATION_ALL = 15, 82 ALLEGRO_DISPLAY_ORIENTATION_FACE_UP = 16, 83 ALLEGRO_DISPLAY_ORIENTATION_FACE_DOWN = 32 84 } 85 86 enum 87 { 88 _ALLEGRO_PRIM_MAX_USER_ATTR = 10 89 } 90 91 struct ALLEGRO_DISPLAY {}; 92 93 void al_set_new_display_refresh_rate(int refresh_rate); 94 void al_set_new_display_flags(int flags); 95 int al_get_new_display_refresh_rate(); 96 int al_get_new_display_flags(); 97 98 int al_get_display_width(ALLEGRO_DISPLAY* display); 99 int al_get_display_height(ALLEGRO_DISPLAY* display); 100 int al_get_display_format(ALLEGRO_DISPLAY* display); 101 int al_get_display_refresh_rate(ALLEGRO_DISPLAY* display); 102 int al_get_display_flags(ALLEGRO_DISPLAY* display); 103 int al_get_display_orientation(ALLEGRO_DISPLAY* display); 104 bool al_set_display_flag(ALLEGRO_DISPLAY* display, int flag, bool onoff); 105 106 ALLEGRO_DISPLAY* al_create_display(int w, int h); 107 void al_destroy_display(ALLEGRO_DISPLAY* display); 108 ALLEGRO_DISPLAY* al_get_current_display(); 109 void al_set_target_bitmap(ALLEGRO_BITMAP* bitmap); 110 void al_set_target_backbuffer(ALLEGRO_DISPLAY* display); 111 ALLEGRO_BITMAP* al_get_backbuffer(ALLEGRO_DISPLAY* display); 112 ALLEGRO_BITMAP* al_get_target_bitmap(); 113 114 bool al_acknowledge_resize(ALLEGRO_DISPLAY* display); 115 bool al_resize_display(ALLEGRO_DISPLAY* display, int width, int height); 116 void al_flip_display(); 117 void al_update_display_region(int x, int y, int width, int height); 118 bool al_is_compatible_bitmap(ALLEGRO_BITMAP* bitmap); 119 120 bool al_wait_for_vsync(); 121 122 ALLEGRO_EVENT_SOURCE* al_get_display_event_source(ALLEGRO_DISPLAY* display); 123 124 void al_set_display_icon(ALLEGRO_DISPLAY* display, ALLEGRO_BITMAP* icon); 125 void al_set_display_icons(ALLEGRO_DISPLAY* display, int num_icons, ALLEGRO_BITMAP** icons); 126 127 /* Stuff for multihead/window management */ 128 int al_get_new_display_adapter(); 129 void al_set_new_display_adapter(int adapter); 130 void al_set_new_window_position(int x, int y); 131 void al_get_new_window_position(int* x, int* y); 132 void al_set_window_position(ALLEGRO_DISPLAY* display, int x, int y); 133 void al_get_window_position(ALLEGRO_DISPLAY* display, int* x, int* y); 134 bool al_set_window_constraints(ALLEGRO_DISPLAY* display, int min_w, int min_h, int max_w, int max_h); 135 bool al_get_window_constraints(ALLEGRO_DISPLAY* display, int* min_w, int* min_h, int* max_w, int* max_h); 136 137 void al_set_window_title(ALLEGRO_DISPLAY* display, in char* title); 138 139 /* Defined in display_settings.c */ 140 void al_set_new_display_option(int option, int value, int importance); 141 int al_get_new_display_option(int option, int* importance); 142 void al_reset_new_display_options(); 143 void al_set_display_option(ALLEGRO_DISPLAY* display, int option, int value); 144 int al_get_display_option(ALLEGRO_DISPLAY* display, int option); 145 146 /*Deferred drawing*/ 147 void al_hold_bitmap_drawing(bool hold); 148 bool al_is_bitmap_drawing_held(); 149 150 void al_acknowledge_drawing_halt(ALLEGRO_DISPLAY* display); 151 void al_acknowledge_drawing_resume(ALLEGRO_DISPLAY *display); 152 }