forked from zkat/cl-devil
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ilu.lisp
117 lines (112 loc) · 3.93 KB
/
ilu.lisp
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
;;;; cl-devil -- DevIL binding for CL. See README for licensing information.
(in-package :ilu)
(define-foreign-library ilu
(:unix (:or "libILU" "libILU.so.1"))
(:windows "ILU.dll")
(t (:default "libILU")))
(use-foreign-library ilu)
(defcenum mode
(:file-overwrite #x0620)
(:file-mode #x0621)
(:conv-pal #x0630)
(:use-key-color #x0635)
(:png-alpha-index #x0724)
(:version-num #x0DE2)
(:image-width #x0DE4)
(:image-height #x0DE5)
(:image-depth #x0DE6)
(:image-size-of-data #x0DE7)
(:image-bpp #x0DE8)
(:image-bytes-per-pixel #x0DE8)
(:image-bits-per-pixel #x0DE9)
(:image-format #x0DEA)
(:image-type #x0DEB)
(:palette-type #x0DEC)
(:palette-size #x0DED)
(:palette-bpp #x0DEE)
(:palette-num-cols #x0DEF)
(:palette-base-type #x0DF0)
(:num-images #x0DF1)
(:num-mipmaps #x0DF2)
(:num-layers #x0DF3)
(:active-image #x0DF4)
(:active-mipmap #x0DF5)
(:active-layer #x0DF6)
(:cur-image #x0DF7)
(:image-duration #x0DF8)
(:image-planesize #x0DF9)
(:image-bpc #x0DFA)
(:image-offx #x0DFB)
(:image-offy #x0DFC)
(:image-cubeflags #x0DFD)
(:image-origin #x0DFE)
(:image-channels #x0DFF))
(defcfun ("iluInit" init) :void)
(defcfun ("iluAlienify" %alienify) :boolean)
(deferrwrap alienify)
(defcfun ("iluBlurAvg" %blur-avg) :boolean (iter :uint))
(deferrwrap blur-avg (iter))
(defcfun ("iluBlurGaussian" %blur-gaussian) :boolean (iter :uint))
(deferrwrap blur-gaussian (iter))
(defcfun ("iluBuildMipmaps" %build-mipmaps) :boolean)
(deferrwrap build-mipmaps)
(defcfun ("iluColoursUsed" %colours-used) :boolean)
(deferrwrap colours-used)
(defun colors-used ()
(colours-used))
(defcfun ("iluCompareImage" %compare-image) :boolean (comp :uint))
(deferrwrap compare-image (comp))
(defcfun ("iluContrast" %contrast) :boolean (contrast :float))
(deferrwrap contrast (contrast))
(defcfun ("iluCrop" %crop) :boolean
(x-offset :uint) (y-offset :uint) (z-offset :uint)
(width :uint) (height :uint) (depth :uint))
(deferrwrap crop (x y z width height depth))
(defcfun ("iluDeleteImage" delete-image) :void (id :uint))
(defcfun ("iluEdgeDetectP" %edge-detect-p) :boolean)
(deferrwrap edge-detect-p)
(defcfun ("iluEdgeDetectS" %edge-detect-s) :boolean)
(deferrwrap edge-detect-s)
(defcfun ("iluEmboss" %emboss) :boolean)
(deferrwrap emboss)
(defcfun ("iluEnlargeCanvas" %enlarge-canvas) :boolean
(width :uint) (height :uint) (depth :uint))
(deferrwrap enlarge-canvas (width height depth))
(defcfun ("iluErrorString" error-string) :string
(error il::error-enum))
(defcfun ("iluFlipImage" %flip-image) :boolean)
(deferrwrap flip-image)
(defcfun ("iluGammaCorrect" %gamma-correct) :boolean (gamma :float))
(deferrwrap gamma-correct (gamma))
(defcfun ("iluGenImage" gen-image) :uint)
;; (defcfun ("iluGetImageInfo" get-image-info) :void (info :pointer))
(defcfun ("iluGetInteger" get-integer) :int (mode mode))
;; (defcfun ("iluGetString" get-string) :string)
;; (defcfun ("iluImageParameter" image-parameter) :void (pname pname) (param param))
(defcfun ("iluInvertAlpha" %invert-alpha) :boolean)
(deferrwrap invert-alpha)
(defcfun ("iluMirror" %mirror) :boolean)
(deferrwrap mirror)
(defcfun ("iluNegative" %negative) :boolean)
(deferrwrap negative)
(defcfun ("iluNoisify" %noisify) :boolean
(x-dim :float) (y-dim :float) (z-dim :float))
(deferrwrap noisify (x y z))
(defcfun ("iluPixelize" %pixelize) :boolean (pixel-size :uint))
(deferrwrap pixelize (pixel-size))
(defcfun ("iluRotate" %rotate) :boolean (angle :float))
(deferrwrap rotate (angle))
(defcfun ("iluSaturate4f" saturate-4f) :boolean
(r :float) (g :float) (b :float))
(defun saturate (&key (r 1.0) (g 1.0) (b 1.0))
(maybe-error (saturate-4f r g b)))
(defcfun ("iluScale" %scale) :boolean
(width :uint) (height :uint) (depth :uint))
(deferrwrap scale (width height depth))
(defcfun ("iluSharpen" %sharpen) :boolean
(factor :float) (iter :uint))
(deferrwrap sharpen (factor iter))
(defcfun ("iluSwapColours" %swap-colours) :boolean)
(deferrwrap swap-colours)
(defun swap-colors ()
(swap-colours))