imgui入门,imgui模块

虽然是在外面很流行的UI库,但是在这里介绍简单的使用方法

3358 www.Sina.com/https://github.com/ocornut/img ui

引擎Git地址Win10、Directx11 SDK、VS2015、Imgui版本为1.78 WIP

开发环境工程目录下的examples中有一个使用DX11的示例,通过代码组织的库文件可以看到:

其中imgui_impl_dx11.h和imgui_impl_dx11.cpp由博客重新打包,并在正文的末尾提供软件包库下载。

开发准备d3d11.lib,d3dcompiler.lib

引用库1,创建D3D设备,然后初始化imgui引擎

IMGUI_CHECKVERSION (; img ui :创建上下文(; //样式ImGui:StyleColorsDark (; //设置用于显示中文ImFontConfig Config的字体; Config.MergeMode=true; ImGuiIO io=ImGui:GetIO (; io.Fonts-AddFontDefault (; io.fonts-addfontfromfilettf (c :\\ windows\\ fonts\simsun.TTC ‘,16.0f,Config,io.fonts-getgg imgui D3D设备上下文) imgui_impldx11_init (m _ wnd,m_pd3dDevice,m_pd3dDeviceContext ) )初始化的img ui _ impl dx11 _ init 2、主绘制线程内调用(imgui渲染过程) ) ) ) ) ) )。

ImGui_ImplDX11_NewFrame (; /*用户定义区域开始*/BeginDraw (); UIDrawMenu (绘制; //绘制图形的DrawOther (; EndDraw (; /*用户定义区域结束*/ImGui:Render (; m _ pd3 ddevice context-omsetrendertargets (1,m_mainRenderTargetView,NULL ); img ui _ impl dx11 _ renderdrawlists (img ui :3360 getdrawdata (; 这里显示了用户定义区域的代码。 作为参考

VOID BeginDraw () {//UI表单背景色img ui : pushstylecolor (imguicol _ window BG,imvec4) 0.0F、0.0F、0.0F和1.0F ) //UI窗体创建ImGui:Begin (,reinterpret_castbool*(true ),imguiwindowflags _ no titlebar|imguiwindowflags _ te //UI窗体的位置,如果需要拖动,请不要设置img ui :3360 setwindowpos (im vec2(0,0 ),ImGuiCond_Always )。 //UI表单大小img ui :3360 set windowsize (im vec2) img ui : getio.display size.x,img ui : getio.displaplace ImGui:GetIO ).displaay //UI表单样式imguistylestyle=img ui : get style (; //表单框圆角style.WindowRounding=0.0f; }VOID EndDraw () imguiwindow * window=img ui : getcurrentwindow ); window-draw list-pushcliprectfullscreen (; img ui :结束(; ImGui:PopStyleColor (; }voiddrawmenu((/UI表单大小img ui : setnextwindowsize (im vec2(200,500 ) ); ImGuiWindowFlags window_flags=0; window _ flags|=imguiwindowflags _ no collapse; window _ flags|=imguiwindowflags _ noresize; //用于临时保存控件值bool bTestCheckBox=false; img ui :3360 begin (‘,reinterpret_castbool*(true ),window_flags((if ) img ui :3360 collapsing header () ImGui:SameLine (; imgui:3360checkbox(U8’AAAA ‘,bTestCheckBox ); img ui :树pop (; } img ui :树节点(u8 ‘ about2’ ) img ui :检查盒(U8’bbbb ‘,btest检查盒); ImGui:SameLine (; imgui:3360checkbox(U8’bbbb ‘,bTestCheckBox ); img ui :树pop (; }}ImGui:End (; }}void DrawOther ()//颜色imvec4colf=imvec4) 1.0f、1.0f、0.4f、1.0f ); constIMU32col=imcolor(colf ); //绘图图形IMD rawlist * draw _ list=img ui :3360 getwindowdrawlist (; //线draw _ list-addline (imvec2(0,20 ),im vec2) 500,500 ),col,3.0f ); //draw _ list-add text (im vec2(30,500 ),col,string_to_utf8 (“显示中文”).c_str ) ); //矩形draw _ list-addrect (imvec2(50,100 ),im vec2) 150,230 ),col,0.0f,0,3.0f ); } 3、窗口消息回调中(用于响应UI控件) ) ) ) ) ) ) )。

img ui _ impl win32 _ wndproc handler (hwnd,msg,wParam,lParam ) {return 0; (4、释放代码

//引擎ImGui_ImplDX11_Shutdown (; img ui :描述上下文(; 以上初步使用了框架,之后要深入使用就另外发博文。

PS .软件包下载站点:

3359 download.csdn.net/download/yo ie01/12860324

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注