SDL_ALLOCRW |
SDL : Alloue la lecture ou l'écriture |
---|---|
SDL/SDL_rwops.h |
Syntaxe
SDL_RWops *SDL_AllocRW(void); |
Retour
Valeur | Description |
---|---|
NULL | Cette valeur permet d'indiquer qu'une erreur s'est produite. |
variable | Ces valeurs permet d'indiquer que l'opération s'est correctement effectué. La valeur correspond à un pointeur de mémoire alloué. |
Description
Cette fonction permet d'allouer un vide et en dépopulant la structure «SDL_RWops».
Exemple
Voici un exemple permettant d'allouer les opérations :
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <SDL/SDL_error.h>
- #include <SDL/SDL_rwops.h>
-
- static int monpositionnement(SDL_RWops *context, int offset, int whence) {
- SDL_SetError("Impossible de positionner l'operation");
- return(-1);
- }
-
- static int malecture(SDL_RWops *context, void *ptr, int size, int maxnum) {
- memset(ptr,0,size*maxnum);
- return(maxnum);
- }
-
- static int monecriture(SDL_RWops *context, const void *ptr, int size, int num) {
- return(num);
- }
-
- static int mafermeture(SDL_RWops *context) {
- if(context->type != 0xffeeffee) {
- SDL_SetError("Impossible d'effectuer une fermeture");
- return(-1);
- }
- free((*context).hidden.unknown.data1);
- SDL_FreeRW(context);
- return(0);
- }
-
- int main()
- {
- SDL_RWops *c = SDL_AllocRW();
- if(c==NULL) return(NULL);
- (*c).seek = monpositionnement;
- (*c).read = malecture;
- (*c).write= monecriture;
- (*c).close= mafermeture;
- (*c).type =0xffeeffee;
- (*c).hidden.unknown.data1 = malloc(256);
- return 0;
- }
N.B.: Ce programme est compilé avec l'option «-lSDLmain -lSDL» de l'IDE du programme Code::Blocks 10.05 situé dans «Project > Build options... > Debug > Linker settings > Other linker options:» ou en ligne de commande «gcc -lSDLmain -lSDL sdl_sample main.c». Sinon, la fonction « SDL_AllocRW» retournera un «undefined reference to 'aa_autoinit'» lors de la liaison du programme. De plus, une bibliothèque de développement comme «libsdl1.2-dev» devrait être installé.
Voir également
Langage de programmation - C pour Linux - Référence procédures et fonctions- SDL_FreeRW
Dernière mise à jour : Dimanche, le 22 mars 2015