2017-03-05 3 views
-1

Dans Vulkan, certaines fonctions nécessitent de passer une structure contenant divers paramètres. L'un des champs est nommé stype et doit être défini sur le type de structure.Quel est le but du champ stype?

Un exemple d'utilisation de stype:

VkInstanceCreateInfo info; 
info.stype = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; 
... 
VkInstance instance; 
vkCreateInstance(&info, nullptr, &instance); 

La fonction prend un vkCreateInstanceconst VkInstanceCreateInfo* comme paramètre, alors quel est le point du champ stype? Quel problème existait-il qu'ils ont résolu en ajoutant le champ?

+0

Probablement pour permettre aux versions ultérieures de l'API d'ajouter des champs à la structure. La valeur que vous mettez dans ce champ indique à vulkan quelle version de la structure que vous utilisez afin qu'il sache quels champs existent. – Eelke

Répondre

3

Afin qu'une future version puisse mettre à jour la structure en changeant le type sans avoir besoin d'un nouveau point d'entrée.

Toutefois, il est actuellement utilisé pour les structures d'extension trouvées dans la liste chaînée pNext. Et faire tous les structs avec une disposition uniforme comme ça ne coûte rien. L'implémentation peut simplement ignorer le premier champ et supposer que c'est correct.