Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c66875d

Browse files
committed
Be more explicit about extra include for std::min/std::max (fixes #225)
1 parent 1936157 commit c66875d

2 files changed

Lines changed: 15 additions & 9 deletions

File tree

en/03_Drawing_a_triangle/01_Presentation/01_Swap_chain.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,7 @@ matching it against the minimum and maximum image extent.
343343

344344
```c++
345345
#include <cstdint> // Necessary for UINT32_MAX
346+
#include <algorithm> // Necessary for std::min/std::max
346347

347348
...
348349

@@ -368,7 +369,7 @@ VkExtent2D chooseSwapExtent(const VkSurfaceCapabilitiesKHR& capabilities) {
368369
369370
The `max` and `min` functions are used here to clamp the value of `WIDTH` and
370371
`HEIGHT` between the allowed minimum and maximum extents that are supported by
371-
the implementation. Make sure to include the `<algorithm>` header to use them.
372+
the implementation.
372373
373374
## Creating the swap chain
374375

fr/03_Dessiner_un_triangle/01_Présentation/01_Swap_chain.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ synchroniser la présentation avec le rafraîchissement de l'écran.
1111
Toutes les cartes graphiques ne sont pas capables de présenter directement les images à l'écran, et ce pour
1212
différentes raisons. Ce pourrait être car elles sont destinées à être utilisées dans un serveur et n'ont aucune
1313
sortie vidéo. De plus, dans la mesure où la présentation est très dépendante du gestionnaire de fenêtres et de la
14-
surface, la swap chain ne fait pas partie de Vulkan "core". Il faudra donc utiliser des extensions, dont
14+
surface, la swap chain ne fait pas partie de Vulkan "core". Il faudra donc utiliser des extensions, dont
1515
`VK_KHR_swapchain`.
1616

1717
Pour cela nous allons modifier `isDeviceSuitable` pour qu'elle vérifie si cette extension est supportée. Nous avons
@@ -144,7 +144,7 @@ if (formatCount != 0) {
144144
}
145145
```
146146

147-
Finalement, récupérer les modes de présentation supportés suit le même principe et utilise
147+
Finalement, récupérer les modes de présentation supportés suit le même principe et utilise
148148
`vkGetPhysicalDeviceSurfacePresentModesKHR` :
149149

150150
```c++
@@ -191,7 +191,7 @@ nous rabattrons sur ce qui nous restera de mieux.
191191

192192
### Format de la surface
193193

194-
La fonction utilisée pour déterminer ce paramètre commence ainsi. Nous lui passerons en argument le membre donnée
194+
La fonction utilisée pour déterminer ce paramètre commence ainsi. Nous lui passerons en argument le membre donnée
195195
`formats` de la structure `SwapChainSupportDetails`.
196196

197197
```c++
@@ -206,7 +206,7 @@ nous stockons les canaux de couleur R, G, B et A dans cet ordre et en entiers no
206206
de vérifier que le sRGB est supporté en utilisant le champ de bits `VK_COLOR_SPACE_SRGB_NONLINEAR_KHR`.
207207
208208
Pour l'espace de couleur nous utiliserons sRGB si possible, car il en résulte
209-
[un rendu plus réaliste](http://stackoverflow.com/questions/12524623/). Le format le plus commun est
209+
[un rendu plus réaliste](http://stackoverflow.com/questions/12524623/). Le format le plus commun est
210210
`VK_FORMAT_B8G8R8A8_SRGB`.
211211
212212
Itérons dans la liste et voyons si le meilleur est disponible :
@@ -296,6 +296,11 @@ grande valeur d'un `uint32_t`. Dans ce cas nous choisirons la résolution corres
296296
fenêtre, dans les bornes de `minImageExtent` et `maxImageExtent`.
297297

298298
```c++
299+
#include <cstdint> // UINT32_MAX
300+
#include <algorithm> // std::min/std::max
301+
302+
...
303+
299304
VkExtent2D chooseSwapExtent(const VkSurfaceCapabilitiesKHR& capabilities) {
300305
if (capabilities.currentExtent.width != UINT32_MAX) {
301306
return capabilities.currentExtent;
@@ -311,7 +316,7 @@ VkExtent2D chooseSwapExtent(const VkSurfaceCapabilitiesKHR& capabilities) {
311316
```
312317
313318
Les fonctions `min` et `max` sont utilisées ici pour limiter les valeurs `WIDTH` et `HEIGHT` entre le minimum et le
314-
maximum supportés par l'implémentation. Incluez `<algorithm>` pour les utiliser.
319+
maximum supportés par l'implémentation.
315320
316321
## Création de la swap chain
317322
@@ -389,7 +394,7 @@ Le membre `imageArrayLayers` indique le nombre de couches que chaque image poss
389394
développez une application stéréoscopique 3D. Le champ de bits `imageUsage` spécifie le type d'opérations que nous
390395
appliquerons aux images de la swap chain. Dans ce tutoriel nous effectuerons un rendu directement sur les images,
391396
nous les utiliserons donc comme *color attachement*. Vous voudrez peut-être travailler sur une image séparée pour
392-
pouvoir appliquer des effets en post-processing. Dans ce cas vous devrez utiliser une valeur comme
397+
pouvoir appliquer des effets en post-processing. Dans ce cas vous devrez utiliser une valeur comme
393398
`VK_IMAGE_USAGE_TRANSFER_DST_BIT` à la place et utiliser une opération de transfert de mémoire pour placer le
394399
résultat final dans une image de la swap chain.
395400

@@ -473,7 +478,7 @@ if (vkCreateSwapchainKHR(device, &createInfo, nullptr, &swapChain) != VK_SUCCESS
473478
```
474479

475480
Les paramètres sont le logical device, la structure contenant les informations, l'allocateur optionnel et la variable
476-
contenant la référence à la swap chain. Cet objet devra être explicitement détruit à l'aide de la fonction
481+
contenant la référence à la swap chain. Cet objet devra être explicitement détruit à l'aide de la fonction
477482
`vkDestroySwapchainKHR` avant de détruire le logical device :
478483

479484
```c++
@@ -505,7 +510,7 @@ std::vector<VkImage> swapChainImages;
505510
Ces images ont été créées par l'implémentation avec la swap chain et elles seront automatiquement supprimées avec la
506511
destruction de la swap chain, nous n'aurons donc rien à rajouter dans la fonction `cleanup`.
507512

508-
Ajoutons le code nécessaire à la récupération des références à la fin de `createSwapChain`, juste après l'appel à
513+
Ajoutons le code nécessaire à la récupération des références à la fin de `createSwapChain`, juste après l'appel à
509514
`vkCreateSwapchainKHR`. Comme notre logique n'a au final informé Vulkan que d'un minimum pour le nombre d'images dans la
510515
swap chain, nous devons nous enquérir du nombre d'images avant de redimensionner le conteneur.
511516

0 commit comments

Comments
 (0)