Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
al_init_us...vent_source(3) Library Functions Manual al_init_us...vent_source(3)

NAME
     al_init_user_event_source - Allegro 5 API

SYNOPSIS
	    #include <allegro5/allegro.h>

	    void al_init_user_event_source(ALLEGRO_EVENT_SOURCE *src)

DESCRIPTION
     Initialise  an  event  source  for emitting user events.  The space for the
     event source must already have been allocated.

     One possible way of creating custom event sources is to derive other struc-
     tures with ALLEGRO_EVENT_SOURCE at the head, e.g.

	    typedef struct THING THING;

	    struct THING {
		ALLEGRO_EVENT_SOURCE event_source;
		int field1;
		int field2;
		/* etc. */
	    };

	    THING *create_thing(void)
	    {
		THING *thing = malloc(sizeof(THING));

		if (thing) {
		    al_init_user_event_source(&thing->event_source);
		    thing->field1 = 0;
		    thing->field2 = 0;
		}

		return thing;
	    }

     The advantage here is that the THING pointer will be the same as the  ALLE-
     GRO_EVENT_SOURCE pointer.	Events emitted by the event source will have the
     event  source pointer as the source field, from which you can get a pointer
     to a THING by a simple cast (after ensuring checking the event  is  of  the
     correct type).

     However, it is only one technique and you are not obliged to use it.

     The  user event source will never be destroyed automatically.  You must de-
     stroy it manually with al_destroy_user_event_source(3).

SEE ALSO
     ALLEGRO_EVENT_SOURCE(3),			al_destroy_user_event_source(3),
     al_emit_user_event(3), ALLEGRO_USER_EVENT(3)

Allegro reference manual			     al_init_us...vent_source(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=al_init_user_event_source&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help