commit 327bf352ef032c12f8b62c9ca52effe51a3c9822
parent bc9bf65844c2d776a8e44b0294933838a68739c7
Author: falkTX <falktx@falktx.com>
Date: Thu, 13 May 2021 20:15:57 +0100
Get a few more things to build
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
8 files changed, 45 insertions(+), 37 deletions(-)
diff --git 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
@@ -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<T>::_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<const CairoGraphicsContext&>(parent.getGraphicsContext()).cairo;
+ cairo_t* cr = static_cast<const CairoGraphicsContext&>(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
@@ -963,7 +963,7 @@ NanoWidget<BaseWidget>::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
@@ -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<uint> 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
@@ -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
@@ -27,7 +27,7 @@ struct SubWidget::PrivateData {
SubWidget* const self;
Widget* const parentWidget;
Point<int> 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
@@ -37,23 +37,6 @@ TopLevelWidget::PrivateData::~PrivateData()
window.pData->topLevelWidget = nullptr;
}
-void TopLevelWidget::PrivateData::display()
-{
- const Size<uint> 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
@@ -15,7 +15,7 @@
*/
#include "WidgetPrivateData.hpp"
-#include "../SubWidget.hpp"
+#include "SubWidgetPrivateData.hpp"
#include "../TopLevelWidget.hpp"
START_NAMESPACE_DGL