diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-02-22 12:55:14 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-03-18 08:02:43 +0100 |
commit | 58a7066609938c04f5d5214a326d6220e8c062e0 (patch) | |
tree | 57cc072c20ecaa6dff99edd3e7ca5192d94dfb7e /sources | |
parent | 3dc27cebfa74da9a82504107c5a510b123feeaa7 (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')
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, |