al_set_new_display_flags - Allegro 5 API
-
#include <allegro5/allegro.h>
void al_set_new_display_flags(int flags)
Sets various flags to be used when creating new displays on the
calling thread. flags is a bitfield containing any reasonable combination of
the following:
- ALLEGRO_WINDOWED
- Prefer a windowed mode.
Under multi-head X (not XRandR/TwinView), the use of more than one
adapter is impossible due to bugs in X and GLX. al_create_display(3alleg5)
will fail if more than one adapter is attempted to be used.
- ALLEGRO_FULLSCREEN_WINDOW
- Make the window span the entire screen. Unlike ALLEGRO_FULLSCREEN this
will never attempt to modify the screen resolution. Instead the pixel
dimensions of the created display will be the same as the desktop.
The passed width and height are only used if the window is
switched out of fullscreen mode later but will be ignored initially.
Under Windows and X11 a fullscreen display created with this flag
will behave differently from one created with the ALLEGRO_FULLSCREEN flag -
even if the ALLEGRO_FULLSCREEN display is passed the desktop dimensions. The
exact difference is platform dependent, but some things which may be
different is how alt-tab works, how fast you can toggle between
fullscreen/windowed mode or how additional monitors behave while your
display is in fullscreen mode.
Additionally under X, the use of more than one adapter in
multi-head mode or with true Xinerama enabled is impossible due to bugs in
X/GLX, creation will fail if more than one adapter is attempted to be
used.
- ALLEGRO_FULLSCREEN
- Prefer a fullscreen mode.
Under X the use of more than one FULLSCREEN display when using
multi-head X, or true Xinerama is not possible due to bugs in X and GLX,
display creation will fail if more than one adapter is attempted to be
used.
Note: Prefer using ALLEGRO_FULLSCREEN_WINDOW as it
typically provides a better user experience as the monitor doesn't change
resolution and switching away from your game via Alt-Tab works smoothly.
ALLEGRO_FULLSCREEN is typically less well supported compared to
ALLEGRO_FULLSCREEN_WINDOW.
- ALLEGRO_RESIZABLE
- The display is resizable (only applicable if combined with
ALLEGRO_WINDOWED).
- ALLEGRO_MAXIMIZED
- The display window will be maximized (only applicable if combined with
ALLEGRO_RESIZABLE). Since: 5.1.12
- ALLEGRO_OPENGL
- Require the driver to provide an initialized OpenGL context after
returning successfully.
- ALLEGRO_OPENGL_3_0
- Require the driver to provide an initialized OpenGL context compatible
with OpenGL version 3.0.
- ALLEGRO_OPENGL_FORWARD_COMPATIBLE
- If this flag is set, the OpenGL context created with ALLEGRO_OPENGL_3_0
will be forward compatible only, meaning that all of the OpenGL API
declared deprecated in OpenGL 3.0 will not be supported. Currently, a
display created with this flag will not be compatible with Allegro
drawing routines; the display option ALLEGRO_COMPATIBLE_DISPLAY will be
set to false.
- ALLEGRO_OPENGL_ES_PROFILE
- Used together with ALLEGRO_OPENGL, requests that the OpenGL context uses
the OpenGL ES profile. A specific version can be requested with
al_set_new_display_option(3alleg5). Note: Currently this is only supported
by the X11/GLX driver. Since: 5.1.13
- ALLEGRO_DIRECT3D
- Require the driver to do rendering with Direct3D and provide a Direct3D
device.
- ALLEGRO_PROGRAMMABLE_PIPELINE
- Require a programmable graphics pipeline. This flag is required to use
ALLEGRO_SHADER(3alleg5) objects. Since: 5.1.6
- ALLEGRO_FRAMELESS
- Try to create a window without a frame (i.e. no border or
titlebar). This usually does nothing for fullscreen modes, and even in
windowed modes it depends on the underlying platform whether it is
supported or not. Since: 5.0.7, 5.1.2
- ALLEGRO_NOFRAME
- Original name for ALLEGRO_FRAMELESS. This works with older versions of
Allegro.
- ALLEGRO_GENERATE_EXPOSE_EVENTS
- Let the display generate expose events.
- ALLEGRO_GTK_TOPLEVEL
- Create a GTK toplevel window for the display, on X. This flag is
conditionally defined by the native dialog addon. You must call
al_init_native_dialog_addon(3alleg5) for it to succeed.
ALLEGRO_GTK_TOPLEVEL is incompatible with ALLEGRO_FULLSCREEN. Since:
5.1.5
0 can be used for default values.