Alleg4Display::Alleg4Display(int width, int height, int scale) : m_surface(NULL) , m_scale(0) , m_nativeCursor(kNoCursor) , m_restoredWidth(0) , m_restoredHeight(0) { unique_display = this; if (install_mouse() < 0) throw DisplayCreationException(allegro_error); if (install_keyboard() < 0) throw DisplayCreationException(allegro_error); #ifdef FULLSCREEN_PLATFORM set_color_depth(16); // TODO Try all color depths for fullscreen platforms #else set_color_depth(desktop_color_depth()); #endif if (set_gfx_mode( #ifdef FULLSCREEN_PLATFORM GFX_AUTODETECT_FULLSCREEN, #else GFX_AUTODETECT_WINDOWED, #endif width, height, 0, 0) < 0) throw DisplayCreationException(allegro_error); show_mouse(NULL); setScale(scale); #if _WIN32 subclass_hwnd((HWND)nativeHandle()); #endif }
void install_drop_files() { dropped_files = new std::vector<base::string>(); dropped_files_mutex = new Mutex(); subclass_hwnd(); }
Alleg4Display(int width, int height, int scale) : m_surface(NULL) , m_scale(0) { unique_display = this; if (install_mouse() < 0) throw DisplayCreationException(allegro_error); if (install_keyboard() < 0) throw DisplayCreationException(allegro_error); #ifdef FULLSCREEN_PLATFORM set_color_depth(16); // TODO Try all color depths for fullscreen platforms #else set_color_depth(desktop_color_depth()); #endif if (set_gfx_mode( #ifdef FULLSCREEN_PLATFORM GFX_AUTODETECT_FULLSCREEN, #else GFX_AUTODETECT_WINDOWED, #endif width, height, 0, 0) < 0) throw DisplayCreationException(allegro_error); setScale(scale); m_queue = new Alleg4EventQueue(); // Copy the initial queue to the display queue { base::scoped_lock hold(unique_display_mutex); Event ev; while (initial_queue.try_pop(ev)) m_queue->queueEvent(ev); } // Add a hook to display-switch so when the user returns to the // screen it's completelly refreshed/redrawn. LOCK_VARIABLE(display_flags); LOCK_FUNCTION(display_switch_in_callback); set_display_switch_callback(SWITCH_IN, display_switch_in_callback); #ifdef ALLEGRO4_WITH_RESIZE_PATCH // Setup the handler for window-resize events set_resize_callback(resize_callback); #endif #if WIN32 subclass_hwnd((HWND)nativeHandle()); #endif }