OpenGL Core Profile Qt demo - How_to_use_OpenGL_Core_Profile_with_Qtの PySide バージョンを実行しようとしています。
QGLBuffer.allocate() メソッドを使用します (C++ コード)
float points[] = { -0.5f, -0.5f, 0.0f, 1.0f,
0.5f, -0.5f, 0.0f, 1.0f,
0.0f, 0.5f, 0.0f, 1.0f };
m_vertexBuffer.allocate( points, 3 * 4 * sizeof( float ) );
Pythonic の方法は次のようになります。
points = [-0.5, -0.5, 0.0, 1.0,
0.5, -0.5, 0.0, 1.0,
0.0, 0.5, 0.0, 1.0]
m_vertexBuffer.allocate(points)
しかし、このコードを実行すると、次のエラーが発生します
TypeError: 'PySide.QtOpenGL.QGLBuffer.allocate' called with wrong argument types:
PySide.QtOpenGL.QGLBuffer.allocate(list)
Supported signatures:
PySide.QtOpenGL.QGLBuffer.allocate(void, int = -1)
PySide.QtOpenGL.QGLBuffer.allocate(int)
この機能に使用される単体テストを見つけました-QByteArrayを使用しています。
data = QByteArray("12345")
b.allocate(data)
しかし、Python リストを QByteArray に変換する方法や、リストでアロケートを使用する方法がわかりません。それとも PySide ラッパー関数のバグですか?