问题标签 [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 投票
0 回答
1461 浏览

c++ - 用 C++ 编译 ImGui

https://github.com/ocornut/imgui上它说:No specific build process is required. You can add the .cpp files to your existing project.我尝试使用带有相关.cpp文件的代码块,但是它给了我大约 500+ Undefined Reference to ... errorsimgui.cpp存在的第一个开始|1994|undefined reference to `ImGui::InputText(char const*, char*, unsigned long, int, int (*)(ImGuiInputTextCallbackData*), void*)'。这是我尝试过的以下代码。

我错过了什么?我在网页上找不到任何链接器命令(根据我的经验,“未定义的引用...”通常是缺少链接器选项的结果)

0 投票
1 回答
2233 浏览

c++ - ImGui 示例代码/基本初始化不起作用(Windows 和 Linux)

我正在尝试设置 ImGui 来制作一些应用程序,但是我无法让它工作。我从 GitHub,https://github.com/ocornut/imgui安装了.h和文件,并按照说明允许项目编译,它确实如此。但是在 Windows 和 Linux 上(我都试过了),它会吐出一个运行时错误,(停止响应 Windows,分段错误(核心转储)Linux)。这是发布的示例代码,.cpp

my_tool_active现在这段代码由于and无法编译my_color,所以我在代码之前添加了这两行ImGui::Begin()

所以现在当我编译和运行时,它会ImGui::Begin()在那个阶段崩溃。我在一个小得多的示例中尝试过它,它只是ImGui::Begin()andImGui::End()并在其周围放置了 print 语句,它表明它从未完成执行Begin().

0 投票
0 回答
124 浏览

c++ - GUI中的全局变量?

我正在使用 C++ 和 SDL2 设计一个即时 gui。当我开始设计我的框架时,我注意到基本上一切都需要渲染器或某种事件或其他相关信息(字体、主题等)。将这些放置为只有 gui 函数可以访问的全局静态对象是否有意义,或者只是继续传递所有内容。

这样可以吗?这可能是标题:

那么这可能是 .cpp 文件:

0 投票
1 回答
1094 浏览

color-picker - ImU32 上的 ImGui 颜色选择器

ImGui 中的颜色选择器适用于浮点向量。

但是我将颜色数据存储在无符号整数中。

我怎样才能让 ColorPicker3ImU32改为处理值?

请注意,ImGUI 是即时模式 API,因此它会更改您下面的值,这意味着转换步骤不容易引入。

0 投票
1 回答
934 浏览

c++ - 如何与在 SFML-IMGUI 中创建的按钮相关联?

您好,我想用 SFML-IMGUI 创建一些按钮,然后以某种方式与它们相关联,例如更改文本。我怎样才能做到这一点?我没有看到任何 ID 属性。我使用此代码创建按钮。

我在文档中看不到任何示例:/

0 投票
0 回答
754 浏览

c++ - 使用 OpenGL 3 和 GLFW 在 Mac 上设置 ImGui

我是OpenGL的新手,对 C++ 也很陌生

我使用Xcode在基于英特尔的 Mac计算机上创建了一个OpenGL项目, 我正在使用以下依赖项:

  • GLFW
  • GLEW
  • 数学的 GLM

我已将OpenGLGLSL版本设置如下:

  • OpenGL 版本:4.1 ATI-4.2.13
  • 支持的 GLSL 版本是 4.10

我已经从他们的 GitHub 页面https://github.com/ocornut/imgui下载了 ImGui 的源文件 但是,我正在努力链接库并获得未定义的符号编译器错误。

这是我的存储库的链接:https ://github.com/AybarsAcar/OpenGLScratch

谢谢

0 投票
1 回答
223 浏览

c++ - ImGui 多重采样

我使用多重采样将我的场景渲染到 FBO。我用作 ImGui::Image 内容的结果纹理。但是如何禁用 gui 的多重采样?我试过:

但这不起作用。MSAA 实际上在 gui 绘图时启用(文本模糊)。

0 投票
1 回答
1838 浏览

c++ - 带有 ImGui 和 SDL2 的 OpenGL 渲染器

我正在尝试使用所有 3 个库或诸如此类的东西,但我对示例代码感到很困惑,而且我不能完全遵循文档。这是代码,并在下面解释了我的困惑:

我在这里有一些困惑,首先SDL_Renderer是代码中没有任何地方。我注意到显示绘制颜色由 OpenGL 处理,但渲染是通过glClear(GL_COLOR_BUFFER_BIT);(我认为)调用的。不过,我不确定,我如何才能真正调用任何 SDL2 函数,例如SDL_RenderFillRect()没有 SDL_Renderer ?我最好的提示是这一行:

它的 SDL_GL_SwapWindow() 在哪里,但我相信这也为 OpenGL 渲染?我不太确定所有撕裂中的哪条线实际上做了什么。我的意思是我本来以为ImGui::Render()会渲染所有 ImGui 的东西,但是有一个ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());然后我不确定SDL_GL_SwapWindow关系如何,因为我已经调用了glClear(). 此外,为什么ImGui::EndFrame()在一帧末尾的示例代码中调用但未调用一个函数,然后ImGui::NewFrame()每个循环都有一个函数,并且对于ImGui_ImplOpenGL3_NewFrame(); ImGui_ImplSDL2_NewFrame(window);有人可以解释其中一些非常令人困惑的事情。

