Di seguito è riportato un codice per utilizzare SDL con Haskell per disegnare una linea diagonale. Ottengo una linea CYAN quando l'RGB deve essere chiaramente bianco. Questo è su Ubuntu. Sto facendo qualcosa di sbagliato?Perché questa linea Haskell SDL è ciano quando dovrebbe essere bianca?
import qualified Graphics.UI.SDL as SDL
import qualified Graphics.UI.SDL.Primitives as SDLP
main = do
SDL.init [SDL.InitEverything]
SDL.setVideoMode 640 480 32 []
SDL.setCaption "My Window" "My Test"
surf0 <- SDL.getVideoSurface
white <- SDL.mapRGB (SDL.surfaceGetPixelFormat surf0) 255 255 255
SDLP.line surf0 0 0 640 480 white
SDL.flip surf0
eventLoop
SDL.quit
print "done"
where
eventLoop = SDL.waitEventBlocking >>= checkEvent
checkEvent (SDL.KeyUp _) = return()
checkEvent _ = eventLoop
accade ancora con una linea verticale, e con la pittura l'intero schermo? Solo un controllo di integrità per assicurarsi che qualche pazzo anti-aliasing non stia succedendo o qualcosa del genere. – luqui
non è un problema con big-little endian? Non si imposta il canale alfa in modo che 255 255 255 0 diventi 0 255 255 255 (se si inverte l'ordine dei byte)? – mb14
mb14: NO. Usare mapRGB e usare 255 255 255 255 fa la stessa cosa. – qrest