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

FreeBSD Manual Pages

  
 
  

home | help
ALLEGRO_FILE_INTERFACE(3)  Library Functions Manual  ALLEGRO_FILE_INTERFACE(3)

NAME
       ALLEGRO_FILE_INTERFACE -	Allegro	5 API

SYNOPSIS
	      #include <allegro5/allegro.h>

	      typedef struct ALLEGRO_FILE_INTERFACE

DESCRIPTION
       A  structure  containing	 function pointers to handle a type of "file",
       real or virtual.	 See the  full	discussion  in	al_set_new_file_inter-
       face(3).

       The fields are:

	      void*	    (*fi_fopen)(const char *path, const	char *mode);
	      bool	    (*fi_fclose)(ALLEGRO_FILE *f);
	      size_t	    (*fi_fread)(ALLEGRO_FILE *f, void *ptr, size_t size);
	      size_t	    (*fi_fwrite)(ALLEGRO_FILE *f, const	void *ptr, size_t size);
	      bool	    (*fi_fflush)(ALLEGRO_FILE *f);
	      int64_t	    (*fi_ftell)(ALLEGRO_FILE *f);
	      bool	    (*fi_fseek)(ALLEGRO_FILE *f, int64_t offset, int whence);
	      bool	    (*fi_feof)(ALLEGRO_FILE *f);
	      int	    (*fi_ferror)(ALLEGRO_FILE *f);
	      const char *  (*fi_ferrmsg)(ALLEGRO_FILE *f);
	      void	    (*fi_fclearerr)(ALLEGRO_FILE *f);
	      int	    (*fi_fungetc)(ALLEGRO_FILE *f, int c);
	      off_t	    (*fi_fsize)(ALLEGRO_FILE *f);

       The  fi_open function must allocate memory for whatever userdata	struc-
       ture it needs.  The pointer to that memory must be  returned;  it  will
       then  be	associated with	the file.  The other functions can access that
       data by calling al_get_file_userdata(3) on the file handle.  If fi_open
       returns NULL then al_fopen(3) will also return NULL.

       The fi_fclose function must clean up and	free the userdata, but Allegro
       will free the ALLEGRO_FILE(3) handle.

       If fi_fungetc is	NULL, then Allegro's default implementation  of	 a  16
       char long buffer	will be	used.

Allegro	reference manual			     ALLEGRO_FILE_INTERFACE(3)

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

home | help