summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Bastian <thierry.bastian@nokia.com>2010-12-17 23:00:12 (GMT)
committerThierry Bastian <thierry.bastian@nokia.com>2010-12-17 23:00:12 (GMT)
commitab9d11946e5ff88008e8c2d887b8d0458ab9a98c (patch)
tree41642e36b440b5e326a2dd56e2dca041ddb52908
parent432cd48a777fddc04f4c323df5876bcc6c0c2829 (diff)
parent0d3786a9cd6dc3c4dd17a7e98fe138a7abaabb29 (diff)
downloadQt-ab9d11946e5ff88008e8c2d887b8d0458ab9a98c.zip
Qt-ab9d11946e5ff88008e8c2d887b8d0458ab9a98c.tar.gz
Qt-ab9d11946e5ff88008e8c2d887b8d0458ab9a98c.tar.bz2
Merge branch '4.7-upstream' into 4.7-water
-rw-r--r--doc/src/declarative/extending.qdoc2
-rw-r--r--mkspecs/common/symbian/symbian.conf8
-rw-r--r--src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp5
-rw-r--r--src/opengl/qgl.cpp1
-rw-r--r--src/opengl/qgl_egl.cpp2
-rw-r--r--src/opengl/qgl_p.h1
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart.pngbin12424 -> 12577 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart200.pngbin7943 -> 8063 bytes
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/image.pngbin0 -> 173 bytes
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/reset.qml9
-rw-r--r--tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp13
11 files changed, 23 insertions, 18 deletions
diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc
index e23ca91..748ec6c 100644
--- a/doc/src/declarative/extending.qdoc
+++ b/doc/src/declarative/extending.qdoc
@@ -461,7 +461,7 @@ constructing an animation object and manually setting the animation's "target"
property, a property value source can be assigned directly to a property of any
type and automatically set up this association.
-The example shown here is rather contrived: the \c announcment property of the
+The example shown here is rather contrived: the \c announcement property of the
\c BirthdayParty object is a string that is printed every time it is assigned and
the \c HappyBirthdaySong value source generates the lyrics of the song
"Happy Birthday".
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index 707335c..00cf0d7 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -70,12 +70,12 @@ QMAKE_LIBS_CORE = $$QMAKE_LIBS -lefsrv -lhal -lbafl
QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -lapparc -lcentralrepository
QMAKE_LIBS_NETWORK =
QMAKE_LIBS_EGL = -llibEGL
-QMAKE_LIBS_OPENGL = -llibglesv2
+QMAKE_LIBS_OPENGL = -llibGLESv2
QMAKE_LIBS_OPENGL_ES1 = -llibGLESv1_CM
-QMAKE_LIBS_OPENGL_ES2 = -llibglesv2
-QMAKE_LIBS_OPENGL_QT = -llibglesv2 -lcone -lws32
+QMAKE_LIBS_OPENGL_ES2 = -llibGLESv2
+QMAKE_LIBS_OPENGL_QT = -llibGLESv2 -lcone -lws32
QMAKE_LIBS_OPENGL_ES1_QT = -llibGLESv1_CM -lcone -lws32
-QMAKE_LIBS_OPENGL_ES2_QT = -llibglesv2 -lcone -lws32
+QMAKE_LIBS_OPENGL_ES2_QT = -llibGLESv2 -lcone -lws32
QMAKE_LIBS_OPENVG = -llibOpenVG -lfbscli -lbitgdi -lgdi
QMAKE_LIBS_THREAD = -llibpthread
QMAKE_LIBS_COMPAT =
diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
index 1b879c3..ba311c3 100644
--- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
+++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
@@ -323,6 +323,9 @@ int QGLTextureGlyphCache::maxTextureWidth() const
int QGLTextureGlyphCache::maxTextureHeight() const
{
- return ctx->d_ptr->maxTextureSize();
+ if (ctx->d_ptr->workaround_brokenTexSubImage)
+ return qMin(1024, ctx->d_ptr->maxTextureSize());
+ else
+ return ctx->d_ptr->maxTextureSize();
}
QT_END_NAMESPACE
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index 18f1203..9bf879a 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -1706,6 +1706,7 @@ void QGLContextPrivate::init(QPaintDevice *dev, const QGLFormat &format)
active_engine = 0;
workaround_needsFullClearOnEveryFrame = false;
workaround_brokenFBOReadBack = false;
+ workaround_brokenTexSubImage = false;
workaroundsCached = false;
workaround_brokenTextureFromPixmap = false;
diff --git a/src/opengl/qgl_egl.cpp b/src/opengl/qgl_egl.cpp
index 8902099..6f9e39c 100644
--- a/src/opengl/qgl_egl.cpp
+++ b/src/opengl/qgl_egl.cpp
@@ -204,6 +204,8 @@ void QGLContext::makeCurrent()
const char *egl_version = eglQueryString(d->eglContext->display(), EGL_VERSION);
if (egl_version && strstr(egl_version, "1.3"))
d->workaround_brokenFBOReadBack = true;
+ else if (egl_version && strstr(egl_version, "1.4"))
+ d->workaround_brokenTexSubImage = true;
}
}
}
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index b46d428..bf830ba 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -401,6 +401,7 @@ public:
// workarounds for driver/hw bugs on different platforms
uint workaround_needsFullClearOnEveryFrame : 1;
uint workaround_brokenFBOReadBack : 1;
+ uint workaround_brokenTexSubImage : 1;
uint workaroundsCached : 1;
uint workaround_brokenTextureFromPixmap : 1;
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart.png b/tests/auto/declarative/qdeclarativeimage/data/heart.png
index ff93f6c..abe97fe 100644
--- a/tests/auto/declarative/qdeclarativeimage/data/heart.png
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200.png b/tests/auto/declarative/qdeclarativeimage/data/heart200.png
index 5a31ae8..7fbb13c 100644
--- a/tests/auto/declarative/qdeclarativeimage/data/heart200.png
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart200.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativestates/data/image.png b/tests/auto/declarative/qdeclarativestates/data/image.png
new file mode 100644
index 0000000..ed1833c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/image.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativestates/data/reset.qml b/tests/auto/declarative/qdeclarativestates/data/reset.qml
index 8799c97..a140ffa 100644
--- a/tests/auto/declarative/qdeclarativestates/data/reset.qml
+++ b/tests/auto/declarative/qdeclarativestates/data/reset.qml
@@ -3,17 +3,16 @@ import QtQuick 1.0
Rectangle {
width: 640
height: 480
- Text {
- id: theText
+ Image {
+ id: image
width: 40
- wrapMode: Text.WordWrap
- text: "a text string that is longer than 40 pixels"
+ source: "image.png"
}
states: State {
name: "state1"
PropertyChanges {
- target: theText
+ target: image
width: undefined
}
}
diff --git a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
index b8409a5..870842c 100644
--- a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
+++ b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
@@ -44,7 +44,6 @@
#include <private/qdeclarativeanchors_p_p.h>
#include <private/qdeclarativerectangle_p.h>
#include <private/qdeclarativeimage_p.h>
-#include <private/qdeclarativetext_p.h>
#include <private/qdeclarativepropertychanges_p.h>
#include <private/qdeclarativestategroup_p.h>
#include <private/qdeclarativeitem_p.h>
@@ -1126,15 +1125,15 @@ void tst_qdeclarativestates::reset()
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
QVERIFY(rect != 0);
- QDeclarativeText *text = rect->findChild<QDeclarativeText*>();
- QVERIFY(text != 0);
- QCOMPARE(text->width(), qreal(40.));
- QVERIFY(text->width() < text->height());
+ QDeclarativeImage *image = rect->findChild<QDeclarativeImage*>();
+ QVERIFY(image != 0);
+ QCOMPARE(image->width(), qreal(40.));
+ QCOMPARE(image->height(), qreal(20.));
QDeclarativeItemPrivate::get(rect)->setState("state1");
- QVERIFY(text->width() > 41);
- QVERIFY(text->width() > text->height());
+ QCOMPARE(image->width(), 20.0);
+ QCOMPARE(image->height(), qreal(20.));
}
void tst_qdeclarativestates::illegalObjectCreation()