{"id":5038,"date":"2016-05-31T09:48:31","date_gmt":"2016-05-31T09:48:31","guid":{"rendered":"http:\/\/anthroponaute.fr\/blog-informatique\/?p=5038"},"modified":"2016-05-31T09:51:25","modified_gmt":"2016-05-31T09:51:25","slug":"une-classe-guiimage-pour-afficher-une-image","status":"publish","type":"post","link":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/?p=5038","title":{"rendered":"Une classe GUIImage pour afficher une image"},"content":{"rendered":"<p><strong>Intro :<\/strong><\/p>\n<p><del><\/del><a href=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/05\/4NgHv.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-5044\" src=\"https:\/\/anthropoya.cluster014.ovh.net\/blog-informatique\/wp-content\/uploads\/2016\/05\/4NgHv.jpg\" alt=\"4NgHv\" width=\"488\" height=\"275\" srcset=\"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/05\/4NgHv.jpg 1280w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/05\/4NgHv-300x169.jpg 300w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/05\/4NgHv-1024x576.jpg 1024w, https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/wp-content\/uploads\/2016\/05\/4NgHv-624x351.jpg 624w\" sizes=\"(max-width: 488px) 100vw, 488px\" \/><\/a><\/p>\n<p>Parfois nous avons besoin d&rsquo;afficher une <strong>image<\/strong> pour rendre <strong>l&rsquo;interface utilisateur (GUI)<\/strong> plus jolie.<\/p>\n<p><strong>Pr\u00e9requis : <\/strong><\/p>\n<p>&#8211; Avoir lu la classe <em>GUIWidget<\/em><\/p>\n<p><strong>Contenu : <\/strong><\/p>\n<p>Voici le fichier GUIImage.h :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#ifndef GUI_IMAGE_H\r\n#define GUI_IMAGE_H\r\n\r\n#include &quot;GUIWidget.h&quot;\r\n\r\nclass GUIImage : public GUIWidget\r\n{\r\npublic:\r\n\u00a0\u00a0 \u00a0GUIImage(const std::string&amp; sName, const std::string&amp; sTextureFileName);\r\n\u00a0\u00a0 \u00a0virtual ~GUIImage();\r\n\r\n\u00a0\u00a0 \u00a0virtual void SetTextureImage(const std::string&amp; sTextureName);\r\n\r\n\u00a0\u00a0 \u00a0virtual void Update(float fTimeSinceLastFrame);\r\n\r\n\u00a0\u00a0 \u00a0virtual void SetPosition(unsigned int x, unsigned int y);\r\n\r\n\u00a0\u00a0 \u00a0virtual void SetSize(unsigned int iWidth, unsigned int iHeight);\r\n\r\n\u00a0\u00a0 \u00a0virtual void SetVisible(bool bVisible);\r\n\r\n\u00a0\u00a0 \u00a0Sprite2D* GetImage();\r\n\r\nprivate:\r\n\u00a0\u00a0 \u00a0Sprite2D* m_pImage;\r\n};\r\n\r\n#endif\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Voici le fichier GUIImage.cpp :<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#include &quot;GUIImage.h&quot;\r\n#include &quot;Sprite2D.h&quot;\r\n#include &quot;Defines.h&quot;\r\n\r\nGUIImage::GUIImage(const std::string&amp; sName, const std::string&amp; sTextureFileName) :\r\nGUIWidget(sName),\r\nm_pImage(nullptr)\r\n{\r\n\u00a0\u00a0 \u00a0m_pImage = new Sprite2D(sTextureFileName);\r\n\u00a0\u00a0 \u00a0m_pImage-&gt;Initialize();\r\n\r\n\u00a0\u00a0 \u00a0unsigned int iImageWidth = m_pImage-&gt;GetWidth();\r\n\u00a0\u00a0 \u00a0unsigned int iImageHeight = m_pImage-&gt;GetHeight();\r\n\r\n\u00a0\u00a0 \u00a0SetSize(iImageWidth, iImageHeight);\r\n}\r\n\r\nGUIImage::~GUIImage()\r\n{\r\n\u00a0\u00a0 \u00a0SAFE_DELETE(m_pImage);\r\n}\r\n\r\nvoid GUIImage::Update(float fTimeSinceLastFrame)\r\n{\r\n\u00a0\u00a0 \u00a0if (IsVisible())\r\n\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0m_pImage-&gt;Render();\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0GUIWidget::Update(fTimeSinceLastFrame);\r\n}\r\n\r\nvoid GUIImage::SetTextureImage(const std::string&amp; sTextureName)\r\n{\r\n\u00a0\u00a0 \u00a0m_pImage-&gt;SetTextureImage(sTextureName);\r\n\r\n\u00a0\u00a0 \u00a0\/\/ On restaure les dimensions d'avant\r\n\u00a0\u00a0 \u00a0unsigned int iWidth = 0;\r\n\u00a0\u00a0 \u00a0unsigned int iHeight = 0;\r\n\r\n\u00a0\u00a0 \u00a0GetSize(iWidth, iHeight);\r\n\r\n\u00a0\u00a0 \u00a0m_pImage-&gt;SetImageSize(iWidth, iHeight);\r\n}\r\n\r\nvoid GUIImage::SetPosition(unsigned int x, unsigned int y)\r\n{\r\n\u00a0\u00a0 \u00a0m_pImage-&gt;SetPosition(x, y);\r\n\r\n\u00a0\u00a0 \u00a0GUIWidget::SetPosition(x, y);\r\n}\r\n\r\nvoid GUIImage::SetSize(unsigned int iWidth, unsigned int iHeight)\r\n{\r\n\u00a0\u00a0 \u00a0m_pImage-&gt;SetImageSize(iWidth, iHeight);\r\n\r\n\u00a0\u00a0 \u00a0GUIWidget::SetSize(iWidth, iHeight);\r\n}\r\n\r\nvoid GUIImage::SetVisible(bool bVisible)\r\n{\r\n\u00a0\u00a0 \u00a0if (bVisible)\r\n\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0m_pImage-&gt;Show();\r\n\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0else\r\n\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0m_pImage-&gt;Hide();\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0GUIWidget::SetVisible(bVisible);\r\n}\r\n\r\nSprite2D* GUIImage::GetImage()\r\n{\r\n\u00a0\u00a0 \u00a0return m_pImage;\r\n}\r\n\r\n<\/pre>\n<p><strong>R\u00e9sum\u00e9 :<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intro : Parfois nous avons besoin d&rsquo;afficher une image pour rendre l&rsquo;interface utilisateur (GUI) plus jolie. Pr\u00e9requis : &#8211; Avoir lu la classe GUIWidget Contenu : Voici le fichier GUIImage.h : &nbsp; Voici le fichier GUIImage.cpp : R\u00e9sum\u00e9 :<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[17],"tags":[],"_links":{"self":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/5038"}],"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=5038"}],"version-history":[{"count":6,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/5038\/revisions"}],"predecessor-version":[{"id":5040,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=\/wp\/v2\/posts\/5038\/revisions\/5040"}],"wp:attachment":[{"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.la-porte-des-nebuleuses.net\/blog-informatique\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}