packages feed

xturtle 0.1.13 → 0.1.23

raw patch · 4 files changed

+26/−5 lines, 4 files

Files

src/Graphics/X11/Turtle.hs view
@@ -34,6 +34,7 @@ 	inputs, 	runInputs, 	getSVG,+	field,  	-- ** move turtle 	forward,
src/Graphics/X11/Turtle/Move.hs view
@@ -60,7 +60,7 @@ 			unlessM (undoLayer l) $ clearLayer l >> redraw 			when (visible t1) $ drawTtl (direction t0) $ position t0 	case silentundo t1 of-		Just n -> replicateM_ n (undoLayer l) >> clearLayer l >> redraw+		Just n -> fl $ replicateM_ n (undoLayer l) >> clearLayer l >> redraw 		_ -> return () 	when (visible t1 && isNothing (silentundo t1)) $ do 		forM_ (directions t0 t1) $ \dir -> fl $
src/Graphics/X11/Turtle/XTools.hs view
@@ -86,13 +86,13 @@ import Control.Concurrent(ThreadId, forkIO, threadWaitRead) import System.Locale.SetLocale(Category(..), setLocale) import System.Posix.Types(Fd(..))-import Data.Word(Word32)-import Data.Bits((.|.), shift)+import Data.Bits((.&.), (.|.), shift) import Data.IORef(newIORef, readIORef, modifyIORef) import Foreign.Ptr(Ptr) import Foreign.Storable(peek) import Foreign.Marshal.Array(advancePtr) import Control.Exception(catch, SomeException)+import Data.Word(Word32, Word64)  -------------------------------------------------------------------------------- @@ -137,6 +137,26 @@ 	(_, _, _, width, height, _, _) <- getGeometry dpy win 	return (width, height) +class ConvertPixel p where+	convertPixel :: Word32 -> p++instance ConvertPixel Word32 where+	convertPixel = id++instance ConvertPixel Word64 where+	convertPixel = fromIntegral++convertW64 :: Word64 -> Word64+convertW64 p = foldr1 (.|.) $ zipWith shift (getColors p) [8, 16, 24, 32]++getColors :: Word64 -> [Word64]+getColors p = [+	p .&. 0xffff,+	p .&. (0xffff `shift` 8),+	p .&. (0xffff `shift` 16),+	p .&. (0xffff `shift` 24)+ ]+ --------------------------------------------------------------------------------  setForegroundXT :: Display -> GC -> Color -> IO ()@@ -206,7 +226,7 @@ 	Dimension -> Dimension -> Ptr Word32 -> IO () drawBitmap dpy win gc x y w_ h_ dat = newIORef dat >>= \ptr -> 	forM_ [0 .. w * h - 1]  $ \i -> do-		readIORef ptr >>= peek >>= setForeground dpy gc+		readIORef ptr >>= peek >>= setForeground dpy gc . convertPixel 		drawPoint dpy win gc (x + i `mod` w) (y + i `div` w) 		modifyIORef ptr $ flip advancePtr 1 	where [w, h] = map fromIntegral [w_, h_]
xturtle.cabal view
@@ -2,7 +2,7 @@ cabal-version:	>= 1.6  name:		xturtle-version:	0.1.13+version:	0.1.23 stability:	experimental author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp> maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>