SYNOPSIS

  • #include <allegro5/allegro.h>
    
    typedef struct ALLEGRO_USER_EVENT ALLEGRO_USER_EVENT;
    
    

DESCRIPTION

An event structure that can be emitted by user event sources. These are the public fields:

\[bu]

ALLEGRO_EVENT_SOURCE *source;

\[bu]

intptr_t data1;

\[bu]

intptr_t data2;

\[bu]

intptr_t data3;

\[bu]

intptr_t data4;

Like all other event types this structure is a part of the ALLEGRO_EVENT union. To access the fields in an ALLEGRO_EVENT variable ev, you would use:

\[bu]

ev.user.source

\[bu]

ev.user.data1

\[bu]

ev.user.data2

\[bu]

ev.user.data3

\[bu]

ev.user.data4

To create a new user event you would do this:

  • ALLEGRO_EVENT_SOURCE my_event_source;
    ALLEGRO_EVENT my_event;
    float some_var;
    
    al_init_user_event_source(&my_event_source);
    
    my_event.user.type = ALLEGRO_GET_EVENT_TYPE(\[aq]M\[aq],\[aq]I\[aq],\[aq]N\[aq],\[aq]E\[aq]);
    my_event.user.data1 = 1;
    my_event.user.data2 = &some_var;
    
    al_emit_user_event(&my_event_source, &my_event, NULL);
    
    

Event type identifiers for user events are assigned by the user. Please see the documentation for ALLEGRO_GET_EVENT_TYPE(3alleg5) for the rules you should follow when assigning identifiers.

RELATED TO ALLEGRO_USER_EVENT…

al_emit_user_event(3alleg5), ALLEGRO_GET_EVENT_TYPE(3alleg5)