图像加载和显示
参考: 加载和显示图像的示例
ImTextureID在不同项目中指向不同的实际结构,需要Imgui用户自己加载图像。
有了ImTextureID之后,如果想在Imgui的弹出窗口外绘制前景和背景图,代码及效果如下。
if (draw_bg)
ImGui::GetBackgroundDrawList()->AddCircle(window_center, window_size.x * 0.6f, IM_COL32(255, 0, 0, 200), 0, 10 + 4);
if (draw_fg)
ImGui::GetForegroundDrawList()->AddCircle(window_center, window_size.y * 0.6f, IM_COL32(0, 255, 0, 200), 0, 10);
按键
ImGuiIO::KeysDown[512]
数组储存了当前按键状态,ImGuiIO::KeyMap[ImGuiKey_COUNT]
数组储存了预定义的宏ImGuiKey到KeysDown索引的映射关系,也可以使用下面函数来读取映射关系。
// 使用此函数来返回一个imgui定义的key到ImGuiIO.KeysDown的索引
IMGUI_API int GetKeyIndex(ImGuiKey imgui_key);
然后ImGuiIO::KeysDown[512]
是需要调用者自己根据当前平台及引擎自己填充,比如Reshade是使用windows消息来填充,并且索引为windows的VK_xxx。