0

ここから、64ビットのPython3.xおよびWindows7用にPyOpenGLをインストールしました。glutMouseFuncを使用してマウスボタンのクリックをリッスンするPyOpenGLプログラムを作成して実行できます。

from OpenGL.GLUT import *
from OpenGL.GL import *

# Imagine the typical glut init functions here ...
glutMouseFunc( mouse )

さて、マウスのスクロールホイールも読みたいです。私は以前、C ++でFreeGLUTを使用してこれを実行しました。これにより、glutMouseWheelFuncが公開されます。チェックしたところ、 freeglut32.vc9.dllfreeglut64.vc9.dllがに表示されていC:\Program Files\Python32\Lib\site-packages\OpenGL\DLLSます。

上記のコードを次のように変更しました。

from OpenGL.GLUT import *
from OpenGL.GLUT.freeglut import *
from OpenGL.GL import *

# Imagine the typical glut init functions here ...
glutMouseFunc( mouse )
glutMouseWheelFunc( mouseWheel )

これは次のエラーで失敗します:

  File "c:\Program Files\Python32\lib\site-packages\OpenGL\GLUT\special.py", line 139, in __call__
    self.wrappedOperation( cCallback, *args )
  File "c:\Program Files\Python32\lib\site-packages\OpenGL\GLUT\special.py", line 107, in failFunction
    typeName, 'glut%sFunc'%(typeName),
OpenGL.error.NullFunctionError: Undefined GLUT callback function MouseWheel, check for bool(glutMouseWheelFunc) before calling

では、PyOpenGLでFreeGLUT呼び出しを使用するにはどうすればよいですか?私が間違っていることは何ですか?

4

1 に答える 1

1

PyOpenGLは、デフォルトでGLUTdllをロードします。代わりにfreeglutを使用するには、OpenGL / DLLsディレクトリのglut64.vc9.dllファイルの名前を変更または削除し、そのようなファイルがWindowsDLL検索パスの他の場所に存在しないことを確認します。私のために働きます。

于 2012-04-28T07:07:08.407 に答える