问题标签 [imgui]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3053 浏览

c++ - 如何在 imgui 窗口中使用 opengl glfw3 渲染?

我正在通过 glfw3 lib 学习 OpenGL,并且正在使用 imgui 制作一个有趣的应用程序。

我想做一个小引擎或 CAD 工具。

问题是我无法在 imgui 窗口中呈现我想要的内容。

我搜索了谷歌并找到以下链接:

  1. https://gamedev.stackexchange.com/questions/150214/render-in-a-imgui-window
  2. https://gamedev.stackexchange.com/questions/140693/how-can-i-render-an-opengl-scene-into-an-imgui-window

我尝试了大约两天,并在 imgui 窗口中渲染了一个三角形。
但是,当我尝试按照此链接教程代码)向我展示内容时。

imgui 窗口中的框不会旋转!!!

我尝试了连续几天,我要放弃了,我真的需要你的帮助。

#define __abc__是要测试的值。Xhader.h 只是教程中的头文件,也是 .vs 和 .fs 文件。不同之处在于教程使用glad.h,而我使用glew.h

0 投票
1 回答
147 浏览

c++ - 圆弧函数 c++

嗨,我正在尝试在亲爱的 imgui 中画四分之一圈,为此我需要一个弧形功能

问题是这个http://prntscr.com/rsyaaf我也想要这个http://prntscr.com/rsybsj我该如何解决上面的代码来自亲爱的 imgui

0 投票
2 回答
776 浏览

c++ - Visual Studio 试图打开不再在项目中的源文件(致命错误 C1083)

问题很简单,真的。我的项目中包含了 imgui,我不再使用它。但是,每次我尝试编译时,VS 仍然会尝试打开它们。

我删除了所有包含并从我的项目中完全删除了文件。任何地方都没有提到它。我也没有将它作为外部库包含(它只是标题)。我已经没有想法了。

错误日志:

有没有办法解决这个问题?

0 投票
0 回答
172 浏览

opengl - 如何在多个窗口 SFML 和 GLFW 中渲染和获取输入?

我想创建两个或多个混合使用 SFML 和 GLFW 的窗口,因为 GLFW 支持多显示器。我在两个窗口中实现了渲染,但输入被锁定,直到我关闭两个窗口中的一个。我使用 ImGui 来显示按钮和选项,并使用 SFML 来呈现关闭、最小化和最大化按钮。唯一接收输入的是那些按钮,但仅在主窗口中。我要做的是下一个:

  1. 创建一个 GLFW 窗口。
  2. 通过 Win32 将 SFML 集成到该窗口。
  3. 在窗口中启动 ImGui 并显示一个按钮来创建第二个窗口。
  4. 我按下按钮并在创建新窗口后锁定输入。
  5. 我关闭第二个窗口,主要恢复正常。

主窗口

第二个窗口

0 投票
1 回答
1748 浏览

c++ - 如何使用依赖 glfw、GLEW 和 GL 制作 Dear ImGui 的 config.cmake 文件

目前我尝试制作 ImGuiConfig.cmake 文件以使用Dear ImGui GUI library

我想从外部项目中使用该库,如下所示。

CMakeLists.txt 之后是我为安装 ImGui 库而编写的文件。

但是当我编译使用 ImGui 库的外部程序时,我得到了以下错误。

似乎没有导入glfw、GLEW和GL库。

如果你告诉我如何使用上面的 CMakeLists.txt 导入 glfw、GLEW 和 GL 库,我很高兴。如果您需要更多信息,请随时告诉我。

提前致谢。


解决方案

感谢 Tsyvarev 非常恰当的评论,我得以解决问题。我改变了我的 CMakeLists.txt 如下。

我刚刚添加到我的 CMakeLists.txt

通过添加这一行,我定义了一个名为 IMGUI_LIBRARIES 的 CMAKE 变量。这个变量的内容是 ImGui;glfw;GLEW;GL。这允许用户通过执行以下操作来加载必要的库,例如 glfw、GLEW 和 GL。

0 投票
1 回答
337 浏览

c++ - 脱离时出现 ImGui Vulkan 验证层错误

当使用 ImGui for Vulkan和它们各自的标头时imgui_impl_vulkan.cppimgui_impl_glfw.cpp我没有收到验证层错误,但是当我使用docking分支和取消停靠时,或者换句话说,当我从 Vulkan 主窗口中分离 ImGui 窗口时(你可能猜到是用 GLFW 创建的),我收到此错误:

我的命令缓冲区是这样创建的:

我像这样初始化 ImGui:

这是beginSingleTimeCommands()

