sembra che l'uso di GLU è stata ampiamente deprecata come di OpenGL 3.0, da cui una maggiore versioni sono stati in uso dal pacchetti di OpenGL 2.4 di Haskell. C'è una menzione sul OpenGL wiki che dice:
GLU - la libreria OpenGL Utility è una libreria aggiuntiva che contiene una manciata di funzioni per compiti supplementari. Era tradizionale e può essere trovato in un sacco di tutorial ed esempi. Ma la GLU utilizza molte funzionalità OpenGL che ora sono deprecate. La matrice sporgenza interna non deve più essere utilizzato, in modo che il programmatore dovrebbe usare una sostituzione per gluPerspective, che invece di aggiornare la matrice di proiezione interna tornerà questa matrice.
Ciò indica che le funzioni in Graphics.Rendering.OpenGL.GLU.Matrix
non devono più essere utilizzate.Ciò include:
ortho2D
perspective
lookAt
pickMatrix
project
unProject
unProject4
ho il sospetto che questo potrebbe essere il motivo per cui il codice viene compilato, ma non riesce quando si utilizza ortho2D
.
Si potrebbe essere tentati di utilizzare glOrtho
invece di gluOrtho2D
, dal momento che abbiamo:
ortho2D left right bottom up = ortho left right bottom up (-1) 1
Tuttavia, secondo il OpenGL spec, sembra che anche glOrtho
è deprecato come di OpenGL 3.1. Al momento della scrittura, utilizzando ortho
anziché ortho2D
funziona utilizzando questa equivalenza.
Ho notato che anche un commentatore ha avuto problemi con la funzione perspective
. Ecco un modo per implementarlo da soli senza utilizzare GLU (ma ancora utilizzando una funzione deprecata in OpenGL 3.1):
import qualified Graphics.Rendering.OpenGL as GL
perspective :: GL.GLdouble -> GL.GLdouble -> GL.GLdouble -> GL.GLdouble -> IO()
perspective fovy aspect near far =
GL.frustum xmin xmax ymin ymax near far
where ymax = near * tan (fovy * pi/360.0)
ymin = - ymax
xmax = ymax * aspect
xmin = ymin * aspect
fonte
2012-02-12 21:20:49
Sto avendo lo stesso problema e le patch non funzionano. (Ho corretto tutte le 3 scelte in HSGLURaw.c) ghc 7.0.3, OpenGL-2.4.0.2, OpenGLRaw-1.1.0.2, GLURaw-1.1.0.1, ubuntu 11.10. Cerchio: errore utente (voce GLU sconosciuta gluOrtho2D) Anche il collegamento con flag -l non si risolve. –
Ho lo stesso errore con gluPerspective invece di gluOrtho2D. Usando OpenGL-2.4.0.2, OpenGLRaw-1.1.0.2, GLURaw-1.1.0.1 e ubuntu 11.10 – Zhen
Per me (Ubuntu 11.10, ghc-7.4.1) questo problema è risolto con queste versioni: OpenGLRaw-1.2.0.0 GLURaw-1.2 .0.0 OpenGL-2.5.0.0 – shahn