[oe] [meta-qt5][PATCH v3] qtbase: prevent artifacts on raster windows using eglfs plugin

Jonathan Liu net147 at gmail.com
Tue Mar 4 22:09:39 UTC 2014


Signed-off-by: Jonathan Liu <net147 at gmail.com>
---
 recipes-qt/qt5/qtbase.inc                          |  1 +
 .../qtbase/0016-eglfs-Fix-quad-coordinates.patch   | 39 ++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch

diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
index f1a10bb..e5d98df 100644
--- a/recipes-qt/qt5/qtbase.inc
+++ b/recipes-qt/qt5/qtbase.inc
@@ -20,6 +20,7 @@ SRC_URI += "\
     file://0013-QOpenGLPaintDevice-sub-area-support.patch \
     file://0014-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \
     file://0015-Fix-linuxfb-argument-mmsize-parsing.patch \
+    file://0016-eglfs-Fix-quad-coordinates.patch \
 "
 
 DEPENDS += "qtbase-native"
diff --git a/recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch b/recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch
new file mode 100644
index 0000000..92785e4
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch
@@ -0,0 +1,39 @@
+From 84756d94c73885803ad8044099ab47c0c49b5076 Mon Sep 17 00:00:00 2001
+From: Laszlo Agocs <laszlo.agocs at digia.com>
+Date: Thu, 23 Jan 2014 11:45:22 +0100
+Subject: [PATCH] eglfs: Fix quad coordinates
+
+Prevent artifacts on raster windows by properly mapping
+the coordinates to [-1,1].
+
+Upstream-Status: Backport
+
+Task-number: QTBUG-36370
+Change-Id: I95d0d03952f597ef4ce6a950c6533a3af2df964a
+Reviewed-by: Andy Nichols <andy.nichols at digia.com>
+Signed-off-by: Jonathan Liu <net147 at gmail.com>
+---
+ src/plugins/platforms/eglfs/qeglfscompositor.cpp | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/platforms/eglfs/qeglfscompositor.cpp b/src/plugins/platforms/eglfs/qeglfscompositor.cpp
+index 845bb5b..1efc4f7 100644
+--- a/src/plugins/platforms/eglfs/qeglfscompositor.cpp
++++ b/src/plugins/platforms/eglfs/qeglfscompositor.cpp
+@@ -153,10 +153,11 @@ void QEglFSCompositor::render(QEglFSWindow *window, uint texture, bool raster)
+     QPoint tl = r.topLeft();
+     QPoint br = r.bottomRight();
+ 
++    // Map to [-1,1]
+     GLfloat x1 = (tl.x() / sr.width()) * 2 - 1;
+-    GLfloat x2 = (br.x() / sr.width()) * 2 - 1;
+     GLfloat y1 = ((sr.height() - tl.y()) / sr.height()) * 2 - 1;
+-    GLfloat y2 = ((sr.height() - br.y()) / sr.height()) * 2 - 1;
++    GLfloat x2 = ((br.x() + 1) / sr.width()) * 2 - 1;
++    GLfloat y2 = ((sr.height() - (br.y() + 1)) / sr.height()) * 2 - 1;
+ 
+     if (!raster)
+         qSwap(y1, y2);
+-- 
+1.7.1
+
-- 
1.9.0




More information about the Openembedded-devel mailing list