backports/uranium: attempt int fix

This commit is contained in:
Antoine Martin 2024-01-18 21:49:12 -05:00
parent bf854b7178
commit 363dd4d7bf
Signed by: forge
GPG key ID: D62A472A4AA7D541
3 changed files with 111 additions and 1 deletions

View file

@ -2,7 +2,7 @@
# Maintainer: Anjandev Momi <anjan@momi.ca>
pkgname=uranium
pkgver=5.2.2
pkgrel=2
pkgrel=3
pkgdesc="A Python framework for building Desktop applications"
url="https://github.com/Ultimaker/Uranium"
arch="noarch !armhf !riscv64" # armhf: no py3-qt5, rv64: no py3-shapely
@ -22,6 +22,8 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/Uranium/archive/re
cmake.patch
cmake-helpers.patch
874_fix-simplebutton-use-of-um-colorimage.patch
fix-logger-used-but-not-imported.patch
qt-try-ints-then-bytes.patch
"
builddir="$srcdir/Uranium-$pkgver"
@ -55,4 +57,6 @@ a9c222400022e05b5c42c72843b024204a58f5d233805bdffa610a2d9cbd1873773868b049aabbe5
196a04164de288f5bffeebb73ace9390059dcffebaf40395368f413d1af2e2c668d85dd4c761ad226732540d41598235c2c368152cc157d2e89445ce27738c9b cmake.patch
aa185ce3592036f045e3386266015cc08443c2e4f9b9a4c03c77c13525af98d68eaa3360e8858e0561417a826c73bf8a2b209bcad91d2cc16cce32fb0231fcf8 cmake-helpers.patch
d0957ec427070f1b8ebe9257447402e09e3af7a89fe9b3c5967a4c40bfc753fab0ea8f0b0c49e17f5895abcd69888b59e4735d130cb47280207af1b8dbec1e71 874_fix-simplebutton-use-of-um-colorimage.patch
b23701d49d6bc7b8e87e7720ca52b96b9b7dc0e20562c12832eb710aed38dad77f93c20413bd93bc1e2f8026a57af44a1aa06a90cf6488b6f887e3ba0b7ca51c fix-logger-used-but-not-imported.patch
2a277b2e6e4acd701bc72924ec718127d8525192ef8e37a4d99d73b03b6c13462c2cb269704b5ee4c58203991cc3d3bd3ed32dadd5f153d5813eb2a946f02942 qt-try-ints-then-bytes.patch
"

View file

@ -0,0 +1,12 @@
diff --git a/UM/View/SelectionPass.py.orig b/UM/View/SelectionPass.py
index 945b789..ef042a5 100644
--- a/UM/View/SelectionPass.py.orig
+++ b/UM/View/SelectionPass.py
@@ -5,6 +5,7 @@ import enum
import random
from typing import TYPE_CHECKING
+from UM.Logger import Logger
from UM.Resources import Resources
from UM.Application import Application

View file

@ -0,0 +1,94 @@
diff --git a/UM/View/RenderBatch.py.orig b/UM/View/RenderBatch.py
index 6deeeb1..5f1eda5 100644
--- a/UM/View/RenderBatch.py.orig
+++ b/UM/View/RenderBatch.py
@@ -186,10 +186,24 @@ class RenderBatch:
if self._render_type == self.RenderType.Solid:
self._gl.glEnable(self._gl.GL_DEPTH_TEST)
- self._gl.glDepthMask(self._gl.GL_TRUE)
+ try:
+ self._gl.glDepthMask(self._gl.GL_TRUE)
+ except:
+ Logger.log("w", "glDepthMask does not like ints, trying bytes...")
+ try:
+ self._gl.glDepthMask(b'1')
+ except:
+ Logger.log("e", "glDepthMask does not like ints or bytes, no idea what it wants")
elif self._render_type == self.RenderType.Transparent:
self._gl.glEnable(self._gl.GL_DEPTH_TEST)
- self._gl.glDepthMask(self._gl.GL_FALSE)
+ try:
+ self._gl.glDepthMask(self._gl.GL_FALSE)
+ except:
+ Logger.log("w", "glDepthMask does not like ints, trying bytes...")
+ try:
+ self._gl.glDepthMask(b'1')
+ except:
+ Logger.log("e", "glDepthMask does not like ints or bytes, no idea what it wants")
elif self._render_type == self.RenderType.Overlay:
self._gl.glDisable(self._gl.GL_DEPTH_TEST)
diff --git a/UM/View/RenderPass.py.orig b/UM/View/RenderPass.py
index 8068ddf..8cb4f67 100644
--- a/UM/View/RenderPass.py.orig
+++ b/UM/View/RenderPass.py
@@ -93,8 +93,22 @@ class RenderPass:
self._fbo.bind()
# Ensure we can actually write to the relevant FBO components.
- self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE,self._gl.GL_TRUE, self._gl.GL_TRUE)
- self._gl.glDepthMask(self._gl.GL_TRUE)
+ try:
+ self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE,self._gl.GL_TRUE, self._gl.GL_TRUE)
+ except:
+ Logger.log("w", "glColorMask does not like ints, trying bytes...")
+ try:
+ self._gl.glColorMask(b'1', b'1',b'1', b'1')
+ except:
+ Logger.log("e", "glColorMask does not like ints or bytes, no idea what it wants")
+ try:
+ self._gl.glDepthMask(self._gl.GL_TRUE)
+ except:
+ Logger.log("w", "glDepthMask does not like ints, trying bytes...")
+ try:
+ self._gl.glDepthMask(b'1')
+ except:
+ Logger.log("e", "glDepthMask does not like ints or bytes, no idea what it wants")
self._gl.glClear(self._gl.GL_COLOR_BUFFER_BIT | self._gl.GL_DEPTH_BUFFER_BIT)
diff --git a/UM/View/SelectionPass.py.orig b/UM/View/SelectionPass.py
index ef042a5..c28fe4f 100644
--- a/UM/View/SelectionPass.py.orig
+++ b/UM/View/SelectionPass.py
@@ -110,13 +110,27 @@ class SelectionPass(RenderPass):
if selectable_objects:
batch.render(self._scene.getActiveCamera())
- self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_FALSE)
+ try:
+ self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_FALSE)
+ except:
+ Logger.log("w", "glColorMask does not like ints, trying bytes...")
+ try:
+ self._gl.glColorMask(b'1', b'1', b'1', b'0')
+ except:
+ Logger.log("e", "glColorMask does not like ints or bytes, no idea what it wants")
self._gl.glDisable(self._gl.GL_DEPTH_TEST)
tool_handle.render(self._scene.getActiveCamera())
self._gl.glEnable(self._gl.GL_DEPTH_TEST)
- self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE)
+ try:
+ self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE)
+ except:
+ Logger.log("w", "glColorMask does not like ints, trying bytes...")
+ try:
+ self._gl.glColorMask(b'1', b'1', b'1', b'1')
+ except:
+ Logger.log("e", "glColorMask does not like ints or bytes, no idea what it wants")
self.release()