Voici un code pour utiliser SDL avec Haskell pour tracer une ligne diagonale. Je reçois une ligne CYAN quand le RVB devrait être blanc. C'est sur Ubuntu. Est-ce que je fais quelque chose de mal?Pourquoi cette ligne Haskell SDL est-elle cyan alors qu'elle devrait être blanche?
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
se fait-il encore avec une ligne verticale, et la peinture tout l'écran? Juste un contrôle de santé mentale pour s'assurer qu'un anti-aliasing fou ne se passe pas ou quelque chose. – luqui
n'est-ce pas un problème avec big-little endian? Vous ne définissez pas la couche alpha alors 255 255 255 0 devient 0 255 255 255 (si vous inversez l'ordre des octets)? – mb14
mb14: NON. Utiliser mapRGB et utiliser 255 255 255 255 fait la même chose. – qrest