-
Notifications
You must be signed in to change notification settings - Fork 0
/
color.rkt
80 lines (72 loc) · 2.28 KB
/
color.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#lang typed/racket
(module ffi-color racket
(provide _color
color?
color-black
color-dark-blue
color-dark-red
color-darker-green
color-darker-red
color-desaturated-green
color-green
color-light-blue
color-light-gray
color-light-red
color-light-violet
color-light-yellow
color-orange
color-red
color-violet
color-white
color-yellow
make-color
)
(require ffi/unsafe
"libtcod.rkt")
;;;
;;; Types
;;;
(define-cstruct _color ([r _uint8]
[g _uint8]
[b _uint8]))
;;;
;;; Colors
;;;
(define-tcod color-black _color #:c-id TCOD_black)
(define-tcod color-dark-blue _color #:c-id TCOD_dark_blue)
(define-tcod color-dark-red _color #:c-id TCOD_dark_red)
(define-tcod color-darker-green _color #:c-id TCOD_darker_green)
(define-tcod color-darker-red _color #:c-id TCOD_darker_red)
(define-tcod color-desaturated-green _color #:c-id TCOD_desaturated_green)
(define-tcod color-green _color #:c-id TCOD_green)
(define-tcod color-light-blue _color #:c-id TCOD_light_blue)
(define-tcod color-light-gray _color #:c-id TCOD_light_gray)
(define-tcod color-light-red _color #:c-id TCOD_light_red)
(define-tcod color-light-violet _color #:c-id TCOD_light_violet)
(define-tcod color-light-yellow _color #:c-id TCOD_light_yellow)
(define-tcod color-orange _color #:c-id TCOD_orange)
(define-tcod color-red _color #:c-id TCOD_red)
(define-tcod color-violet _color #:c-id TCOD_violet)
(define-tcod color-white _color #:c-id TCOD_white)
(define-tcod color-yellow _color #:c-id TCOD_yellow))
(require/typed/provide 'ffi-color
[#:opaque Color color?]
[color-black Color]
[color-dark-blue Color]
[color-dark-red Color]
[color-darker-green Color]
[color-darker-red Color]
[color-desaturated-green Color]
[color-green Color]
[color-light-blue Color]
[color-light-gray Color]
[color-light-red Color]
[color-light-violet Color]
[color-light-yellow Color]
[color-orange Color]
[color-red Color]
[color-violet Color]
[color-white Color]
[color-yellow Color]
[make-color (-> Integer Integer Integer Color)]
)