From 40722c098d11d01dec727d1c1cbf507e54de7255 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Sun, 21 Oct 2018 09:29:06 +0200 Subject: add qtimgui renderer library --- 3rdparty/qtimgui/QtImGui.cpp | 78 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 3rdparty/qtimgui/QtImGui.cpp (limited to '3rdparty/qtimgui/QtImGui.cpp') diff --git a/3rdparty/qtimgui/QtImGui.cpp b/3rdparty/qtimgui/QtImGui.cpp new file mode 100644 index 00000000..97205389 --- /dev/null +++ b/3rdparty/qtimgui/QtImGui.cpp @@ -0,0 +1,78 @@ +#include "QtImGui.h" +#include "ImGuiRenderer.h" +#include +#ifdef QT_WIDGETS_LIB +#include +#endif + +namespace QtImGui { + +#ifdef QT_WIDGETS_LIB + +namespace { + +class QWidgetWindowWrapper : public WindowWrapper { +public: + QWidgetWindowWrapper(QWidget *w) : w(w) {} + void installEventFilter(QObject *object) override { + return w->installEventFilter(object); + } + QSize size() const override { + return w->size(); + } + qreal devicePixelRatio() const override { + return w->devicePixelRatioF(); + } + bool isActive() const override { + return w->isActiveWindow(); + } + QPoint mapFromGlobal(const QPoint &p) const override { + return w->mapFromGlobal(p); + } +private: + QWidget *w; +}; + +} + +void initialize(QWidget *window) { + ImGuiRenderer::instance()->initialize(new QWidgetWindowWrapper(window)); +} + +#endif + +namespace { + +class QWindowWindowWrapper : public WindowWrapper { +public: + QWindowWindowWrapper(QWindow *w) : w(w) {} + void installEventFilter(QObject *object) override { + return w->installEventFilter(object); + } + QSize size() const override { + return w->size(); + } + qreal devicePixelRatio() const override { + return w->devicePixelRatio(); + } + bool isActive() const override { + return w->isActive(); + } + QPoint mapFromGlobal(const QPoint &p) const override { + return w->mapFromGlobal(p); + } +private: + QWindow *w; +}; + +} + +void initialize(QWindow *window) { + ImGuiRenderer::instance()->initialize(new QWindowWindowWrapper(window)); +} + +void newFrame() { + ImGuiRenderer::instance()->newFrame(); +} + +} -- cgit v1.2.3 From f796716b83554e3a213a0b1c688653712e94b9df Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Sun, 21 Oct 2018 10:11:20 +0200 Subject: Make imgui and qtgui compile on older qt as well, opengl 3.2 required --- 3rdparty/qtimgui/QtImGui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '3rdparty/qtimgui/QtImGui.cpp') 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(); -- cgit v1.2.3