DOKK / manpages / debian 10 / allegro5-doc / ALLEGRO_STATE.3alleg5.en
ALLEGRO_STATE(3alleg5) ALLEGRO_STATE(3alleg5)

ALLEGRO_STATE - Allegro 5 API

typedef struct ALLEGRO_STATE ALLEGRO_STATE;
    

Opaque type which is passed to al_store_state(3alleg5)/al_restore_state(3alleg5).

The various state kept internally by Allegro can be displayed like this:

  global
      active system driver
          current config
  per thread
      new bitmap params
      new display params
      active file interface
      errno
      current blending mode
      current display
          deferred drawing
      current target bitmap
          current transformation
          current projection transformation
          current clipping rectangle
          bitmap locking
          current shader
    

In general, the only real global state is the active system driver. All other global state is per-thread, so if your application has multiple separate threads they never will interfere with each other. (Except if there are objects accessed by multiple threads of course. Usually you want to minimize that though and for the remaining cases use synchronization primitives described in the threads section or events described in the events section to control inter-thread communication.)

Allegro reference manual