{"id":1845,"date":"2015-04-06T16:32:54","date_gmt":"2015-04-06T16:32:54","guid":{"rendered":"http:\/\/anthroponaute.fr\/blog-informatique\/?p=1845"},"modified":"2015-12-03T18:42:40","modified_gmt":"2015-12-03T18:42:40","slug":"les-principales-fonctions-de-la-bibliotheque-d3dx","status":"publish","type":"post","link":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/?p=1845","title":{"rendered":"Les principales fonctions de la biblioth\u00e8que D3DX (DirectX 10)"},"content":{"rendered":"<p><a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2015\/04\/jigsawpuzzle.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1907\" src=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2015\/04\/jigsawpuzzle.jpg\" alt=\"jigsawpuzzle\" width=\"232\" height=\"200\" \/><\/a><\/p>\n<p><strong>Intro :<\/strong><\/p>\n<p>La biblioth\u00e8que D3DX (<em>D3DX utility library<\/em>) impl\u00e9mente plusieurs fonctions courantes afin de faciliter certaines t\u00e2ches d&rsquo;utilisation de l&rsquo;API 3D DirectX 10.<\/p>\n<p>Nous verrons les objets de cette biblioth\u00e8que suivant :<\/p>\n<p><em><strong>&#8211; ID3DX10Sprite<\/strong><\/em><\/p>\n<p><em><strong>&#8211; ID3DX10Font<\/strong><\/em><\/p>\n<p><em><strong>&#8211; ID3DX10Mesh<\/strong><\/em><\/p>\n<p><strong>Pr\u00e9requis :<\/strong><\/p>\n<p>&#8211; Savoir comment initialiser correctement DirectX 10 (voir ces articles)<\/p>\n<p><strong>Explications :<\/strong><\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\">ID3DX10Sprite<\/span> :<\/p>\n<p>Permet de simplifier l&rsquo;<strong>affichage d&rsquo;images 2D<\/strong>.<\/p>\n<p>On cr\u00e9\u00e9 cet objet avec la fonction : D3DX10CreateSprite()<\/p>\n<p>J&rsquo;ai d\u00e9j\u00e0 expliqu\u00e9 son utilisation dans cet <a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/?p=1582\">article<\/a> (dans la premi\u00e8re m\u00e9thode)<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\">ID3DX10Font<\/span> :<\/p>\n<p>Permet<strong> d&rsquo;afficher du texte<\/strong> \u00e0 l&rsquo;\u00e9cran avec une police de font donn\u00e9e.<\/p>\n<p>On d\u00e9clare les objets ID3DX10Font et ID3DX10Sprite :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nID3DX10Font* m_pFont;\r\nID3DX10Sprite* m_pSprite;\r\n<\/pre>\n<p>On initialise plus loin ces objets comme suit :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\/\/ Il faut cr\u00e9er un objet ID3DX10Sprite\r\nD3DX10CreateSprite(m_pd3dDevice, 0, &amp;m_pSprite);\r\n\r\n\/* D\u00e9taille les attributs de cette police d'affichage *\/\r\nD3DX10_FONT_DESC fd;\r\n\r\n\/\/ D\u00e9finit la hauteur d'un caract\u00e8re de cette police\r\nfd.Height = 30;\r\n\/\/ D\u00e9finit la largeur d'un caract\u00e8re de cette police\r\nfd.Width = 18;\r\nfd.Weight = 0;\r\nfd.MipLevels = 4;\r\n\/\/ En italique ou non\r\nfd.Italic = false;\r\nfd.CharSet = OUT_DEFAULT_PRECIS;\r\nfd.Quality = DEFAULT_QUALITY;\r\nfd.PitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;\r\n\/\/ D\u00e9finit le nom de la police \u00e0 utiliser\r\nwcscpy(fd.FaceName, L&quot;Impact&quot;);\r\n\u00a0\r\nD3DX10CreateFontIndirect(m_pd3dDevice, &amp;fd, &amp;m_pFont);\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Dans la boucle de rendu on ajoute :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n\r\nEnableZBuffer(false);\r\n\r\nm_pSprite-&gt;Begin(D3DX10_SPRITE_SAVE_STATE);\r\n     m_pFont-&gt;DrawText(m_pSprite, L&quot;Hello World!&quot;, -1, &amp;rectangle, DT_NOCLIP, color);\r\nm_pSprite-&gt;End();\r\n\r\nEnableZBuffer(true);\r\n\r\n<\/pre>\n<p>Le param\u00e8tre D3DX10_SPRITE_SAVE_STATE permet de restaurer les \u00e9tats du rendu 3D apr\u00e8s l&rsquo;appel End() comme ils \u00e9taient configur\u00e9s avant l&rsquo;appel Begin().<\/p>\n<p>On d\u00e9sactive l&rsquo;\u00e9criture sur le Z-Buffer pour pr\u00e9server la profondeur de ce qui est affich\u00e9 avant l&rsquo;appel \u00e0 m_pFontText().<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\">ID3DX10Mesh<\/span> :<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intro : La biblioth\u00e8que D3DX (D3DX utility library) impl\u00e9mente plusieurs fonctions courantes afin de faciliter certaines t\u00e2ches d&rsquo;utilisation de l&rsquo;API 3D DirectX 10. Nous verrons les objets de cette biblioth\u00e8que suivant : &#8211; ID3DX10Sprite &#8211; ID3DX10Font &#8211; ID3DX10Mesh Pr\u00e9requis : &#8211; Savoir comment initialiser correctement DirectX 10 (voir ces articles) Explications : &nbsp; &nbsp; ID3DX10Sprite [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7],"tags":[],"_links":{"self":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/1845"}],"collection":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1845"}],"version-history":[{"count":45,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/1845\/revisions"}],"predecessor-version":[{"id":4279,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/1845\/revisions\/4279"}],"wp:attachment":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}