QGLWidgets 内の OpenGL リソースをビューポート2.0 と共有する

![](../images/Updated _Odd-to-Even.png)

他の ビューポート 2.0 リソースとコンテキストを共有する QGLWidget に直接アクセスすることができます。これは、プラグインによって独自の QGLWidget 用の OpenGL リソースが作成され、これを使用してプラグインの OpenGL リソースをビューポート 2.0 と共有する場合に便利です。

Python の使用法

import PySide2
import PySide2.QtOpenGL
import PySide2.QtWidgets
import shiboken2
# Get the property from the application (as a QWidget)
widget = QtWidgets.qApp.property("mayaSharedQGLWidget")
# Get the raw C++ pointer
ptr = long(shiboken2.getCppPointer(widget)[0])
# Downcast to QGLWidget
glWidget = shiboken2.wrapInstance(ptr, PySide2.QtOpenGL.QGLWidget)
# Print the format of the current rendering context
print glWidget.format()

C++ の使用法

QVariant v = qApp->property("mayaSharedQGLWidget");
if (v.isValid())
{
            QGLWidget glWidget = dynamic_cast<QGLWidget*>(v.value<QWidget*>());
}