buffer_create_from_vertex_buffer

Syntaxe:

buffer_create_from_vertex_buffer(vertex_buffer, type, alignment)


Argument La description
vertex_buffer L'index du tampon de vertex à utiliser.
type Le type de tampon à créer (voir la liste des constantes ci-dessous).
alignment L'alignement des octets pour le tampon


Retours: Real


La description

Vous utilisez cette fonction pour allouer une partie de la mémoire en tant que tampon dans votre jeu rempli avec les données d'un tampon vertex précédemment créé. La fonction renvoie un identifiant de tampon unique qui doit être stocké dans une variable et utilisé pour tous les autres appels de fonctions au tampon. La fonction prend l'identifiant pour le vertex buffer à utiliser (comme retourné par la fonction vertex_create_buffer(), par exemple) avec les constantes suivantes 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):

REMARQUE: les tampons Vertex sont alignés sur 1 octet, mais vous pouvez créer le tampon avec n'importe quel alignement en fonction de la manière dont vous souhaitez traiter les données, car les données de sommet sont simplement une copie de mémoire brute dans le tampon.

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. Notez également que le tampon de vertex utilisé pour créer le nouveau tampon n'est pas non plus supprimé de la mémoire et vous devez utiliser la fonction vertex_delete_buffer() quand ce n'est plus nécessaire.


Exemple:

player_buffer = buffer_create_from_vertex_buffer(model_buffer, buffer_grow, 1);

Le code ci-dessus alloue de la mémoire à un tampon puis copie les données du tampon vertex donné, retournant l'index du nouveau tampon qui est stocké dans la variable "player_buffer", pour une utilisation future.