0 投票
1 回答
360 浏览

three.js - three.js + imgui-js 项目中的场景渲染问题

我有一个项目正在使用Three.jsimgui-js. 我正在尝试更新到每个版本的最新版本,但我遇到了问题(它们最后一次更新是在 2020 年 2 月左右)。

要初始化我正在调用的两个库:

然后我将一些对象添加到三个场景中:

并调用如下所示的更新循环:

更新到这些库的最新版本后,我遇到了场景中的对象未按预期呈现的问题。

例如,我将 2 添加GridHelpers到场景中,但由于某种原因只显示了一个。此外,如果在场景中切换不同对象的可见性Three,例如关闭/打开其中一个网格的显示,则在切换回对象时不会再次显示(有时其他对象会消失)。

发生的另一个问题是更复杂的网格材质将具有意想不到的透明度,但是对于我在此示例中添加的简单框,该问题似乎不会发生。虽然,根据是否进行ImGui_Impl.RenderDrawData呼叫,框的外观可能会发生变化,这可能是相关的。

我发现如果我注释掉对 的调用ImGui_Impl.RenderDrawData(ImGui.GetDrawData()),场景会按预期显示,两个网格助手都会出现,所以我怀疑现在两个库的使用之间可能存在一些内部冲突webGl。尽管我绝对有可能设置不正确,或者我错过了所需的电话。

为了帮助演示该问题,我创建了一个复制该问题的片段:https ://codepen.io/bpeake/pen/KKNNQre 。

imgui-js我的or设置有什么问题three-js吗?关于我可以做什么以使ImGui_Impl.RenderDrawData调用不会影响我的three.js场景渲染的任何想法?

0 投票
0 回答
453 浏览

c++ - 在 C++ 中的 SDL2 和 OpenGL2 中将 rgb 像素阵列绘制或 blit 到窗口的最快方法

问题:

如何使用 SDL2 和 OpenGL2 尽可能快且高效地将 rgb 像素图像(rgb 结构数组)绘制到显示器上?我尝试映射到 2d 纹理并 blitting SDL_Surface ......我认为 2d 纹理稍微快一些,但它使用了更多的 CPU ......

语境:

我正在用 C++ 制作自己的光线追踪器,并且设置了一些框架,以便我可以实时观看光线追踪的图像。我目前正在将 SDL2 用于窗口,并且通过 OpenGL 将图像映射到 2d 纹理来显示我的渲染图像。我应该提到我正在使用 OpenGL2 进行渲染,因为:

  1. 我在 WSL
  2. 我正在使用需要 OpenGL (DearImGUI) 的 GUI 库

我目前的速度约为 55fps,但它使用大量 cpu 来绘制窗口,这是我没想到的。我想知道是否有一种方法可以更快地显示 rgb 像素阵列并减少我的 cpu 上的计算量/压力。我有一个 2 核 (lol) i7-5500U cpu(带集成显卡),我正在使用我的笔记本电脑进行渲染。我猜这可能是我笔记本电脑的极限,因为它没有独立的 gpu 来提供帮助,但最好还是问问。

我也是 OpenGL 的一个完整的初学者,所以我的代码也有可能得到改进,所以我也感谢对我的实现的任何反馈。

方法:

所以我想详细说明我显示实时渲染图像的方式。在伪代码和c++代码方面:

我知道我可以通过 SDL 对屏幕进行 blit,并且我已经尝试过了,但这不适用于 OpenGL。我最终得到了一些粗糙的屏幕撕裂和闪烁。

那么,就速度/效率而言,这是我能做到的最好的吗?