Nous avons vu dans le chapitre sur le renderer que les couleurs se décomposaient en rouge, vert et bleu et qu'on ajoutait à la combinaison de ces trois couleurs la transparence de la couleur, notée "a". Celle-ci est un nombre compris entre 0 et 255 de telle sorte que plus "a" est proche de 0, plus la couleur est transparente et plus "a" est près de 255, plus la couleur est opaque.
Mais dans tout ceci, il y a quelque chose d'insidieux et de sous-jacent : les pixels transparents ... ne sont pas transparents : seul le calcul permet qu'ils le soient.
Les modes de fusions.
En fait, un pixel n'est composé au départ que du rouge, du vert et du bleu. Au total, pour mémoriser une couleur, on utilise donc 3 octets répartis entre les trois couleurs primaires. Mais vous savez qu'un ordinateur n'aime guère les nombres impairs, et qu'il adore les puissances de 2. Pour stocker une couleur, on utilise donc 4 octets. Comme il restait un octet de libre, on a ajouté un canal alpha complètement fictif. En fait, celui-ci va être utilisé au moment où l'on va vouloir afficher le pixel à l'écran. Il indique seulement à quel point nous devons prendre en compte la couleur du pixel qui va être remplacé (la destination) par le pixel qu'on veut afficher (la source). Pour cela, il existe de très nombreuses façons de calculer la couleur du pixel résultant de la superposition de la destination et de la source que l'on appelle des modes de fusion ("blend mode" en anglais). La SDL n'en compte que trois :
Renderer et textures.
En pratique, on n'utilise que le mode SDL_BLENDMODE_BLEND. Par conséquent, si vous n'avez pas compris ce qui précède, utilisez ce mode sans vous poser de questions. Pour l'appliquer au renderer, il suffit d'utiliser la fonction
int SDL_SetRenderDrawBlendMode(SDL_Renderer* renderer, SDL_BlendMode blendMode)
Pour l'appliquer à une texture, il suffit d'utiliser : 
int SDL_SetTextureBlendMode(SDL_Texture* texture, SDL_BlendMode blendMode);
Comme presque toujours dans la SDL, les fonctions pour récupérer le mode de fusion existent aussi. Celle-ci demandent en argument un pointeur de SDL_BlendMode qui sera rempli par le mode de fusion de la texture ou du renderer.
int SDL_GetTextureBlendMode(SDL_Texture* texture, SDL_BlendMode *blendMode);
int SDL_GetRenderDrawBlendMode(SDL_Renderer* renderer, SDL_BlendMode *blendMode);
Vous vous demandez probablement pourquoi il existe une fonction permettant de modifier le mode de fusion du renderer. En réalité, étant donné qu'il n'y a rien "derrière" le renderer, cette transparence ne va s'appliquer au pixels du renderer mais plutôt aux fonctions de dessin associées au renderer, "même quand le renderer n'es pas la cible des modifications". En revanche, lorsqu'on applique une transparence aux texture, celle-ci s'exprimera lorsqu'on affichera la texture sur le renderer : on verra en transparent les pixels du renderer derrière la texture. Il est important de comprendre cette différence car le résultat n'est pas le même. Le mieux pour s'en rendre de compte est de la voir sur un exemple.
En supposant que le fond du renderer est noir, affichez une texture dont le fond est bleu et où l'on a tracé un superbe carré rouge totalement transparent. Voici le code correspondant : 
SDL_Rect texture_pos = {0, 0, 0, 0};
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, 100, 100);
SDL_QueryTexture(texture, NULL, NULL, &texture_pos.w, &texture_pos.h);
SDL_SetRenderDrawBlendMode(renderer ,SDL_BLENDMODE_NONE);
SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
SDL_SetRenderDrawColor(renderer, 0, 0, 255, 255);
SDL_SetRenderTarget(renderer, texture);
SDL_RenderFillRect(renderer, &texture_pos);
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 0);
SDL_Rect rectangle = {20, 20, 50, 50};
SDL_RenderFillRect(renderer, &rectangle);
SDL_SetRenderTarget(renderer, NULL);
En essayant les différentes possibilités avec SDL_BLENDMODE_BLEND et SDL_BLENDMODE_NONE, vous devriez obtenir : 
Il apparaît donc que la gestion de la transparence n'est pas toujours aisée avec la SDL. Si vous avez eu du mal à suivre, le mieux serait peut-être d'essayer les différentes possibilités pour obtenir le résultat que vous souhaitez.
Les surfaces.
Des fonctions similaire existent pour les surfaces (il suffit de remplacer texture par surface). Cependant, elles ne sont utiles que pour le fonctions de blit qui ne sont pas traitées dans ce livre étant donné qu'elles sont obsolètes puisqu'elles n'utilisent pas l'accélération matérielle.

