A continuación se muestra un código para usar SDL con Haskell para dibujar una línea diagonal. Obtengo una línea CYAN cuando el RGB claramente debe ser blanco. Esto está en Ubuntu. ¿Estoy haciendo algo mal?¿Por qué esta línea Haskell SDL es cian cuando debería ser blanca?
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
¿Todavía suceda con una línea vertical, y con la pintura de toda la pantalla? Solo un control de cordura para asegurarse de que no se está produciendo un anti-aliasing loco o algo así. – luqui
¿no es eso un problema con Big-little Endian? No configura el canal alfa, por lo que 255 255 255 0 se convierte en 0 255 255 255 (si invierte el orden de bytes)? – mb14
mb14: NO. Usar mapRGB y usar 255 255 255 255 hace lo mismo. – qrest