From 327bf352ef032c12f8b62c9ca52effe51a3c9822 Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 13 May 2021 20:16:24 +0100 Subject: [PATCH] Get a few more things to build Signed-off-by: falkTX --- dgl/Makefile | 19 ++++++++++++------- dgl/src/Cairo.cpp | 14 +++++++------- dgl/src/NanoVG.cpp | 2 +- dgl/src/OpenGL.cpp | 24 ++++++++++++++++++++++-- dgl/src/SubWidgetPrivateData.cpp | 2 +- dgl/src/SubWidgetPrivateData.hpp | 2 +- dgl/src/TopLevelWidgetPrivateData.cpp | 17 ----------------- dgl/src/WidgetPrivateData.cpp | 2 +- 8 files changed, 45 insertions(+), 37 deletions(-) diff --git a/dgl/Makefile b/dgl/Makefile index 8497ed50..9adc3f0c 100644 --- a/dgl/Makefile +++ b/dgl/Makefile @@ -28,13 +28,18 @@ OBJS_common = \ ../build/dgl/ApplicationPrivateData.cpp.o \ ../build/dgl/Color.cpp.o \ ../build/dgl/Geometry.cpp.o \ + ../build/dgl/ImageBase.cpp.o \ + ../build/dgl/Resources.cpp.o \ + ../build/dgl/SubWidget.cpp.o \ + ../build/dgl/SubWidgetPrivateData.cpp.o \ ../build/dgl/TopLevelWidget.cpp.o \ + ../build/dgl/TopLevelWidgetPrivateData.cpp.o \ + ../build/dgl/Widget.cpp.o \ + ../build/dgl/WidgetPrivateData.cpp.o \ ../build/dgl/Window.cpp.o \ ../build/dgl/WindowPrivateData.cpp.o -# ../build/dgl/ImageBase.cpp.o \ -# ../build/dgl/Resources.cpp.o\ + # ../build/dgl/StandaloneWindow.cpp.o \ -# ../build/dgl/Widget.cpp.o \ # ../build/dgl/WindowFileBrowser.cpp.o # TODO: ImageWidgets.cpp @@ -42,9 +47,8 @@ OBJS_common = \ # --------------------------------------------------------------------------------------------------------------------- OBJS_cairo = $(OBJS_common) \ + ../build/dgl/Cairo.cpp.cairo.o \ ../build/dgl/pugl.cpp.cairo.o -# ../build/dgl/Cairo.cpp.cairo.o \ -# ../build/dgl/WidgetPrivateData.cpp.cairo.o # ifeq ($(MACOS),true) # OBJS_cairo += ../build/dgl/Window.mm.cairo.o @@ -55,11 +59,12 @@ OBJS_cairo = $(OBJS_common) \ # --------------------------------------------------------------------------------------------------------------------- OBJS_opengl = $(OBJS_common) \ + ../build/dgl/OpenGL.cpp.opengl.o \ + ../build/dgl/NanoVG.cpp.opengl.o \ ../build/dgl/pugl.cpp.opengl.o -# ../build/dgl/OpenGL.cpp.opengl.o \ + # ../build/dgl/Image.cpp.opengl.o \ # ../build/dgl/ImageWidgets.cpp.opengl.o \ -# ../build/dgl/NanoVG.cpp.opengl.o \ # ../build/dgl/WidgetPrivateData.cpp.opengl.o \ # ../build/dgl/WindowPrivateData.cpp.opengl.o diff --git a/dgl/src/Cairo.cpp b/dgl/src/Cairo.cpp index fdb171cc..303244e9 100644 --- a/dgl/src/Cairo.cpp +++ b/dgl/src/Cairo.cpp @@ -15,7 +15,8 @@ */ #include "../Cairo.hpp" -#include "WidgetPrivateData.hpp" +#include "SubWidgetPrivateData.hpp" +#include "WindowPrivateData.hpp" START_NAMESPACE_DGL @@ -64,15 +65,14 @@ void Rectangle::_draw(const bool outline) // ----------------------------------------------------------------------- -void Widget::PrivateData::display(const uint width, - const uint height, - const double autoScaling, - const bool renderingSubWidget) +void SubWidget::PrivateData::display(const uint width, const uint height, const double autoScaling) { + /* if ((skipDisplay && ! renderingSubWidget) || size.isInvalid() || ! visible) return; + */ - cairo_t* cr = static_cast(parent.getGraphicsContext()).cairo; + cairo_t* cr = static_cast(self->getGraphicsContext()).handle; cairo_matrix_t matrix; cairo_get_matrix(cr, &matrix); cairo_translate(cr, absolutePos.getX(), absolutePos.getY()); @@ -83,7 +83,7 @@ void Widget::PrivateData::display(const uint width, cairo_set_matrix(cr, &matrix); - displaySubWidgets(width, height, autoScaling); +// displaySubWidgets(width, height, autoScaling); } // ----------------------------------------------------------------------- diff --git a/dgl/src/NanoVG.cpp b/dgl/src/NanoVG.cpp index 3e1aa459..95d15648 100644 --- a/dgl/src/NanoVG.cpp +++ b/dgl/src/NanoVG.cpp @@ -963,7 +963,7 @@ NanoWidget::NanoWidget(Widget* const parent, int flags) NanoVG(flags), nData(new PrivateData(this)) { - BaseWidget::pData->viewportNeedsScaling = true; + BaseWidget::pData->needsViewportScaling = true; } // TopLevelWidget diff --git a/dgl/src/OpenGL.cpp b/dgl/src/OpenGL.cpp index 757b7c72..399fd640 100644 --- a/dgl/src/OpenGL.cpp +++ b/dgl/src/OpenGL.cpp @@ -16,6 +16,7 @@ #include "../OpenGL.hpp" #include "SubWidgetPrivateData.hpp" +#include "TopLevelWidgetPrivateData.hpp" #include "WidgetPrivateData.hpp" #include "WindowPrivateData.hpp" @@ -357,7 +358,7 @@ void Widget::PrivateData::display(const uint width, } #endif -void SubWidget::PrivateData::display(uint width, uint height, double autoScaling) +void SubWidget::PrivateData::display(const uint width, const uint height, const double autoScaling) { bool needsDisableScissor = false; @@ -369,7 +370,7 @@ void SubWidget::PrivateData::display(uint width, uint height, double autoScaling width * autoScaling, height * autoScaling); } - else if (viewportNeedsScaling) + else if (needsViewportScaling) { // limit viewport to widget bounds glViewport(absolutePos.getX(), @@ -409,6 +410,25 @@ void SubWidget::PrivateData::display(uint width, uint height, double autoScaling // ----------------------------------------------------------------------- +void TopLevelWidget::PrivateData::display() +{ + const Size size(window.getSize()); + const uint width = size.getWidth(); + const uint height = size.getHeight(); + const double autoScaling = window.pData->autoScaling; + + // full viewport size + glViewport(0, -(height * autoScaling - height), width * autoScaling, height * autoScaling); + + // main widget drawing + self->onDisplay(); + + // now draw subwidgets if there are any + selfw->pData->displaySubWidgets(width, height, autoScaling); +} + +// ----------------------------------------------------------------------- + const GraphicsContext& Window::PrivateData::getGraphicsContext() const noexcept { return (const GraphicsContext&)graphicsContext; diff --git a/dgl/src/SubWidgetPrivateData.cpp b/dgl/src/SubWidgetPrivateData.cpp index 4d7a3874..039aa9b8 100644 --- a/dgl/src/SubWidgetPrivateData.cpp +++ b/dgl/src/SubWidgetPrivateData.cpp @@ -25,7 +25,7 @@ SubWidget::PrivateData::PrivateData(SubWidget* const s, Widget* const pw) : self(s), parentWidget(pw), absolutePos(), - viewportNeedsScaling(false) + needsViewportScaling(false) { parentWidget->pData->subWidgets.push_back(self); } diff --git a/dgl/src/SubWidgetPrivateData.hpp b/dgl/src/SubWidgetPrivateData.hpp index e7e7382b..5e0e5cf5 100644 --- a/dgl/src/SubWidgetPrivateData.hpp +++ b/dgl/src/SubWidgetPrivateData.hpp @@ -27,7 +27,7 @@ struct SubWidget::PrivateData { SubWidget* const self; Widget* const parentWidget; Point absolutePos; - bool viewportNeedsScaling; // needed for NanoVG + bool needsViewportScaling; // needed for NanoVG explicit PrivateData(SubWidget* const s, Widget* const pw); ~PrivateData(); diff --git a/dgl/src/TopLevelWidgetPrivateData.cpp b/dgl/src/TopLevelWidgetPrivateData.cpp index c8fa5f28..c0ea814a 100644 --- a/dgl/src/TopLevelWidgetPrivateData.cpp +++ b/dgl/src/TopLevelWidgetPrivateData.cpp @@ -37,23 +37,6 @@ TopLevelWidget::PrivateData::~PrivateData() window.pData->topLevelWidget = nullptr; } -void TopLevelWidget::PrivateData::display() -{ - const Size size(window.getSize()); - const uint width = size.getWidth(); - const uint height = size.getHeight(); - const double autoScaling = window.pData->autoScaling; - - // full viewport size - glViewport(0, -(height * autoScaling - height), width * autoScaling, height * autoScaling); - - // main widget drawing - self->onDisplay(); - - // now draw subwidgets if there are any - selfw->pData->displaySubWidgets(width, height, autoScaling); -} - void TopLevelWidget::PrivateData::mouseEvent(const Events::MouseEvent& ev) { Events::MouseEvent rev = ev; diff --git a/dgl/src/WidgetPrivateData.cpp b/dgl/src/WidgetPrivateData.cpp index f163d47a..a5e7b5fb 100644 --- a/dgl/src/WidgetPrivateData.cpp +++ b/dgl/src/WidgetPrivateData.cpp @@ -15,7 +15,7 @@ */ #include "WidgetPrivateData.hpp" -#include "../SubWidget.hpp" +#include "SubWidgetPrivateData.hpp" #include "../TopLevelWidget.hpp" START_NAMESPACE_DGL