Photographie/Personnalités/B/Adolphe Berdoy

Adolphe Berdoy était un photographe français.

Introduire la biodiversité dans la construction et l'urbanisme/Bien comprendre et utiliser ce livre/Aspects "Extérieur-intérieur", enveloppe, superstructures et contexte

La végétalisation utilisant des plantes sauvages, spontanées ou subspontanées peut dans une certaine mesure peut favoriser l'intégration écopaysagère du bâti dans son environnement, en liant des éléments plus ou moins "intérieurs" à un contexte plus ou moins "extérieurs" (forêt, bocage, fossés, cours d'eau et autres éléments écopaysagers périurbains ou environnant la maison ou le quartier.
La végétation peut aussi si on le souhaite envelopper des structures bâties et ainsi les intégrer dans le paysage végétal ou les "climatiser". 
Contraintes et enjeux de la mise en relation écologique de l'"Extérieur et de l'intérieur".
Cet ouvrage ne prétend pas apporter de solution universelle. 
La biodiversité, par essence, varie selon les lieux et contexte. Et elle évolue dans le temps en trouvant ses propres voies, surtout si l'Homme lui laisse le temps et la place de s'épanouir. 
On cherche ici à trouver ou retrouver une sorte d'équilibre entre la place à donner à l'Homme et au reste du vivant, qui soit moins exclusif. 
Ceci ne se fait pas sans contraintes, mais au cas par cas. Selon le contexte humain et la taille du lieu et la disponibilité en ressources spatiales et hydriques, certaines espèces doivent être privilégiées, ou au contraire évitées (ex : arbres à grand développement en intérieur ou dans une petite cour). 
Un bon projet se prépare avec un écologue ou devrait requérir un avis d'écologue.
Les exemples et illustrations de ce wikibook.
Les exemples sont là pour inspirer les architectes, les urbanistes, les habitants ou futurs habitants et les paysagistes. 
Ce ne sont ni des recettes de cuisines à suivre à la lettre, ni des exemples exhaustifs. 
La biodiversité inclue les bactéries, les champignons et la faune qui y jouent un rôle fondamental, mais via l’œil, c'est souvent la flore qui envahit notre champ de la perception, visuellement au moins. 
La flore sauvage présente, quand elle est bien adaptée au lieu (et en particulier à ses caractéristiques édaphiques) l'intérêt de ne pas nécessiter d'entretien et parfois d'apparaître spontanément. 
Dans le contexte du bâti, elle doit néanmoins être « contrôlée ». Elle le sera par des actions de taille et de gestion (au moyen d'herbivores éventuellement), ou parfois, pour partie, par une écoconception architecturale et urbanistique du lieu. 
Une architectonique bien réfléchie en amont dans cet objectif peut en effet favoriser certaines plantes, et défavoriser d'autres plantes (Les espèces végétales, chacune selon son espèce, sont plus ou moins dépendantes des conditions d'éclairement, de sol (quantité et qualité), de disponibilité en eau, etc.). 
Ce Wikibook est votre wikibook, notre wikibook.
Il est ouvert et collaboratif. N'hésitez pas à améliorer un contenu, ajouter une illustration pertinente ou ajouter un commentaire en page de discussion.
Noue garnie d'une végétation naturelle et un aménagment artificialisant
= Notes et références =

Photographie/Personnalités/A/Fratelli D'Alessandri