Home 实现轻量级Git管理软件
Post
Cancel

实现轻量级Git管理软件

GitBee

用ImGui实现的轻量级Git界面管理软件

支持基本的Git历史记录浏览、差异对比、分支操作、提交、推送等
默认支持ImGui Dark/Light两种界面样式
保持美观、轻量、直观、不崩溃, 希望能坚持下去

darklight

体验下载

itch.io

中文输入跟随支持

ImGui.NET SDL对输入法的支持压根没有,极其难用,这里用通过C++的底层交互,实现了输入法的跟随
每次体验感觉写个文本编辑器都可以,还不错…

扩展方向

支持lua作为插件脚本

图谱预览实现

勉强实现,不卡性能,简单的看看还可以,对于复杂的谱图支持还不直观, 表现上优化好难…
后面为其他软件的参考截图

GitBeeSourceTreeFork

内存优化

想实现小而美的软件,默认200MB+的内存占用,有点不能接受
主要原因还是在于ImGui使用静态字符缓存,在调用ImGui.GetIO().Fonts.GetGlyphRangesChineseFull()本身使用中文全字符集,会生成一张8K的字体纹理,内存直接跳到200MB+,如果使用ImGui.GetIO().Fonts.GetGlyphRangesChineseSimplifiedCommon,虽然这里只占用40-50MB,但是这里只有2500个中文字符,明显不够用。折中这里使用了自定义字符集,读取在lua/style/chinese.txt里面的默认3500个字符,虽然也可能出现不显示的字符,体验不完美,但是至少可以手动添加作为弥补,把内存控制到了70MB+
ImGui就算这个不使用全字符集的字体内存的占用,感觉还是有点夸张的,看后面有没有更好的解决方案

cpu占用优化

这里主要使用固定帧率,用来优化cpu占用,基本能保证在界面非激活状态中cpu占用接近0%
流畅模式: 界面激活状态固定60帧,非激活状态10帧
性能模式: 界面激活状态固定30帧,非激活状态5帧

多语言支持(理论上)

lua/style.lua中修改语言、字体以及对应的字形即可

新增图片对比

游戏开发中图片资源的更新对比也是比较常见的, 这里也尝试加了一下,更多信息有待完善

另外希望增加更多的文件对比,比如fbx、gltf、excel等

This post is licensed under CC BY 4.0 by the author.

Unity Hex Map技术测试

Excel转Protobuf/Json通用配置文件