From d0d30349ee750f41051aba0fcaa6b28153f59b19 Mon Sep 17 00:00:00 2001 From: bra1nwave Date: Wed, 7 Aug 2019 16:16:55 +0200 Subject: [PATCH] Uranium: add upstream patches to fix crash in "cura" --- .../Uranium/patches/fix-crash-in-cura.patch | 132 ++++++++++++++++++ srcpkgs/Uranium/template | 2 +- 2 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/Uranium/patches/fix-crash-in-cura.patch diff --git a/srcpkgs/Uranium/patches/fix-crash-in-cura.patch b/srcpkgs/Uranium/patches/fix-crash-in-cura.patch new file mode 100644 index 00000000000..3d51f4e66d8 --- /dev/null +++ b/srcpkgs/Uranium/patches/fix-crash-in-cura.patch @@ -0,0 +1,132 @@ +From 9de2827a6ea5eb6ce7d8f845c4b4fc388b01da40 Mon Sep 17 00:00:00 2001 +From: Mark Burton +Date: Mon, 22 Jul 2019 16:00:15 +0100 +Subject: [PATCH] Set border_node's geometry and material before appending it + to paint_node. + +--- + UM/Qt/Bindings/PointingRectangle.py | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/UM/Qt/Bindings/PointingRectangle.py b/UM/Qt/Bindings/PointingRectangle.py +index ddb8520db..a0a79c6a1 100644 +--- UM/Qt/Bindings/PointingRectangle.py ++++ UM/Qt/Bindings/PointingRectangle.py +@@ -162,8 +162,9 @@ def updatePaintNode(self, paint_node, update_data): + + if self._border_width > 0: + if paint_node.childCount() == 0: +- paint_node.appendChildNode(QSGGeometryNode()) +- border_node = paint_node.firstChild() ++ border_node = QSGGeometryNode() ++ else: ++ border_node = paint_node.firstChild() + + border_vertices = [] + border_vertices.append((0, 0)) +@@ -204,6 +205,9 @@ def updatePaintNode(self, paint_node, update_data): + border_material.setColor(self._border_color) + + border_node.setMaterial(border_material) ++ ++ if paint_node.childCount() == 0: ++ paint_node.appendChildNode(border_node) + else: + border_node = None + border_geometry = None + +From c0fcf8e290b88fa276af7df8694e95d55aa912b9 Mon Sep 17 00:00:00 2001 +From: Mark Burton +Date: Mon, 22 Jul 2019 19:47:15 +0100 +Subject: [PATCH] ShaderEffect crashes on Linux with Qt 5.13 so replace with + ColorOverlay. + +--- + UM/Qt/qml/UM/RecolorImage.qml | 60 ++++------------------------------- + 1 file changed, 6 insertions(+), 54 deletions(-) + +diff --git a/UM/Qt/qml/UM/RecolorImage.qml b/UM/Qt/qml/UM/RecolorImage.qml +index c4f209154..5bd73a6b5 100644 +--- UM/Qt/qml/UM/RecolorImage.qml ++++ UM/Qt/qml/UM/RecolorImage.qml +@@ -2,6 +2,7 @@ + // Uranium is released under the terms of the LGPLv3 or higher. + + import QtQuick 2.1 ++import QtGraphicalEffects 1.0 + import UM 1.3 as UM + + Item +@@ -9,7 +10,7 @@ Item + id: base; + + property alias source: img.source +- property alias color: shader.color ++ property alias color: overlay.color + property alias sourceSize: img.sourceSize + + Image +@@ -21,59 +22,10 @@ Item + sourceSize.height: parent.height + } + +- ShaderEffect +- { +- id: shader ++ ColorOverlay { ++ id: overlay + anchors.fill: parent +- +- property variant src: img +- property color color: "#fff" +- +- vertexShader: UM.OpenGLContextProxy.isLegacyOpenGL ? +- " +- uniform highp mat4 qt_Matrix; +- attribute highp vec4 qt_Vertex; +- attribute highp vec2 qt_MultiTexCoord0; +- varying highp vec2 coord; +- void main() { +- coord = qt_MultiTexCoord0; +- gl_Position = qt_Matrix * qt_Vertex; +- } +- " : " +- #version 410 +- uniform highp mat4 qt_Matrix; +- in highp vec4 qt_Vertex; +- in highp vec2 qt_MultiTexCoord0; +- out highp vec2 coord; +- void main() { +- coord = qt_MultiTexCoord0; +- gl_Position = qt_Matrix * qt_Vertex; +- } +- " +- +- fragmentShader: UM.OpenGLContextProxy.isLegacyOpenGL ? +- " +- varying highp vec2 coord; +- uniform sampler2D src; +- uniform lowp vec4 color; +- uniform lowp float qt_Opacity; +- void main() { +- lowp vec4 tex = texture2D(src, coord); +- lowp float alpha = tex.a * qt_Opacity; +- gl_FragColor = vec4(color.r * alpha, color.g * alpha, color.b * alpha, alpha); +- } +- " : " +- #version 410 +- in highp vec2 coord; +- uniform sampler2D src; +- uniform lowp vec4 color; +- uniform lowp float qt_Opacity; +- out vec4 frag_color; +- void main() { +- lowp vec4 tex = texture(src, coord); +- lowp float alpha = tex.a * qt_Opacity; +- frag_color = vec4(color.r * alpha, color.g * alpha, color.b * alpha, alpha); +- } +- " ++ source: img ++ color: "#fff" + } + } diff --git a/srcpkgs/Uranium/template b/srcpkgs/Uranium/template index f1b88ca8d87..cf3fb0bb38c 100644 --- a/srcpkgs/Uranium/template +++ b/srcpkgs/Uranium/template @@ -1,7 +1,7 @@ # Template file for 'Uranium' pkgname=Uranium version=4.2.0 -revision=1 +revision=2 archs=noarch build_style=cmake pycompile_module="UM"