aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/PySide6/glue/qtgui.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-03-04 11:07:25 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-03-04 16:27:45 +0100
commitadf0babe9b006034ae10ac2df0fc45df6acb8478 (patch)
tree0e57497c89fdfd6734d9168b8b2895592eb0baa6 /sources/pyside6/PySide6/glue/qtgui.cpp
parent5e0d795dfd34fbf3b2325b2a9c9f435154bd8bc7 (diff)
PySide6: Add QOpenGLFunctions.glShaderSource()/glGetShaderSource()
Add a simple signature taking and returning a string. Fixes: PYSIDE-1511 Pick-to: 5.15 Change-Id: Ie52d5f55f168075ee6ee71fdb35463895f768c04 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6/PySide6/glue/qtgui.cpp')
-rw-r--r--sources/pyside6/PySide6/glue/qtgui.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/sources/pyside6/PySide6/glue/qtgui.cpp b/sources/pyside6/PySide6/glue/qtgui.cpp
index 869fb9dc4..f70875865 100644
--- a/sources/pyside6/PySide6/glue/qtgui.cpp
+++ b/sources/pyside6/PySide6/glue/qtgui.cpp
@@ -41,6 +41,28 @@
* INJECT CODE
********************************************************************/
+// @snippet glgetshadersource
+GLsizei bufSize = 4096;
+GLsizei length = bufSize - 1;
+QByteArray buffer;
+for (; length == bufSize - 1; bufSize += 4096) {
+ buffer.resize(qsizetype(bufSize));
+ %CPPSELF->%FUNCTION_NAME(%1, bufSize, &length, buffer.data());
+ if (%CPPSELF->glGetError() != GL_NO_ERROR) {
+ buffer.clear();
+ break;
+ }
+}
+auto *data = buffer.constData();
+%PYARG_0 = %CONVERTTOPYTHON[char *](data);
+// @snippet glgetshadersource
+
+// @snippet glshadersource
+const QByteArray buffer = %2.toUtf8();
+const char *sources[] = {buffer.constData()};
+%CPPSELF->%FUNCTION_NAME(%1, 1, sources, nullptr);
+// @snippet glshadersource
+
// @snippet qtransform-quadtoquad
QTransform _result;
if (QTransform::quadToQuad(%1, %2, _result)) {