1 #ifndef _IMGWRAP_H_
2 #define _IMGWRAP_H_
3 
4 #include <X11/Xlib.h>
5 #include <Imlib2.h>
6 
7 #define _image Imlib_Image
8 #define _font Imlib_Font
9 
10 #define SET_BLEND(x) \
11     imlib_context_set_blend(x)
12 
13 #define LOAD_IMAGE(path) \
14     imlib_load_image(path)
15 
16 #define USE_IMAGE(x) \
17     imlib_context_set_image(x)
18 
19 #define IMAGE_WIDTH() \
20     imlib_image_get_width()
21 
22 #define IMAGE_HEIGHT() \
23     imlib_image_get_height()
24 
25 #define IMAGE_TRANSPOSE() \
26     imlib_image_flip_diagonal()
27 
28 #define IMAGE_ENABLE_ALPHA(x) \
29     imlib_image_set_has_alpha(x)
30 
31 #define FREE_IMAGE(x) \
32     do{ imlib_context_set_image(x); \
33     imlib_free_image(); }while(0)
34 
35 #define USE_DRAWABLE(x) \
36     imlib_context_set_drawable(x)
37 
38 #define IMAGE_FROM_DRAWABLE(x, y, w, h) \
39     imlib_create_image_from_drawable(0, x, y, w, h, 1)
40 
41 #define CLONE_IMAGE() \
42     imlib_clone_image()
43 
44 #define CREATE_IMAGE(w, h) \
45     imlib_create_image(w, h)
46 
47 #define BLEND_IMAGE(img, sx, sy, sw, sh, dx, dy, dw, dh) \
48     imlib_blend_image_onto_image(img, 0, sx, sy, sw, sh, dx, dy, dw, dh)
49 
50 #define RENDER_TO_DRAWABLE(x, y) \
51     imlib_render_image_on_drawable(x, y)
52 
53 #define INIT_IMLIB(disp, vis, cm, draw, cache) \
54     do{ imlib_context_set_display(disp); \
55     imlib_context_set_visual(vis); \
56     imlib_context_set_colormap(cm); \
57     imlib_context_set_drawable(draw); \
58     imlib_set_cache_size(cache); }while(0)
59 
60 #define ADD_FONT_PATH(x) \
61     imlib_add_path_to_font_path(x)
62 
63 #define LOAD_FONT(x) \
64     imlib_load_font(x)
65 
66 #define USE_FONT(x) \
67     imlib_context_set_font(x)
68 
69 #define FREE_FONT(x) \
70     do{ imlib_context_set_font(x); \
71     imlib_free_font(); }while(0)
72 
73 #endif /* _IMGWRAP_H_ */
74