summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2014-07-22 22:24:26 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2014-07-22 22:24:26 +0200
commit5111e23ae280756ff7fe7838d3b26aa66912c9ef (patch)
tree1a6842889177df6587ab39cd38d8dc03cc02dd44
parent0c5abb6ae5591be0ea26d828c95c049866d17624 (diff)
downloadmeta-qt5-5111e23ae280756ff7fe7838d3b26aa66912c9ef.tar.gz
qtbase: restore QOpenGLPaintDevice-sub-area-support.patch from 5.3.0
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-rw-r--r--recipes-qt/qt5/nativesdk-qtbase.inc1
-rw-r--r--recipes-qt/qt5/nativesdk-qtbase_git.bb1
-rw-r--r--recipes-qt/qt5/qtbase-git/0011-QOpenGLPaintDevice-sub-area-support.patch152
-rw-r--r--recipes-qt/qt5/qtbase-native.inc1
-rw-r--r--recipes-qt/qt5/qtbase-native_git.bb1
-rw-r--r--recipes-qt/qt5/qtbase.inc1
-rw-r--r--recipes-qt/qt5/qtbase/0011-QOpenGLPaintDevice-sub-area-support.patch152
-rw-r--r--recipes-qt/qt5/qtbase_git.bb1
8 files changed, 310 insertions, 0 deletions
diff --git a/recipes-qt/qt5/nativesdk-qtbase.inc b/recipes-qt/qt5/nativesdk-qtbase.inc
index be85b65f..e3b28630 100644
--- a/recipes-qt/qt5/nativesdk-qtbase.inc
+++ b/recipes-qt/qt5/nativesdk-qtbase.inc
@@ -22,6 +22,7 @@ SRC_URI += "\
22 file://0008-configure-bump-path-length-from-256-to-512-character.patch \ 22 file://0008-configure-bump-path-length-from-256-to-512-character.patch \
23 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \ 23 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \
24 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \ 24 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \
25 file://0011-QOpenGLPaintDevice-sub-area-support.patch \
25" 26"
26 27
27# common for qtbase-native and nativesdk-qtbase 28# common for qtbase-native and nativesdk-qtbase
diff --git a/recipes-qt/qt5/nativesdk-qtbase_git.bb b/recipes-qt/qt5/nativesdk-qtbase_git.bb
index fda58c9b..4b915398 100644
--- a/recipes-qt/qt5/nativesdk-qtbase_git.bb
+++ b/recipes-qt/qt5/nativesdk-qtbase_git.bb
@@ -20,6 +20,7 @@ SRC_URI += "\
20 file://0008-configure-bump-path-length-from-256-to-512-character.patch \ 20 file://0008-configure-bump-path-length-from-256-to-512-character.patch \
21 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \ 21 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \
22 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \ 22 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \
23 file://0011-QOpenGLPaintDevice-sub-area-support.patch \
23" 24"
24 25
25# common for qtbase-native and nativesdk-qtbase 26# common for qtbase-native and nativesdk-qtbase
diff --git a/recipes-qt/qt5/qtbase-git/0011-QOpenGLPaintDevice-sub-area-support.patch b/recipes-qt/qt5/qtbase-git/0011-QOpenGLPaintDevice-sub-area-support.patch
new file mode 100644
index 00000000..27496db6
--- /dev/null
+++ b/recipes-qt/qt5/qtbase-git/0011-QOpenGLPaintDevice-sub-area-support.patch
@@ -0,0 +1,152 @@
1From 606dc31c85d97dff52b07ec9c896718c6533f670 Mon Sep 17 00:00:00 2001
2From: Jani Hautakangas <jani.hautakangas@ixonos.com>
3Date: Thu, 16 May 2013 09:52:07 +0300
4Subject: [PATCH 11/11] QOpenGLPaintDevice sub-area support
5
6Allows creating QOpenGLPaintDevice targetting sub-area
7of binded framebuffer.
8
9Upstream-Status: Pending
10
11Change-Id: Ida2f079aa1ac0b87d36b54129e226399dbcdda80
12
13Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
14---
15 src/gui/opengl/qopenglpaintdevice.cpp | 12 ++++++++++++
16 src/gui/opengl/qopenglpaintdevice.h | 2 ++
17 src/gui/opengl/qopenglpaintengine.cpp | 9 +++++++--
18 src/gui/opengl/qopenglpaintengine_p.h | 1 +
19 src/gui/opengl/qopengltextureglyphcache.cpp | 2 +-
20 5 files changed, 23 insertions(+), 3 deletions(-)
21
22diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp
23index 6750458..034630a 100644
24--- a/src/gui/opengl/qopenglpaintdevice.cpp
25+++ b/src/gui/opengl/qopenglpaintdevice.cpp
26@@ -111,6 +111,7 @@ class QOpenGLPaintDevicePrivate
27 public:
28 QOpenGLPaintDevicePrivate(const QSize &size);
29
30+ QPoint offset;
31 QSize size;
32 QOpenGLContext *ctx;
33
34@@ -159,6 +160,12 @@ QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height)
35 {
36 }
37
38+QOpenGLPaintDevice::QOpenGLPaintDevice(int x, int y, int width, int height)
39+ : d_ptr(new QOpenGLPaintDevicePrivate(QSize(width, height)))
40+{
41+ d_ptr->offset = QPoint(x,y);
42+}
43+
44 /*!
45 Destroys the QOpenGLPaintDevice.
46 */
47@@ -228,6 +235,11 @@ QOpenGLContext *QOpenGLPaintDevice::context() const
48 return d_ptr->ctx;
49 }
50
51+QPoint QOpenGLPaintDevice::offset() const
52+{
53+ return d_ptr->offset;
54+}
55+
56 /*!
57 Returns the pixel size of the paint device.
58
59diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h
60index c05571c..01eb1bc 100644
61--- a/src/gui/opengl/qopenglpaintdevice.h
62+++ b/src/gui/opengl/qopenglpaintdevice.h
63@@ -62,12 +62,14 @@ public:
64 QOpenGLPaintDevice();
65 explicit QOpenGLPaintDevice(const QSize &size);
66 QOpenGLPaintDevice(int width, int height);
67+ QOpenGLPaintDevice(int x, int y, int width, int height);
68 virtual ~QOpenGLPaintDevice();
69
70 int devType() const { return QInternal::OpenGL; }
71 QPaintEngine *paintEngine() const;
72
73 QOpenGLContext *context() const;
74+ QPoint offset() const;
75 QSize size() const;
76 void setSize(const QSize &size);
77 void setDevicePixelRatio(qreal devicePixelRatio);
78diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp
79index 81a0d82..ce57261 100644
80--- a/src/gui/opengl/qopenglpaintengine.cpp
81+++ b/src/gui/opengl/qopenglpaintengine.cpp
82@@ -1985,7 +1985,10 @@ bool QOpenGL2PaintEngineEx::begin(QPaintDevice *pdev)
83 for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i)
84 d->vertexAttributeArraysEnabledState[i] = false;
85
86+ const QPoint offset = d->device->offset();
87 const QSize sz = d->device->size();
88+ d->x = offset.x();
89+ d->y = offset.y();
90 d->width = sz.width();
91 d->height = sz.height();
92 d->mode = BrushDrawingMode;
93@@ -2070,7 +2073,7 @@ void QOpenGL2PaintEngineEx::ensureActive()
94 d->device->ensureActiveTarget();
95
96 d->transferMode(BrushDrawingMode);
97- d->funcs.glViewport(0, 0, d->width, d->height);
98+ d->funcs.glViewport(d->x, d->y, d->width, d->height);
99 d->needsSync = false;
100 d->lastMaskTextureUsed = 0;
101 d->shaderManager->setDirty();
102@@ -2113,6 +2116,7 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
103 if (bounds == QRect(0, 0, width, height)) {
104 funcs.glDisable(GL_SCISSOR_TEST);
105 } else {
106+ bounds = QRect(bounds.x(), bounds.y(), bounds.width(), bounds.height());
107 funcs.glEnable(GL_SCISSOR_TEST);
108 setScissor(bounds);
109 }
110@@ -2121,12 +2125,13 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
111
112 void QOpenGL2PaintEngineExPrivate::setScissor(const QRect &rect)
113 {
114- const int left = rect.left();
115+ const int left = rect.left() + x;
116 const int width = rect.width();
117 int bottom = height - (rect.top() + rect.height());
118 if (device->paintFlipped()) {
119 bottom = rect.top();
120 }
121+ bottom += y;
122 const int height = rect.height();
123
124 funcs.glScissor(left, bottom, width, height);
125diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h
126index 4f0e2e5..f211de1 100644
127--- a/src/gui/opengl/qopenglpaintengine_p.h
128+++ b/src/gui/opengl/qopenglpaintengine_p.h
129@@ -264,6 +264,7 @@ public:
130 QOpenGL2PaintEngineEx* q;
131 QOpenGLEngineShaderManager* shaderManager;
132 QOpenGLPaintDevice* device;
133+ int x, y;
134 int width, height;
135 QOpenGLContext *ctx;
136 EngineMode mode;
137diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp
138index 0610ab6..ea1e3b2 100644
139--- a/src/gui/opengl/qopengltextureglyphcache.cpp
140+++ b/src/gui/opengl/qopengltextureglyphcache.cpp
141@@ -316,7 +316,7 @@ void QOpenGLTextureGlyphCache::resizeTextureData(int width, int height)
142 funcs->glBindFramebuffer(GL_FRAMEBUFFER, (GLuint)oldFbo);
143
144 if (pex != 0) {
145- funcs->glViewport(0, 0, pex->width, pex->height);
146+ funcs->glViewport(pex->x, pex->y, pex->width, pex->height);
147 pex->updateClipScissorTest();
148 } else {
149 if (m_vao.isCreated()) {
150--
1512.0.2
152
diff --git a/recipes-qt/qt5/qtbase-native.inc b/recipes-qt/qt5/qtbase-native.inc
index 415cda2d..e935d704 100644
--- a/recipes-qt/qt5/qtbase-native.inc
+++ b/recipes-qt/qt5/qtbase-native.inc
@@ -19,6 +19,7 @@ SRC_URI += "\
19 file://0008-configure-bump-path-length-from-256-to-512-character.patch \ 19 file://0008-configure-bump-path-length-from-256-to-512-character.patch \
20 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \ 20 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \
21 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \ 21 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \
22 file://0011-QOpenGLPaintDevice-sub-area-support.patch \
22" 23"
23 24
24# common for qtbase-native and nativesdk-qtbase 25# common for qtbase-native and nativesdk-qtbase
diff --git a/recipes-qt/qt5/qtbase-native_git.bb b/recipes-qt/qt5/qtbase-native_git.bb
index df2f6620..9a9d3ca7 100644
--- a/recipes-qt/qt5/qtbase-native_git.bb
+++ b/recipes-qt/qt5/qtbase-native_git.bb
@@ -17,6 +17,7 @@ SRC_URI += "\
17 file://0008-configure-bump-path-length-from-256-to-512-character.patch \ 17 file://0008-configure-bump-path-length-from-256-to-512-character.patch \
18 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \ 18 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \
19 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \ 19 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \
20 file://0011-QOpenGLPaintDevice-sub-area-support.patch \
20" 21"
21 22
22# common for qtbase-native and nativesdk-qtbase 23# common for qtbase-native and nativesdk-qtbase
diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
index ce35410a..9941cda1 100644
--- a/recipes-qt/qt5/qtbase.inc
+++ b/recipes-qt/qt5/qtbase.inc
@@ -12,6 +12,7 @@ SRC_URI += "\
12 file://0008-configure-bump-path-length-from-256-to-512-character.patch \ 12 file://0008-configure-bump-path-length-from-256-to-512-character.patch \
13 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \ 13 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \
14 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \ 14 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \
15 file://0011-QOpenGLPaintDevice-sub-area-support.patch \
15" 16"
16 17
17# specific for qtbase 18# specific for qtbase
diff --git a/recipes-qt/qt5/qtbase/0011-QOpenGLPaintDevice-sub-area-support.patch b/recipes-qt/qt5/qtbase/0011-QOpenGLPaintDevice-sub-area-support.patch
new file mode 100644
index 00000000..27496db6
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0011-QOpenGLPaintDevice-sub-area-support.patch
@@ -0,0 +1,152 @@
1From 606dc31c85d97dff52b07ec9c896718c6533f670 Mon Sep 17 00:00:00 2001
2From: Jani Hautakangas <jani.hautakangas@ixonos.com>
3Date: Thu, 16 May 2013 09:52:07 +0300
4Subject: [PATCH 11/11] QOpenGLPaintDevice sub-area support
5
6Allows creating QOpenGLPaintDevice targetting sub-area
7of binded framebuffer.
8
9Upstream-Status: Pending
10
11Change-Id: Ida2f079aa1ac0b87d36b54129e226399dbcdda80
12
13Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
14---
15 src/gui/opengl/qopenglpaintdevice.cpp | 12 ++++++++++++
16 src/gui/opengl/qopenglpaintdevice.h | 2 ++
17 src/gui/opengl/qopenglpaintengine.cpp | 9 +++++++--
18 src/gui/opengl/qopenglpaintengine_p.h | 1 +
19 src/gui/opengl/qopengltextureglyphcache.cpp | 2 +-
20 5 files changed, 23 insertions(+), 3 deletions(-)
21
22diff --git a/src/gui/opengl/qopenglpaintdevice.cpp b/src/gui/opengl/qopenglpaintdevice.cpp
23index 6750458..034630a 100644
24--- a/src/gui/opengl/qopenglpaintdevice.cpp
25+++ b/src/gui/opengl/qopenglpaintdevice.cpp
26@@ -111,6 +111,7 @@ class QOpenGLPaintDevicePrivate
27 public:
28 QOpenGLPaintDevicePrivate(const QSize &size);
29
30+ QPoint offset;
31 QSize size;
32 QOpenGLContext *ctx;
33
34@@ -159,6 +160,12 @@ QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height)
35 {
36 }
37
38+QOpenGLPaintDevice::QOpenGLPaintDevice(int x, int y, int width, int height)
39+ : d_ptr(new QOpenGLPaintDevicePrivate(QSize(width, height)))
40+{
41+ d_ptr->offset = QPoint(x,y);
42+}
43+
44 /*!
45 Destroys the QOpenGLPaintDevice.
46 */
47@@ -228,6 +235,11 @@ QOpenGLContext *QOpenGLPaintDevice::context() const
48 return d_ptr->ctx;
49 }
50
51+QPoint QOpenGLPaintDevice::offset() const
52+{
53+ return d_ptr->offset;
54+}
55+
56 /*!
57 Returns the pixel size of the paint device.
58
59diff --git a/src/gui/opengl/qopenglpaintdevice.h b/src/gui/opengl/qopenglpaintdevice.h
60index c05571c..01eb1bc 100644
61--- a/src/gui/opengl/qopenglpaintdevice.h
62+++ b/src/gui/opengl/qopenglpaintdevice.h
63@@ -62,12 +62,14 @@ public:
64 QOpenGLPaintDevice();
65 explicit QOpenGLPaintDevice(const QSize &size);
66 QOpenGLPaintDevice(int width, int height);
67+ QOpenGLPaintDevice(int x, int y, int width, int height);
68 virtual ~QOpenGLPaintDevice();
69
70 int devType() const { return QInternal::OpenGL; }
71 QPaintEngine *paintEngine() const;
72
73 QOpenGLContext *context() const;
74+ QPoint offset() const;
75 QSize size() const;
76 void setSize(const QSize &size);
77 void setDevicePixelRatio(qreal devicePixelRatio);
78diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp
79index 81a0d82..ce57261 100644
80--- a/src/gui/opengl/qopenglpaintengine.cpp
81+++ b/src/gui/opengl/qopenglpaintengine.cpp
82@@ -1985,7 +1985,10 @@ bool QOpenGL2PaintEngineEx::begin(QPaintDevice *pdev)
83 for (int i = 0; i < QT_GL_VERTEX_ARRAY_TRACKED_COUNT; ++i)
84 d->vertexAttributeArraysEnabledState[i] = false;
85
86+ const QPoint offset = d->device->offset();
87 const QSize sz = d->device->size();
88+ d->x = offset.x();
89+ d->y = offset.y();
90 d->width = sz.width();
91 d->height = sz.height();
92 d->mode = BrushDrawingMode;
93@@ -2070,7 +2073,7 @@ void QOpenGL2PaintEngineEx::ensureActive()
94 d->device->ensureActiveTarget();
95
96 d->transferMode(BrushDrawingMode);
97- d->funcs.glViewport(0, 0, d->width, d->height);
98+ d->funcs.glViewport(d->x, d->y, d->width, d->height);
99 d->needsSync = false;
100 d->lastMaskTextureUsed = 0;
101 d->shaderManager->setDirty();
102@@ -2113,6 +2116,7 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
103 if (bounds == QRect(0, 0, width, height)) {
104 funcs.glDisable(GL_SCISSOR_TEST);
105 } else {
106+ bounds = QRect(bounds.x(), bounds.y(), bounds.width(), bounds.height());
107 funcs.glEnable(GL_SCISSOR_TEST);
108 setScissor(bounds);
109 }
110@@ -2121,12 +2125,13 @@ void QOpenGL2PaintEngineExPrivate::updateClipScissorTest()
111
112 void QOpenGL2PaintEngineExPrivate::setScissor(const QRect &rect)
113 {
114- const int left = rect.left();
115+ const int left = rect.left() + x;
116 const int width = rect.width();
117 int bottom = height - (rect.top() + rect.height());
118 if (device->paintFlipped()) {
119 bottom = rect.top();
120 }
121+ bottom += y;
122 const int height = rect.height();
123
124 funcs.glScissor(left, bottom, width, height);
125diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h
126index 4f0e2e5..f211de1 100644
127--- a/src/gui/opengl/qopenglpaintengine_p.h
128+++ b/src/gui/opengl/qopenglpaintengine_p.h
129@@ -264,6 +264,7 @@ public:
130 QOpenGL2PaintEngineEx* q;
131 QOpenGLEngineShaderManager* shaderManager;
132 QOpenGLPaintDevice* device;
133+ int x, y;
134 int width, height;
135 QOpenGLContext *ctx;
136 EngineMode mode;
137diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp
138index 0610ab6..ea1e3b2 100644
139--- a/src/gui/opengl/qopengltextureglyphcache.cpp
140+++ b/src/gui/opengl/qopengltextureglyphcache.cpp
141@@ -316,7 +316,7 @@ void QOpenGLTextureGlyphCache::resizeTextureData(int width, int height)
142 funcs->glBindFramebuffer(GL_FRAMEBUFFER, (GLuint)oldFbo);
143
144 if (pex != 0) {
145- funcs->glViewport(0, 0, pex->width, pex->height);
146+ funcs->glViewport(pex->x, pex->y, pex->width, pex->height);
147 pex->updateClipScissorTest();
148 } else {
149 if (m_vao.isCreated()) {
150--
1512.0.2
152
diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb
index b6de95f2..65e92a04 100644
--- a/recipes-qt/qt5/qtbase_git.bb
+++ b/recipes-qt/qt5/qtbase_git.bb
@@ -17,6 +17,7 @@ SRC_URI += "\
17 file://0008-configure-bump-path-length-from-256-to-512-character.patch \ 17 file://0008-configure-bump-path-length-from-256-to-512-character.patch \
18 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \ 18 file://0009-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \
19 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \ 19 file://0010-Revert-Use-the-gcc-feature-in-simd.prf.patch \
20 file://0011-QOpenGLPaintDevice-sub-area-support.patch \
20" 21"
21 22
22# specific for qtbase 23# specific for qtbase