summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew Knight <andrew.knight@theqtcompany.com>2014-12-01 12:40:15 +0200
committerAndrew Knight <andrew.knight@theqtcompany.com>2014-12-03 13:45:00 +0100
commitc609a83426c0373bda2a8258dd3d9565502ec848 (patch)
tree4d16cce1771ab8ba744cb836e766291b808b4b5e /src
parent2ca57e39e32d056e17a1db68b6c6ef1345ecdf7c (diff)
ANGLE: Fix handling of shader source with fixed length
This is a cherry-pick of upstream f60fab6d154f4c9bf599e92976cd8cee7f8633e0 (See https://chromium-review.googlesource.com/231612) Task-number: QTBUG-42882 Change-Id: I7b4bdc4b68a1b93ff514f09ce35dbf4e9360af9b Reviewed-by: Marko Kangas <marko.kangas@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/angle/src/libGLESv2/Shader.cpp9
-rw-r--r--src/angle/patches/0019-ANGLE-Fix-handling-of-shader-source-with-fixed-lengt.patch37
2 files changed, 45 insertions, 1 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/Shader.cpp b/src/3rdparty/angle/src/libGLESv2/Shader.cpp
index 1cc17a0501..5bca746094 100644
--- a/src/3rdparty/angle/src/libGLESv2/Shader.cpp
+++ b/src/3rdparty/angle/src/libGLESv2/Shader.cpp
@@ -51,7 +51,14 @@ void Shader::setSource(GLsizei count, const char *const *string, const GLint *le
for (int i = 0; i < count; i++)
{
- stream << string[i];
+ if (length == nullptr || length[i] < 0)
+ {
+ stream.write(string[i], std::strlen(string[i]));
+ }
+ else
+ {
+ stream.write(string[i], length[i]);
+ }
}
mSource = stream.str();
diff --git a/src/angle/patches/0019-ANGLE-Fix-handling-of-shader-source-with-fixed-lengt.patch b/src/angle/patches/0019-ANGLE-Fix-handling-of-shader-source-with-fixed-lengt.patch
new file mode 100644
index 0000000000..5fa244c1b5
--- /dev/null
+++ b/src/angle/patches/0019-ANGLE-Fix-handling-of-shader-source-with-fixed-lengt.patch
@@ -0,0 +1,37 @@
+From 5e277b05a16e7be24d36c600f158f8119ee583d8 Mon Sep 17 00:00:00 2001
+From: Andrew Knight <andrew.knight@theqtcompany.com>
+Date: Mon, 1 Dec 2014 11:58:08 +0200
+Subject: [PATCH] ANGLE: Fix handling of shader source with fixed length
+
+This is a cherry-pick of upstream f60fab6d154f4c9bf599e92976cd8cee7f8633e0
+(See https://chromium-review.googlesource.com/231612)
+
+Task-number: QTBUG-42882
+Change-Id: I7b4bdc4b68a1b93ff514f09ce35dbf4e9360af9b
+---
+ src/3rdparty/angle/src/libGLESv2/Shader.cpp | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/src/3rdparty/angle/src/libGLESv2/Shader.cpp b/src/3rdparty/angle/src/libGLESv2/Shader.cpp
+index 1cc17a0..5bca746 100644
+--- a/src/3rdparty/angle/src/libGLESv2/Shader.cpp
++++ b/src/3rdparty/angle/src/libGLESv2/Shader.cpp
+@@ -51,7 +51,14 @@ void Shader::setSource(GLsizei count, const char *const *string, const GLint *le
+
+ for (int i = 0; i < count; i++)
+ {
+- stream << string[i];
++ if (length == nullptr || length[i] < 0)
++ {
++ stream.write(string[i], std::strlen(string[i]));
++ }
++ else
++ {
++ stream.write(string[i], length[i]);
++ }
+ }
+
+ mSource = stream.str();
+--
+1.9.4.msysgit.1
+