ImGui-imgui介绍
<h3>相关资料:</h3><p>http://t.zoukankan.com/jhy16193335-p-11184676.html</p>
<h3 id="创建窗口">创建窗口</h3>
<pre><code class="language-CPP"> ImGui::Begin("Hello, world!");
ImGui::End();
</code></pre>
<p> </p>
<p>其中, <code>ImGui::Begin("Hello, world!");</code>函数的原型是<code>IMGUI_API bool Begin(const char* name, bool* p_open = NULL, ImGuiWindowFlags flags = 0);</code><br>p_open决定了他是否是打开状态,flags决定了他的样式。<br>flags是一个整数,表示你需要的样式的和,以下是所有的flag</p>
<pre><code class="language-CPP"> ImGuiWindowFlags_None = 0,
ImGuiWindowFlags_NoTitleBar = 1 << 0, // Disable title-bar
ImGuiWindowFlags_NoResize = 1 << 1, // Disable user resizing with the lower-right grip
ImGuiWindowFlags_NoMove = 1 << 2, // Disable user moving the window
ImGuiWindowFlags_NoScrollbar = 1 << 3, // Disable scrollbars (window can still scroll with mouse or programmatically)
ImGuiWindowFlags_NoScrollWithMouse = 1 << 4, // Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set.
ImGuiWindowFlags_NoCollapse = 1 << 5, // Disable user collapsing window by double-clicking on it
ImGuiWindowFlags_AlwaysAutoResize = 1 << 6, // Resize every window to its content every frame
ImGuiWindowFlags_NoBackground = 1 << 7, // Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f).
ImGuiWindowFlags_NoSavedSettings = 1 << 8, // Never load/save settings in .ini file
ImGuiWindowFlags_NoMouseInputs = 1 << 9, // Disable catching mouse, hovering test with pass through.
ImGuiWindowFlags_MenuBar = 1 << 10,// Has a menu-bar
ImGuiWindowFlags_HorizontalScrollbar = 1 << 11,// Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the "Horizontal Scrolling" section.
ImGuiWindowFlags_NoFocusOnAppearing = 1 << 12,// Disable taking focus when transitioning from hidden to visible state
ImGuiWindowFlags_NoBringToFrontOnFocus= 1 << 13,// Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus)
ImGuiWindowFlags_AlwaysVerticalScrollbar= 1 << 14,// Always show vertical scrollbar (even if ContentSize.y < Size.y)
ImGuiWindowFlags_AlwaysHorizontalScrollbar=1<< 15,// Always show horizontal scrollbar (even if ContentSize.x < Size.x)
ImGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16,// Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient)
ImGuiWindowFlags_NoNavInputs = 1 << 18,// No gamepad/keyboard navigation within the window
ImGuiWindowFlags_NoNavFocus = 1 << 19,// No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB)
ImGuiWindowFlags_UnsavedDocument = 1 << 20,// Append '*' to title without affecting the ID, as a convenience to avoid using the ### operator. When used in a tab/docking context, tab is selected on closure and closure is deferred by one frame to allow code to cancel the closure (with a confirmation popup, etc.) without flicker.
ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse,
ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
//
ImGuiWindowFlags_NavFlattened = 1 << 23,// Allow gamepad/keyboard navigation to cross over parent border to this child (only use on child that have no scrolling!)
ImGuiWindowFlags_ChildWindow = 1 << 24,// Don't use! For internal use by BeginChild()
ImGuiWindowFlags_Tooltip = 1 << 25,// Don't use! For internal use by BeginTooltip()
ImGuiWindowFlags_Popup = 1 << 26,// Don't use! For internal use by BeginPopup()
ImGuiWindowFlags_Modal = 1 << 27,// Don't use! For internal use by BeginPopupModal()
ImGuiWindowFlags_ChildMenu = 1 << 28 // Don't use! For internal use by BeginMenu()
</code></pre>
<p>以上内容在<code>imgui.h</code>的枚举<code>ImGuiWindowFlags_</code>里也有。</p>
<h3 id="创建文字">创建文字</h3>
<pre><code class="language-CPP"> ImGui::Begin("Hello, world!");
ImGui::Text("%s","Hello");
ImGui::Text("world");
ImGui::End();</code><br><br><br></pre>
<p>其中文字是可以使用格式化的。</p>
<h3 id="创建图片">创建图片</h3>
<pre><code class="language-CPP">ImGuiIO& io = ImGui::GetIO();
ImTextureID tex_id = io.Fonts->TexID;
ImGui::Begin("Hello, world!");
ImGui::Image(tex_id,ImVec2(64,64));
ImGui::End();</code><br><br><br>由于Imgui的图片加载和自己选择的图形渲染库有关,所以这里我们拿字体图片做例子。<br>猜测,由于字体图片的比例和我们设置的长宽比不一致,所以渲染出来的图形也不是正方形。<br><code>ImGui::Image</code>的函数原型是<code>IMGUI_API void Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0 = ImVec2(0,0), const ImVec2& uv1 = ImVec2(1,1), const ImVec4& tint_col = ImVec4(1,1,1,1), const ImVec4& border_col = ImVec4(0,0,0,0));</code><br>其中size是渲染出来的大小,uv0和uv1都是一个0-1的小数,表示要渲染的图片在材质的位置,tint_col和border_col是两个颜色由一个32位整数表示,RGBA。</pre>
</div>
<div id="MySignature" role="contentinfo">
<div id="AllanboltSignature">
<div>作者:疯狂Delphi</div>
<div>出处:https://www.cnblogs.com/FKdelphi/</div>
<div>本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.</div>
</div>
<div class="div_masklayer" id="div_masklayer"></div>
<div class="div_popup" id="Div_popup">
<p class="mid">欢迎关注我,一起进步!扫描下方二维码即可加我</p>
<img class="img_zfb" id="img_zfb" width="150" src="https://images.cnblogs.com/cnblogs_com/FKdelphi/1101510/o_251208113944_QQ.png">
<img class="img_zfb" id="img_zfb" width="150" src="https://images.cnblogs.com/cnblogs_com/FKdelphi/1101510/o_251208115029_WX.png">
</div><br><br>
来源:https://www.cnblogs.com/FKdelphi/p/14756094.html
頁:
[1]