예제와 같이. gtk와 haskell로 어떻게 2d 더블 버퍼링을 할 수 있습니까? 프리 머 티브를 오프 스크린 버퍼에 렌더링하고 뒤집기를 원합니다. 이 코드는 픽셀/사각형 만 렌더링합니다. 이중 버퍼 방식을 사용하여 움직임을 추가하고 싶습니다.Haskell GTK, 프리미티브를 사용한 더블 버퍼링
import Graphics.UI.Gtk
import Graphics.UI.Gtk.Gdk.GC
import Graphics.UI.Gtk hiding (Color, Point, Object)
defaultFgColor :: Color
defaultFgColor = Color 65535 65535 65535
defaultBgColor :: Color
defaultBgColor = Color 0 0 0
renderScene d ev = do
dw <- widgetGetDrawWindow d
(w, h) <- widgetGetSize d
gc <- gcNew dw
let fg = Color (round (65535 * 205))
(round (65535 * 0))
(round (65535 * 0))
gcSetValues gc $ newGCValues { foreground = fg }
drawPoint dw gc (120, 120)
drawPoint dw gc (22, 22)
drawRectangle dw gc True 20 20 20 20
return True
main :: IO()
main = do
initGUI
window <- windowNew
drawing <- drawingAreaNew
windowSetTitle window "Cells"
containerAdd window drawing
let bg = Color (round (65535 * 205))
(round (65535 * 205))
(round (65535 * 255))
widgetModifyBg drawing StateNormal bg
onExpose drawing (renderScene drawing)
onDestroy window mainQuit
windowSetDefaultSize window 800 600
windowSetPosition window WinPosCenter
widgetShowAll window
mainGUI
정확하게 작동하지 않는 이유를 말해 줄 수 있습니까? – fuz
이 코드는 픽셀 만 렌더링합니다. 이중 버퍼 방식을 사용하여 움직임을 추가하고 싶습니다. –