0 | {- Tian Z (ecburx@burx.vip) -}
 1 |
 2 | module IdrisGL.SDL.SDL_surface
 3 |
 4 | import IdrisGL.DataType
 5 |
 6 | {- 
 7 |     FFI 
 8 | -}
 9 |
10 | frgn : String -> String
11 | frgn func = "C:" ++ func ++ ",sdl_surface"
12 |
13 | --
14 |
15 | %foreign frgn "blitSur"
16 | prim_blitSur : AnyPtr -> AnyPtr -> PrimIO ()
17 |
18 | ||| Use this function to perform a fast surface copy to a destination surface.
19 | export
20 | blitSur : HasIO io => Sur -> Sur -> io ()
21 | blitSur (MkSur src) (MkSur dst) = primIO $ prim_blitSur src dst
22 |
23 | --
24 |
25 | %foreign frgn "scaledSur"
26 | prim_scaledSur : AnyPtr -> AnyPtr -> Int -> Int -> Int -> Int -> PrimIO ()
27 |
28 | ||| Use this function to perform a scaled surface copy to a destination surface.
29 | export
30 | scaledSur : HasIO io => Sur -> Sur -> Rect -> io ()
31 | scaledSur (MkSur src) (MkSur dst) (MkRect x y w h) = primIO $ prim_scaledSur src dst x y w h
32 |
33 | --
34 |
35 | %foreign frgn "freeSur"
36 | prim_freeSur : AnyPtr -> PrimIO ()
37 |
38 | ||| Release resource of a surface.
39 | export
40 | freeSur : HasIO io => Sur -> io ()
41 | freeSur (MkSur sur) = primIO $ prim_freeSur sur
42 |
43 |