buffer_create(size, type, alignment)
| Argument | La description |
|---|---|
| size | La taille (en octets) du tampon. |
| type | Le type de tampon à créer (voir la liste des constantes ci-dessous). |
| alignment | L'alignement des octets pour le tampon |
Retours: Real
Vous utilisez cette fonction pour allouer une partie de la mémoire en tant que tampon dans votre jeu, avec la fonction retournant l' identifiant de tampon unique qui doit être stocké dans une variable et utilisé pour tous les autres appels de fonction au tampon. Le tampon peut ensuite être utilisé pour stocker différents types de données (spécifié lorsque vous écrivez dans le tampon en utilisant le buffer_write function, avec les constantes suivantes étant utilisées pour définir le type de tampon:
| Constant | La description |
|---|---|
| buffer_fixed | Un tampon de taille fixe. |
| buffer_grow | Un tampon qui va "croître" dynamiquement à mesure que les données sont ajoutées |
| buffer_wrap | Un tampon où les données vont "envelopper". Lorsque les données ajoutées atteignent la limite de la taille du tampon, l'écrasement sera replacé au début de la mémoire tampon et l'écriture continuera à partir de ce point. |
| buffer_fast | Un tampon spécial "dépouillé" extrêmement rapide à lire / écrire. Peut seulement être utilisé avec buffer_u8 types de données, et doit être aligné sur 1 octet. |
| buffer_vbuffer |
En dehors du type de tampon, vous devrez également définir l' alignement des octets pour le tampon. Cette valeur varie en fonction des données que vous souhaitez stocker dans le tampon, et dans la plupart des cas, la valeur 1 est parfaitement correcte. Cependant, sachez que pour certaines opérations, un alignement spécifique est essentiel et qu'un alignement incorrect peut entraîner des erreurs (pour plus de détails sur l'alignement, voir Tampons ). Ce qui suit est un guide général pour montrer quelles valeurs sont les plus appropriées pour chaque type de données (en cas de doute, utilisez un alignement de 1):
- Les chaînes doivent être alignées sur 1 octet.
- Les entiers 8 bits signés ou non signés peuvent être alignés sur n'importe quelle valeur, mais notez que pour un tampon rapide (voir buffer_write ) il doit être aligné sur 1.
- Les entiers 16 bits signés ou non signés doivent être alignés sur 2 octets.
- Les entiers 32 bits signés ou non signés doivent être alignés sur 4 octets
- Les flotteurs de 16 bits maximum doivent être alignés sur 2 octets. (Pas actuellement supporté!)
- Flotteurs jusqu'à 32 bits doivent être alignés à 4 octets.
- Les flotteurs jusqu'à 64 bits doivent être alignés sur 8 octets.
REMARQUE: L' alignement des octets peut être très important car un mauvais choix peut affecter les performances.
REMARQUE: il est important de supprimer de la mémoire les ressources créées dynamiquement comme celles-ci lorsque vous n'en avez plus besoin pour éviter les fuites de mémoire. Lorsque vous avez terminé avec le tampon que vous avez créé, vous devez le libérer en utilisant buffer_delete.
player_buffer = buffer_create(16384, buffer_fixed,
2);
Le code ci-dessus alloue 16384 octets de mémoire à un tampon et renvoie l'index de ce tampon, qui est stocké dans la variable "player_buffer", pour une utilisation ultérieure. Le tampon est aligné sur une limite de deux octets.