我不知道如何解决这个问题,因为我已经尝试RenderPasses为 ImGui 和主应用程序创建不同的内容,我也尝试创建不同CommandBuffers的内容,但这也没有解决问题。有什么建议么?

编辑:这是我创建的方式RenderPass

而且GraphicsPipeline,我RenderPass对 ImGui 和主窗口都使用相同的:renderPass

0 投票
1 回答
833 浏览

c++ - 让 ImGui 与 Vulkan 一起工作时遇到问题

几天来我一直在努力完成这项工作,但我并没有弄清楚我做错了什么。我收到这些错误消息:

验证层:提交的命令缓冲区需要 VkImage 0x3ba5830000000006[](子资源:aspectMask 0x1 数组第 0 层,mip 级别 0)在布局 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL 中——相反,当前布局是 VK_IMAGE_LAYOUT_UNDEFINED。验证层:在绘制时在 VkPipeline 0xe164150000000050[] 中找不到活动渲染通道!验证层:vkCmdDrawIndexed():此调用必须在活动渲染通道内发出。Vulkan 规范规定:此命令只能在渲染通道实例内调用(https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-renderpass) 验证层:在绘制时在 VkPipeline 0xe164150000000050[] 中找不到活动渲染通道!验证层:vkCmdDrawIndexed():此调用必须在活动渲染通道内发出。Vulkan 规范指出:此命令只能在渲染通道实例内调用(https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-renderpass)验证层:在绘制时在 VkPipeline 0xe164150000000050[] 中找不到活动渲染通道!

0 投票
0 回答
1030 浏览

c++ - imgui 和 sdl 绘制的排序

前段时间,我按照一些 SDL 教程对一些图像进行了 blit,并有一个测试函数循环遍历 SDL 纹理和目标反应的向量,然后调用以下函数将图像复制到窗口中。

这一切都“有效”,因为它可以很好地渲染所有“精灵”

然后我设置了很好的 imgui(我重写了大部分 sdl/vulkan 示例以使用 vulkan c++ 绑定而不是 c api)90% 的代码/结构来自 imgui 示例https://github.com/ocornut /imgui/blob/master/examples/example_sdl_vulkan/main.cpp 每个部分组织成单独的函数。

imgui 设置再次“起作用”,因为我成功显示了演示窗口。此外,我可以轻松制作自己的窗口,而且 API 没有问题。

我的问题是我只能让这两个概念分开工作。如果我删除清除屏幕/将清除值复制到 clear_color 背景颜色gui.clear(false);而不是gui.clear(true)imgui 清除颜色为黑色/它仍然覆盖 sdl 精灵。(与将清除值设置为 0 的 alpha 相同。)我尝试在 imgui 框架之前和之后订购“drawSprites”调用,但它总是覆盖它/覆盖它。

我意识到我没有包括一个最小的可重现示例,我没有包括所有的 imgui 函数,而是它的大量样板文件(vulkan 使设置/渲染/呈现函数超过 100 行,并且包括上下文的设置推动了另一个600 多行。)

有谁知道如何防止 imgui 清除屏幕(我已经在 sdl 部分清除屏幕)(可能更改渲染通道?)

我尝试将清除值 count/pClearValue 设置为 NULL,但这只会使 info 结构不再有效/崩溃(必须至少有 1 个条目),并且我重新检查了此时清除颜色的 alpha 为 0。

或者,我可以尝试将所有 sdl 绘图合并到 imgui 命令缓冲区中(或者用纯 vulkan 替换 sdl 绘图)

我已经调试了好几个小时,慢慢地重写所有示例代码,以了解它的设置方式,但我处于与多年前完全相同的位置,在窗口的其余部分之上绘制几乎没有进展.

我可能不得不重做整个 Vulkan 教程,因为我接触它已经一年了,我的问题可能很明显,但我希望因为我使用 imgui 和 sdl,我可以先写一点引擎,然后再回到渲染后端如果需要,以后再优化东西。

0 投票
1 回答
273 浏览

python-3.x - PyImgui 与 Pyglet 双打键盘输入

我目前正在学习在 Pyglet 应用程序中使用 PyImgui。到目前为止一切似乎都在工作,但我对为什么 PyImgui 将我的数字键盘输入加倍感到困惑。这是我的代码示例:

如果我在键盘上按 1,文本框会显示 11。但是,退格输入不会加倍并且按预期工作。如果我想输入 1500,我必须按 1 然后退格,5 然后退格,然后按 0 一次。

有什么我遗漏或忽视的吗?

0 投票
1 回答
8221 浏览

c++ - 如何在 ImGui 中更改 InputText 的文本颜色?

我正在寻找如何更改“名称”打印上显示的文本的颜色,但我对如何做到这一点一无所知。我想让它变成绿色,感谢帮助或提示:D