aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--3rdparty/qtimgui/ImGuiRenderer.cpp13
-rw-r--r--3rdparty/qtimgui/ImGuiRenderer.h6
-rw-r--r--3rdparty/qtimgui/QtImGui.cpp2
-rw-r--r--gui/CMakeLists.txt8
4 files changed, 20 insertions, 9 deletions
diff --git a/3rdparty/qtimgui/ImGuiRenderer.cpp b/3rdparty/qtimgui/ImGuiRenderer.cpp
index 7f19dcd1..21a2423a 100644
--- a/3rdparty/qtimgui/ImGuiRenderer.cpp
+++ b/3rdparty/qtimgui/ImGuiRenderer.cpp
@@ -39,6 +39,8 @@ QByteArray g_currentClipboardText;
void ImGuiRenderer::initialize(WindowWrapper *window) {
m_window.reset(window);
initializeOpenGLFunctions();
+ g_fun = new QOpenGLFunctions_3_3_Core();
+ g_fun->initializeOpenGLFunctions();
ImGui::CreateContext();
@@ -59,6 +61,7 @@ void ImGuiRenderer::initialize(WindowWrapper *window) {
g_currentClipboardText = QGuiApplication::clipboard()->text().toUtf8();
return (const char *)g_currentClipboardText.data();
};
+ io.IniFilename = nullptr;
window->installEventFilter(this);
}
@@ -114,7 +117,7 @@ void ImGuiRenderer::renderDrawList(ImDrawData *draw_data)
glUseProgram(g_ShaderHandle);
glUniform1i(g_AttribLocationTex, 0);
glUniformMatrix4fv(g_AttribLocationProjMtx, 1, GL_FALSE, &ortho_projection[0][0]);
- glBindVertexArray(g_VaoHandle);
+ g_fun->glBindVertexArray(g_VaoHandle);
for (int n = 0; n < draw_data->CmdListsCount; n++)
{
@@ -148,7 +151,7 @@ void ImGuiRenderer::renderDrawList(ImDrawData *draw_data)
glUseProgram(last_program);
glBindTexture(GL_TEXTURE_2D, last_texture);
glActiveTexture(last_active_texture);
- glBindVertexArray(last_vertex_array);
+ g_fun->glBindVertexArray(last_vertex_array);
glBindBuffer(GL_ARRAY_BUFFER, last_array_buffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, last_element_array_buffer);
glBlendEquationSeparate(last_blend_equation_rgb, last_blend_equation_alpha);
@@ -241,8 +244,8 @@ bool ImGuiRenderer::createDeviceObjects()
glGenBuffers(1, &g_VboHandle);
glGenBuffers(1, &g_ElementsHandle);
- glGenVertexArrays(1, &g_VaoHandle);
- glBindVertexArray(g_VaoHandle);
+ g_fun->glGenVertexArrays(1, &g_VaoHandle);
+ g_fun->glBindVertexArray(g_VaoHandle);
glBindBuffer(GL_ARRAY_BUFFER, g_VboHandle);
glEnableVertexAttribArray(g_AttribLocationPosition);
glEnableVertexAttribArray(g_AttribLocationUV);
@@ -259,7 +262,7 @@ bool ImGuiRenderer::createDeviceObjects()
// Restore modified GL state
glBindTexture(GL_TEXTURE_2D, last_texture);
glBindBuffer(GL_ARRAY_BUFFER, last_array_buffer);
- glBindVertexArray(last_vertex_array);
+ g_fun->glBindVertexArray(last_vertex_array);
return true;
}
diff --git a/3rdparty/qtimgui/ImGuiRenderer.h b/3rdparty/qtimgui/ImGuiRenderer.h
index ca69ffaa..f0d7315e 100644
--- a/3rdparty/qtimgui/ImGuiRenderer.h
+++ b/3rdparty/qtimgui/ImGuiRenderer.h
@@ -1,6 +1,7 @@
#pragma once
-#include <QOpenGLExtraFunctions>
+#include <QOpenGLFunctions>
+#include <QOpenGLFunctions_3_3_Core>
#include <QObject>
#include <QPoint>
#include <imgui.h>
@@ -22,7 +23,7 @@ public:
virtual QPoint mapFromGlobal(const QPoint &p) const = 0;
};
-class ImGuiRenderer : public QObject, QOpenGLExtraFunctions {
+class ImGuiRenderer : public QObject, QOpenGLFunctions {
Q_OBJECT
public:
void initialize(WindowWrapper *window);
@@ -53,6 +54,7 @@ private:
int g_AttribLocationTex = 0, g_AttribLocationProjMtx = 0;
int g_AttribLocationPosition = 0, g_AttribLocationUV = 0, g_AttribLocationColor = 0;
unsigned int g_VboHandle = 0, g_VaoHandle = 0, g_ElementsHandle = 0;
+ QOpenGLFunctions_3_3_Core *g_fun = nullptr;
};
}
diff --git a/3rdparty/qtimgui/QtImGui.cpp b/3rdparty/qtimgui/QtImGui.cpp
index 97205389..6f5b0480 100644
--- a/3rdparty/qtimgui/QtImGui.cpp
+++ b/3rdparty/qtimgui/QtImGui.cpp
@@ -21,7 +21,7 @@ public:
return w->size();
}
qreal devicePixelRatio() const override {
- return w->devicePixelRatioF();
+ return w->devicePixelRatio();
}
bool isActive() const override {
return w->isActiveWindow();
diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
index 2e8e367e..a818640f 100644
--- a/gui/CMakeLists.txt
+++ b/gui/CMakeLists.txt
@@ -12,6 +12,12 @@ if (BUILD_PYTHON)
../3rdparty/python-console/modified/pyredirector.cc
../3rdparty/python-console/modified/pyinterpreter.cc
+ ../3rdparty/imgui/imgui_widgets.cpp
+ ../3rdparty/imgui/imgui_draw.cpp
+ ../3rdparty/imgui/imgui.cpp
+ ../3rdparty/imgui/imgui_demo.cpp
+ ../3rdparty/qtimgui/ImGuiRenderer.cpp
+ ../3rdparty/qtimgui/QtImGui.cpp
)
endif()
@@ -27,7 +33,7 @@ set(GUI_LIBRARY_FILES_${ufamily} Qt5::Widgets Qt5::OpenGL ${OPENGL_LIBRARIES} Qt
add_library(gui_${family} STATIC ${GUI_SOURCE_FILES} ${PYTHON_CONSOLE_SRC} ${GUI_RESOURCE_FILES})
include(${family}/family.cmake)
-target_include_directories(gui_${family} PRIVATE ../${family} ${family} ../3rdparty/QtPropertyBrowser/src)
+target_include_directories(gui_${family} PRIVATE ../${family} ${family} ../3rdparty/QtPropertyBrowser/src ../3rdparty/imgui ../3rdparty/qtimgui/)
if (BUILD_PYTHON)
target_include_directories(gui_${family} PRIVATE ../3rdparty/python-console ../3rdparty/python-console/modified)
endif()