diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2018-10-21 09:29:06 +0200 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2018-10-24 19:00:58 +0200 |
commit | 40722c098d11d01dec727d1c1cbf507e54de7255 (patch) | |
tree | e25d3f82b6d91d9b34ffbb946d7b86fadecd6825 /3rdparty/qtimgui/QtImGui.cpp | |
parent | b948b76c8ea5ec57b6a424baa1b117c0025c0328 (diff) | |
download | nextpnr-40722c098d11d01dec727d1c1cbf507e54de7255.tar.gz nextpnr-40722c098d11d01dec727d1c1cbf507e54de7255.tar.bz2 nextpnr-40722c098d11d01dec727d1c1cbf507e54de7255.zip |
add qtimgui renderer library
Diffstat (limited to '3rdparty/qtimgui/QtImGui.cpp')
-rw-r--r-- | 3rdparty/qtimgui/QtImGui.cpp | 78 |
1 files changed, 78 insertions, 0 deletions
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 <QWindow> +#ifdef QT_WIDGETS_LIB +#include <QWidget> +#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(); +} + +} |