下面是一些使用SDL和Haskell繪製對角線的代碼。當RGB顯然應該是白色時,我會得到一條CYAN線。這是在Ubuntu上。難道我做錯了什麼?爲什麼Haskell SDL應該是白色的青色線?
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
是否仍與垂直線發生,並與畫整個屏幕?只是一個健全的檢查,以確保一些瘋狂的反鋸齒不會發生或什麼。 – luqui 2010-07-20 07:48:58
這是不是一個大 - 小端的問題?你不設置alpha通道255 255 255 0變爲0 255 255 255(如果你顛倒了字節順序)? – mb14 2010-07-30 14:33:16
mb14:NO。使用mapRGB並使用255 255 255 255做同樣的事情。 – qrest 2010-07-30 16:12:43