0

GHC 7.4.1 (Haskell Platform 2012.2.0.0) を使用して、Windows XP で次のプログラムを作成しました。

mkVertexShader :: IO Bool
mkVertexShader = do
  shader <- glCreateShader gl_VERTEX_SHADER
  withCString vertexShader $ \ptr -> glShaderSource shader 1 (castPtr ptr) nullPtr
  glCompileShader shader
  status <- with 0 $ \ptr -> do
      glGetShaderiv shader gl_COMPILE_STATUS ptr
      peek ptr
  return $ status == fromIntegral gl_FALSE

実行すると、プログラムは次のように中止されます

*** Exception: user error (unknown OpenGL extension entry glCreateShader, check for OpenGL 3.1)

このエラーの意味、または対処方法がわかりません。誰か助けてくれませんか/

4

1 に答える 1

1

お使いのコンピューターで OpenGL 3.1 がサポートされていません。から関数をインポートしましたが、 1または2Core31からの関数が必要な場合があります。アプリケーションの起動時にグラフィック カードがさまざまなバージョン/拡張機能をサポートしているかどうか、特にサポートしていない OpenGL プロファイルを要求していないかどうかを確認する必要があります。Core21ARB.ShaderObjects

の代わりにHaskellOpenGLライブラリを使用するとOpenGLRaw、この区別は自動的に処理されます。

1まあ、機能は変わっていないCore21のでCore31古いバージョンを使っても仕方ない

2絶対に使用しないでくださいARB_shader_objects

于 2012-07-30T20:02:05.197 に答える