aboutsummaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-02-22 12:55:14 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-03-18 08:02:43 +0100
commit58a7066609938c04f5d5214a326d6220e8c062e0 (patch)
tree57cc072c20ecaa6dff99edd3e7ca5192d94dfb7e /sources
parent3dc27cebfa74da9a82504107c5a510b123feeaa7 (diff)
PySide6: Implement QOpenGLContext.getProcAddress()
Declare QFunctionPointer as a PyLong type. Fixes: PYSIDE-971 Change-Id: I617216b169f1e161b2f80eab311f1f979d35f370 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources')
-rw-r--r--sources/pyside6/PySide6/QtCore/typesystem_core_common.xml9
-rw-r--r--sources/pyside6/PySide6/glue/qtcore.cpp8
-rw-r--r--sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py1
3 files changed, 17 insertions, 1 deletions
diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml
index 452a89b78..8bf51fde4 100644
--- a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml
+++ b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml
@@ -198,7 +198,14 @@
</target-to-native>
</conversion-rule>
</primitive-type>
-
+ <primitive-type name="QFunctionPointer" target-lang-api-name="PyLong">
+ <conversion-rule>
+ <native-to-target file="../glue/qtcore.cpp" snippet="return-qfunctionpointer-pylong"/>
+ <target-to-native>
+ <add-conversion type="PyLong" file="../glue/qtcore.cpp" snippet="conversion-pylong-qfunctionpointer"/>
+ </target-to-native>
+ </conversion-rule>
+ </primitive-type>
<primitive-type name="QString" target-lang-api-name="PyUnicode">
<include file-name="QString" location="global"/>
<conversion-rule>
diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp
index 9e7d6ad6e..19f3ec1ba 100644
--- a/sources/pyside6/PySide6/glue/qtcore.cpp
+++ b/sources/pyside6/PySide6/glue/qtcore.cpp
@@ -1453,6 +1453,14 @@ return PyLong_FromUnsignedLong(%in);
#endif
// @snippet return-pylong-quintptr
+// @snippet return-qfunctionpointer-pylong
+return PyLong_FromVoidPtr(reinterpret_cast<void *>(%in));
+// @snippet return-qfunctionpointer-pylong
+
+// @snippet conversion-pylong-qfunctionpointer
+%out = reinterpret_cast<QFunctionPointer>(PyLong_AsVoidPtr(%in));
+// @snippet conversion-pylong-qfunctionpointer
+
// @snippet return-pyunicode
return PySide::qStringToPyUnicode(%in);
// @snippet return-pyunicode
diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py
index dbc4596a2..fc1acced2 100644
--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py
+++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py
@@ -217,6 +217,7 @@ type_map.update({
"uintptr_t": int,
"qintptr": int,
"qsizetype": int,
+ "QFunctionPointer": int,
"QList": ArrayLikeVariable,
"qlonglong": int,
"QMap": typing.Dict,