Связывание с Haskell SDL: почему SDL не рисует здесь круг? - PullRequest
4 голосов
/ 04 сентября 2011

Я хочу использовать SDL-привязку Haskell для рисования простых объектов (треугольник, круги и тому подобное).В Graphics.UI.SDL.Video есть функция для рисования прямоугольников, которая работает нормально.Но я не могу заставить работать функции, которые я нашел для рисования других примитивов (в Graphics.UI.SDL.Primitives).Следующий код рисует только прямоугольник.Есть идеи, что я пропустил?

module Main where

import Graphics.UI.SDL as SDL
import Graphics.UI.SDL.Color
import Graphics.UI.SDL.Primitives

main = do
    SDL.init [SDL.InitVideo]
    screen <- SDL.setVideoMode 500 500 32 [SDL.HWSurface]

    SDL.fillRect screen Nothing (SDL.Pixel 0x0000FF) 

    fillRect screen (Just (SDL.Rect 10 10 30 30)) (SDL.Pixel 0x00FF0000)
    filledCircle screen 40 40 50 (SDL.Pixel 0x00FF0000)

    SDL.flip screen

    delay 2000

    SDL.quit

1 Ответ

6 голосов
/ 04 сентября 2011

Цвет пикселя, который вы задаете для fillCircle и fillRect, имеет нулевой альфа-компонент;попробуйте SDL.Pixel 0x00FF00FF вместо этого.fillCircle, по-видимому, учитывает альфа-компонент цвета, тогда как fillRect, по-видимому, этого не делает.

...