低依赖C++ GUI库imgui笔记

目的:选择一种简化C++ UI库。
开发环境:Windows10 vs2017 c++ x86/x64
imgui地址: https://github.com/ocornut/imgui

imgui库代码目录说明与裁剪:

imgui根目录下的.h和.cpp文件
backend:平台后端相关的代码,删掉不用的,留下glfw、opengl
misc杂项代码
examples示例代码,保留example_glfw_opengl3、libs
docs说明文档

imgui编译时依赖的库

opengl32.lib
glfw3.lib

中文显示问题

1、 从系统拷贝 C:\Windows\Fonts\微软雅黑\msyh.ttc 文件到 当前目录。
2、 在实例代码中搜索 AddFontFromFileTTF 可以找到实例代码中被注释掉的代码。io.Fonts->AddFontFromFileTTF(“msyh.ttc”, 16.0f, nullptr, io.Fonts->GetGlyphRangesChineseFull()); //微软雅黑
3、 调试状态的测试方式:例子程序的Widgets下Basic input text中输入中文。

无显卡驱动问题

GLFW Error #65542 Happen, WGL: The driver does not appear to support OpenGL
参考 https://blog.csdn.net/techfield/article/details/111479210
从 https://fdossena.com/?p=mesa/index.frag 下载对应opengl32.dll与exe放一起。
原理:Mesa3D 通过使用软件渲染来实现 opengl 。

背景知识简述

OpenGL是跨平台图形API接口规范,只有框架没有实现。
DirectX是微软的,不支持跨平台,简化UI暂不考虑。

OpenGL函数库相关的API有核心库(gl),实用库(glu),辅助库(aux)、实用工具库(glut),窗口库(glx、agl、wgl)和扩展函数库等。

GLFW、SDL、FreeGLUT、glut、aux、glad、glew等都是OpenGL的具体实现。

GLFW是OpenGL,OpenGL ES和vutkan开发的开源,多平台库。https://www.glfw.org/
glfw的开发目的是用于替代glut的。它是一个轻量级的,开源的,跨平台的library。
支持OpenGL及OpenGL ES,用来管理窗口,读取输入,处理事件等。
glfw是glut/freegult的升级和改进。glfw是用来显示窗口和捕捉窗口事件的一套API,可以理解成Qt和windows平台的WPF。
Windows Presentation Foundation (WPF)WPF 属于 .NET,创建适用于 Windows 且具有非凡视觉效果的桌面客户端应用程序。

嵌入式Synergy客户端库的实现。

implot库和implot_demos的编译:

(implot_demos未成功,因为访问github不稳定)
implot库、implot_demos都与imgui目录平级存放
需要cmake、cygwin环境(implot_demos只有CMakeLists文件),
cd implot_demos
mkdir build
cd build
cmake … (需要安装git,且能稳定访问github)
cmake --build . --config Release
build文件夹implot_demos.sln文件

你可能感兴趣的:(cpp,c++,imgui)