diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-03-04 11:07:25 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-03-04 16:27:45 +0100 |
commit | adf0babe9b006034ae10ac2df0fc45df6acb8478 (patch) | |
tree | 0e57497c89fdfd6734d9168b8b2895592eb0baa6 /sources/pyside6/PySide6/glue/qtgui.cpp | |
parent | 5e0d795dfd34fbf3b2325b2a9c9f435154bd8bc7 (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.cpp | 22 |
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)) { |