|
No ALLEGRO_EVENT_DISPLAY_RESIZE on fullscreen switch? |
roger levy
Member #2,513
July 2002
|
In my event handler I respond to ALLEGRO_EVENT_DISPLAY_RESIZE events, but it seems that they don't fire when I call al_toggle_display_flag to toggle fullscreen via ALLEGRO_FULLSCREEN_WINDOW. Seems that that should event should be generated on fs toggle. Is this a bug? In any case how should I get the current display dimensions on fullscreen toggle? |
jmasterx
Member #11,410
October 2009
|
The way I do it is: My Display class does this: 1 bool Display::toggleFullscreen( bool fullscreen )
2 {
3 bool result = al_toggle_display_flag(context,ALLEGRO_FULLSCREEN_WINDOW,fullscreen);
4 if(result)
5 {
6 resizeSceneForFullscreen(getResolution().getX(),getResolution().getY());
7 if(fullscreen)
8 Log::write("Display","Window is now Fullscreen");
9 else
10 Log::write("Display","Window is now Windowed");
11 }
12 //initContext(context);
13 return result;
14
15 }
16
17 void Display::resizeSceneForFullscreen(int w, int h)
18 {
19 if(m_sceneMessenger)
20 {
21 m_sceneMessenger->sendResizeMessage(w,h);
22 }
23 }
24
25 Vec2 Display::getResolution() const
26 {
27 return Vec2(
28 (float)al_get_display_width(context),
29 (float)al_get_display_height(context));
30 }
So quite simply, I pump my own resize message in this case to the scene manager. If you want more detail let me know. Agui GUI API -> https://github.com/jmasterx/Agui |
pkrcel
Member #14,001
February 2012
|
But that makes sense, I woudl expect a display resize regardless on an actual change of resolution if toggling between window and fullscreen mode. Is this not fired by design? It is unlikely that Google shares your distaste for capitalism. - Derezo |
William Labbett
Member #4,486
March 2004
|
Fullscreen as oppose to windowed mode is a tricky business. My project went on hold for a year due to needing to handle it all properly.
|
Gideon Weems
Member #3,925
October 2003
|
|