Imlib2 1.12.1
Imlib2.h
Go to the documentation of this file.
1#ifndef __IMLIB_API_H
2#define __IMLIB_API_H 1
6#define IMLIB2_VERSION_MAJOR 1
7#define IMLIB2_VERSION_MINOR 12
8#define IMLIB2_VERSION_MICRO 1
9
10#define IMLIB2_VERSION_(maj, min, mic) (10000 * (maj) + 100 * (min) + (mic))
11#define IMLIB2_VERSION IMLIB2_VERSION_(IMLIB2_VERSION_MAJOR, IMLIB2_VERSION_MINOR, IMLIB2_VERSION_MICRO)
12
13#ifdef EAPI
14#undef EAPI
15#endif
16#ifdef WIN32
17#ifdef BUILDING_DLL
18#define EAPI __declspec(dllexport)
19#else
20#define EAPI __declspec(dllimport)
21#endif
22#else
23#ifdef __GNUC__
24#if __GNUC__ >= 4
25#define EAPI __attribute__ ((visibility("default")))
26#else
27#define EAPI
28#endif
29#else
30#define EAPI
31#endif
32#endif
33
34#ifndef IMLIB2_DEPRECATED
35#ifdef __GNUC__
36#define IMLIB2_DEPRECATED __attribute__((deprecated))
37#else
38#define IMLIB2_DEPRECATED
39#endif
40#endif
41
42#include <stddef.h>
43#include <stdint.h>
44#ifndef X_DISPLAY_MISSING
45#include <X11/Xlib.h>
46#endif
47
48/* opaque data types */
49typedef void *Imlib_Context;
50typedef void *Imlib_Image;
51typedef void *Imlib_Color_Modifier;
52typedef void *Imlib_Updates;
53typedef void *Imlib_Font;
54typedef void *Imlib_Color_Range;
55typedef void *Imlib_Filter;
56typedef void *ImlibPolygon;
57
58/* blending operations */
59typedef enum {
60 IMLIB_OP_COPY,
61 IMLIB_OP_ADD,
62 IMLIB_OP_SUBTRACT,
63 IMLIB_OP_RESHADE
64} Imlib_Operation;
65
66typedef enum {
67 IMLIB_TEXT_TO_RIGHT = 0,
68 IMLIB_TEXT_TO_LEFT = 1,
69 IMLIB_TEXT_TO_DOWN = 2,
70 IMLIB_TEXT_TO_UP = 3,
71 IMLIB_TEXT_TO_ANGLE = 4
72} Imlib_Text_Direction;
73
74#define IMLIB_ERR_INTERNAL -1 /* Internal error (should not happen) */
75#define IMLIB_ERR_NO_LOADER -2 /* No loader for file format */
76#define IMLIB_ERR_NO_SAVER -3 /* No saver for file format */
77#define IMLIB_ERR_BAD_IMAGE -4 /* Invalid image file */
78#define IMLIB_ERR_BAD_FRAME -5 /* Requested frame not in image */
79
80typedef struct {
81 int left, right, top, bottom;
82} Imlib_Border;
83
84typedef struct {
85 int alpha, red, green, blue;
86} Imlib_Color;
87
88/* Progressive loading callback */
89typedef int (*Imlib_Progress_Function)(Imlib_Image im, char percent,
90 int update_x, int update_y,
91 int update_w, int update_h);
92
93/* Custom attached data destructor callback */
94typedef void (*Imlib_Data_Destructor_Function)(Imlib_Image im,
95 void *data);
96
97/* Custom image data memory management function */
98typedef void *(*Imlib_Image_Data_Memory_Function)(void *, size_t size);
99
100/* *INDENT-OFF* */
101#ifdef __cplusplus
102extern "C" {
103#endif
104/* *INDENT-ON* */
105
107EAPI int imlib_version(void);
108
109/*--------------------------------
110 * Context handling
111 */
112
114EAPI Imlib_Context imlib_context_new(void);
115
117EAPI void imlib_context_free(Imlib_Context context);
118
120EAPI void imlib_context_push(Imlib_Context context);
121
123EAPI void imlib_context_pop(void);
124
126EAPI Imlib_Context imlib_context_get(void);
127
128/*--------------------------------
129 * Context operations
130 */
131
132#ifndef X_DISPLAY_MISSING
146EAPI void imlib_context_set_display(Display * display);
147
153EAPI Display *imlib_context_get_display(void);
154
162
171EAPI void imlib_context_set_visual(Visual * visual);
172
178EAPI Visual *imlib_context_get_visual(void);
179
189EAPI void imlib_context_set_colormap(Colormap colormap);
190
196EAPI Colormap imlib_context_get_colormap(void);
197
205EAPI void imlib_context_set_drawable(Drawable drawable);
206
212EAPI Drawable imlib_context_get_drawable(void);
213
222EAPI void imlib_context_set_mask(Pixmap mask);
223
229EAPI Pixmap imlib_context_get_mask(void);
230
241EAPI void imlib_context_set_dither_mask(char dither_mask);
242
249
261 mask_alpha_threshold);
262
269
270#endif /* X_DISPLAY_MISSING */
271
283EAPI void imlib_context_set_anti_alias(char anti_alias);
284
291
306EAPI void imlib_context_set_dither(char dither);
307
314
323EAPI void imlib_context_set_blend(char blend);
324
331
347EAPI void imlib_context_set_color_modifier(Imlib_Color_Modifier
348 color_modifier);
349
355EAPI Imlib_Color_Modifier imlib_context_get_color_modifier(void);
356
375EAPI void imlib_context_set_operation(Imlib_Operation operation);
376
382EAPI Imlib_Operation imlib_context_get_operation(void);
383
391EAPI void imlib_context_set_font(Imlib_Font font);
392
398EAPI Imlib_Font imlib_context_get_font(void);
399
412EAPI void imlib_context_set_direction(Imlib_Text_Direction direction);
413
419EAPI Imlib_Text_Direction imlib_context_get_direction(void);
420
430EAPI void imlib_context_set_angle(double angle);
431
439EAPI double imlib_context_get_angle(void);
440
454EAPI void imlib_context_set_color(int red, int green, int blue,
455 int alpha);
456
465EAPI void imlib_context_get_color(int *red, int *green, int *blue,
466 int *alpha);
467
480EAPI void imlib_context_set_color_hsva(float hue, float saturation,
481 float value, int alpha);
482
491EAPI void imlib_context_get_color_hsva(float *hue, float *saturation,
492 float *value, int *alpha);
493
506EAPI void imlib_context_set_color_hlsa(float hue, float lightness,
507 float saturation, int alpha);
508
517EAPI void imlib_context_get_color_hlsa(float *hue, float *lightness,
518 float *saturation, int *alpha);
519
531EAPI void imlib_context_set_color_cmya(int cyan, int magenta,
532 int yellow, int alpha);
533
542EAPI void imlib_context_get_color_cmya(int *cyan, int *magenta,
543 int *yellow, int *alpha);
544
552EAPI Imlib_Color *imlib_context_get_imlib_color(void);
553
559EAPI void imlib_context_set_color_range(Imlib_Color_Range
560 color_range);
561
567EAPI Imlib_Color_Range imlib_context_get_color_range(void);
568
575 (Imlib_Image_Data_Memory_Function memory_function);
576
582EAPI Imlib_Image_Data_Memory_Function
584
593EAPI void imlib_context_set_progress_function(Imlib_Progress_Function
594 progress_function);
595
601EAPI Imlib_Progress_Function imlib_context_get_progress_function(void);
602
615 progress_granularity);
616
623
629EAPI void imlib_context_set_image(Imlib_Image image);
630
636EAPI Imlib_Image imlib_context_get_image(void);
637
646EAPI void imlib_context_set_cliprect(int x, int y, int w, int h);
647
656EAPI void imlib_context_get_cliprect(int *x, int *y, int *w, int *h);
657
665EAPI int imlib_get_cache_used(void);
666
674EAPI int imlib_get_cache_size(void);
675
687EAPI void imlib_set_cache_size(int bytes);
688
689#ifndef X_DISPLAY_MISSING
698
706EAPI void imlib_set_color_usage(int max);
707
714EAPI int imlib_get_visual_depth(Display * display, Visual * visual);
715
727EAPI Visual *imlib_get_best_visual(Display * display, int screen,
728 int *depth_return);
729#endif /* X_DISPLAY_MISSING */
730
739EAPI void imlib_flush_loaders(void);
740
752EAPI int imlib_get_error(void);
753
763EAPI Imlib_Image imlib_load_image(const char *file);
764
775EAPI Imlib_Image imlib_load_image_immediately(const char *file);
776
784EAPI Imlib_Image imlib_load_image_without_cache(const char *file);
785
794 *file);
795
812EAPI Imlib_Image imlib_load_image_with_errno_return(const char *file,
813 int *error_return);
814
830EAPI Imlib_Image imlib_load_image_fd(int fd, const char *file);
831
845EAPI Imlib_Image imlib_load_image_mem(const char *file,
846 const void *data, size_t size);
847
851EAPI void imlib_free_image(void);
852
857
865EAPI int imlib_image_decache_file(const char *file);
866
867/*--------------------------------
868 * Query/modify image parameters
869 */
870
875
880
893EAPI const char *imlib_image_get_filename(void);
894
913EAPI uint32_t *imlib_image_get_data(void);
914
927
935EAPI void imlib_image_put_back_data(uint32_t * data);
936
945EAPI char imlib_image_has_alpha(void);
946
959
970EAPI void imlib_image_get_border(Imlib_Border * border);
971
977EAPI void imlib_image_set_border(Imlib_Border * border);
978
988EAPI void imlib_image_set_format(const char *format);
989
999EAPI void imlib_image_set_irrelevant_format(char irrelevant);
1000
1008EAPI char *imlib_image_format(void);
1009
1017EAPI void imlib_image_set_has_alpha(char has_alpha);
1018
1029EAPI void imlib_image_query_pixel(int x, int y,
1030 Imlib_Color * color_return);
1031
1042EAPI void imlib_image_query_pixel_hsva(int x, int y,
1043 float *hue, float *saturation,
1044 float *value, int *alpha);
1045
1056EAPI void imlib_image_query_pixel_hlsa(int x, int y,
1057 float *hue, float *lightness,
1058 float *saturation, int *alpha);
1059
1070EAPI void imlib_image_query_pixel_cmya(int x, int y,
1071 int *cyan, int *magenta,
1072 int *yellow, int *alpha);
1073
1074/*--------------------------------
1075 * Rendering functions
1076 */
1077
1078#ifndef X_DISPLAY_MISSING
1089EAPI void imlib_render_pixmaps_for_whole_image(Pixmap * pixmap_return,
1090 Pixmap * mask_return);
1091
1107 pixmap_return,
1108 Pixmap *
1109 mask_return,
1110 int width,
1111 int height);
1112
1121EAPI void imlib_free_pixmap_and_mask(Pixmap pixmap);
1122
1132EAPI void imlib_render_image_on_drawable(int x, int y);
1133
1147 int width,
1148 int height);
1149
1168 int src_y,
1169 int src_width,
1170 int src_height,
1171 int dst_x,
1172 int dst_y,
1173 int dst_width,
1174 int dst_height);
1175
1180
1181#endif /* X_DISPLAY_MISSING */
1182
1203EAPI void imlib_blend_image_onto_image(Imlib_Image src_image,
1204 char merge_alpha,
1205 int src_x, int src_y,
1206 int src_width, int src_height,
1207 int dst_x, int dst_y,
1208 int dst_width, int dst_height);
1209
1210/*--------------------------------
1211 * Image creation functions
1212 */
1213
1227EAPI Imlib_Image imlib_create_image(int width, int height);
1228
1236EAPI Imlib_Image imlib_clone_image(void);
1237
1251EAPI Imlib_Image imlib_create_cropped_image(int x, int y, int width,
1252 int height);
1253
1270EAPI Imlib_Image imlib_create_cropped_scaled_image(int src_x, int src_y,
1271 int src_width,
1272 int src_height,
1273 int dst_width,
1274 int dst_height);
1275
1296EAPI Imlib_Image imlib_create_image_using_data(int width, int height,
1297 uint32_t * data);
1298
1317 (int width, int height, uint32_t * data,
1318 Imlib_Image_Data_Memory_Function func);
1319
1334EAPI Imlib_Image imlib_create_image_using_copied_data(int width, int height,
1335 uint32_t * data);
1336
1337#ifndef X_DISPLAY_MISSING
1360EAPI Imlib_Image imlib_create_image_from_drawable(Pixmap mask,
1361 int x, int y,
1362 int width, int height,
1363 char need_to_grab_x);
1364
1378EAPI Imlib_Image imlib_create_image_from_ximage(XImage * image,
1379 XImage * mask,
1380 int x, int y,
1381 int width, int height,
1382 char need_to_grab_x);
1383
1411EAPI Imlib_Image imlib_create_scaled_image_from_drawable(Pixmap mask,
1412 int src_x,
1413 int src_y,
1414 int src_width,
1415 int src_height,
1416 int dst_width,
1417 int dst_height,
1418 char need_to_grab_x,
1419 char get_mask_from_shape);
1420
1445EAPI char imlib_copy_drawable_to_image(Pixmap mask,
1446 int src_x, int src_y,
1447 int src_width, int src_height,
1448 int dst_x, int dst_y,
1449 char need_to_grab_x);
1450
1457
1464
1477
1484
1491
1504
1505#endif /* X_DISPLAY_MISSING */
1506
1507/*--------------------------------
1508 * Updates - lists of rectangles for storing required update draws
1509 */
1510
1520EAPI Imlib_Updates imlib_updates_clone(Imlib_Updates updates);
1521
1538EAPI Imlib_Updates imlib_update_append_rect(Imlib_Updates updates,
1539 int x, int y, int w, int h);
1540
1556EAPI Imlib_Updates imlib_updates_merge(Imlib_Updates updates, int w, int h);
1557
1571EAPI Imlib_Updates imlib_updates_merge_for_rendering(Imlib_Updates updates,
1572 int w, int h);
1573
1579EAPI void imlib_updates_free(Imlib_Updates updates);
1580
1588EAPI Imlib_Updates imlib_updates_get_next(Imlib_Updates updates);
1589
1599EAPI void imlib_updates_get_coordinates(Imlib_Updates updates,
1600 int *x_return,
1601 int *y_return,
1602 int *width_return,
1603 int *height_return);
1604
1614EAPI void imlib_updates_set_coordinates(Imlib_Updates updates,
1615 int x, int y,
1616 int width, int height);
1617
1618#ifdef BUILD_X11
1630EAPI void imlib_render_image_updates_on_drawable(Imlib_Updates
1631 updates,
1632 int x, int y);
1633#endif
1634
1643EAPI Imlib_Updates imlib_updates_init(void);
1644
1656EAPI Imlib_Updates imlib_updates_append_updates(Imlib_Updates updates,
1657 Imlib_Updates
1658 appended_updates);
1659
1660/*--------------------------------
1661 * Image modification
1662 */
1663
1668
1673
1681
1692EAPI void imlib_image_orientate(int orientation);
1693
1702EAPI void imlib_image_blur(int radius);
1703
1711EAPI void imlib_image_sharpen(int radius);
1712
1720
1728
1736EAPI void imlib_image_tile(void);
1737
1749EAPI void imlib_image_copy_alpha_to_image(Imlib_Image image_source,
1750 int x, int y);
1751
1769 image_source,
1770 int src_x,
1771 int src_y,
1772 int src_width,
1773 int src_height,
1774 int dst_x,
1775 int dst_y);
1776
1790EAPI void imlib_image_scroll_rect(int x, int y, int width, int height,
1791 int delta_x, int delta_y);
1792
1807EAPI void imlib_image_copy_rect(int x, int y, int width, int height,
1808 int new_x, int new_y);
1809
1810/*--------------------------------
1811 * Fonts and text
1812 */
1813
1827EAPI Imlib_Font imlib_load_font(const char *font_name);
1828
1832EAPI void imlib_free_font(void);
1833
1852 Imlib_Font
1853 fallback_font);
1854
1863 fallback_font);
1864
1866EAPI Imlib_Font imlib_get_prev_font_in_fallback_chain(Imlib_Font fn);
1867
1869EAPI Imlib_Font imlib_get_next_font_in_fallback_chain(Imlib_Font fn);
1870
1882EAPI void imlib_text_draw(int x, int y, const char *text);
1883
1903 const char *text,
1904 int *width_return,
1905 int *height_return,
1906 int *horizontal_advance_return,
1907 int *vertical_advance_return);
1908
1919EAPI void imlib_get_text_size(const char *text,
1920 int *width_return, int *height_return);
1921
1935EAPI void imlib_get_text_advance(const char *text,
1936 int *horizontal_advance_return,
1937 int *vertical_advance_return);
1938
1949EAPI int imlib_get_text_inset(const char *text);
1950
1959EAPI void imlib_add_path_to_font_path(const char *path);
1960
1968EAPI void imlib_remove_path_from_font_path(const char *path);
1969
1984EAPI char **imlib_list_font_path(int *number_return);
1985
2006EAPI int imlib_text_get_index_and_location(const char *text,
2007 int x, int y,
2008 int *char_x_return,
2009 int *char_y_return,
2010 int *char_width_return,
2011 int *char_height_return);
2012
2026EAPI void imlib_text_get_location_at_index(const char *text,
2027 int index,
2028 int *char_x_return,
2029 int *char_y_return,
2030 int *char_width_return,
2031 int *char_height_return);
2032
2040EAPI char **imlib_list_fonts(int *number_return);
2041
2048EAPI void imlib_free_font_list(char **font_list, int number);
2049
2056
2067EAPI void imlib_set_font_cache_size(int bytes);
2068
2073
2080
2087
2094
2101
2102/*--------------------------------
2103 * Color modifiers
2104 */
2105
2114EAPI Imlib_Color_Modifier imlib_create_color_modifier(void);
2115
2120
2132EAPI void imlib_modify_color_modifier_gamma(double gamma_value);
2133
2147 brightness_value);
2148
2160 contrast_value);
2161
2176EAPI void imlib_set_color_modifier_tables(uint8_t * red_table,
2177 uint8_t * green_table,
2178 uint8_t * blue_table,
2179 uint8_t * alpha_table);
2180
2193EAPI void imlib_get_color_modifier_tables(uint8_t * red_table,
2194 uint8_t * green_table,
2195 uint8_t * blue_table,
2196 uint8_t * alpha_table);
2197
2204
2211
2224 int width,
2225 int height);
2226
2227/*--------------------------------
2228 * Drawing on images
2229 */
2230
2245EAPI Imlib_Updates imlib_image_draw_pixel(int x, int y, char make_updates);
2246
2263EAPI Imlib_Updates imlib_image_draw_line(int x1, int y1, int x2, int y2,
2264 char make_updates);
2265
2279EAPI void imlib_image_draw_rectangle(int x, int y,
2280 int width, int height);
2281
2294EAPI void imlib_image_fill_rectangle(int x, int y,
2295 int width, int height);
2296
2297/*--------------------------------
2298 * Polygons
2299 */
2300
2306EAPI ImlibPolygon imlib_polygon_new(void);
2307
2313EAPI void imlib_polygon_free(ImlibPolygon poly);
2314
2326EAPI void imlib_polygon_add_point(ImlibPolygon poly, int x, int y);
2327
2339EAPI void imlib_image_draw_polygon(ImlibPolygon poly,
2340 unsigned char closed);
2341
2350EAPI void imlib_image_fill_polygon(ImlibPolygon poly);
2351
2365EAPI void imlib_polygon_get_bounds(ImlibPolygon poly,
2366 int *px1, int *py1,
2367 int *px2, int *py2);
2368
2381EAPI unsigned char imlib_polygon_contains_point(ImlibPolygon poly,
2382 int x, int y);
2383
2384/*--------------------------------
2385 * Ellipses
2386 */
2387
2402EAPI void imlib_image_draw_ellipse(int xc, int yc, int a, int b);
2403
2419EAPI void imlib_image_fill_ellipse(int xc, int yc, int a, int b);
2420
2421/*--------------------------------
2422 * Color ranges
2423 */
2424
2430EAPI Imlib_Color_Range imlib_create_color_range(void);
2431
2436
2446EAPI void imlib_add_color_to_color_range(int distance_away);
2447
2463 int width,
2464 int height,
2465 double angle);
2466
2484 int width,
2485 int height,
2486 double
2487 angle);
2488
2489/*--------------------------------
2490 * Image data attachment
2491 */
2492
2506EAPI void imlib_image_attach_data_value(const char *key,
2507 void *data, int value,
2508 Imlib_Data_Destructor_Function
2509 destructor_function);
2510
2521EAPI void *imlib_image_get_attached_data(const char *key);
2522
2533EAPI int imlib_image_get_attached_value(const char *key);
2534
2544
2555 *key);
2556
2557/*--------------------------------
2558 * Image saving
2559 */
2560
2570EAPI void imlib_save_image(const char *file);
2571
2585EAPI void imlib_save_image_with_errno_return(const char *file,
2586 int *error_return);
2587
2601EAPI void imlib_save_image_fd(int fd, const char *file);
2602
2603/*--------------------------------
2604 * Image rotation/skewing
2605 */
2606
2616EAPI Imlib_Image imlib_create_rotated_image(double angle);
2617
2626EAPI void imlib_rotate_image_from_buffer(double angle,
2627 Imlib_Image src_image);
2628
2647 src_image,
2648 char merge_alpha,
2649 int src_x,
2650 int src_y,
2651 int src_width,
2652 int src_height,
2653 int dst_x,
2654 int dst_y,
2655 int angle_x,
2656 int angle_y);
2657
2712 src_image,
2713 char merge_alpha,
2714 int src_x,
2715 int src_y,
2716 int src_width,
2717 int src_height,
2718 int dst_x,
2719 int dst_y,
2720 int h_angle_x,
2721 int h_angle_y,
2722 int v_angle_x,
2723 int v_angle_y);
2724
2725#ifndef X_DISPLAY_MISSING
2745 int src_y,
2746 int src_width,
2747 int src_height,
2748 int dst_x,
2749 int dst_y,
2750 int h_angle_x,
2751 int h_angle_y,
2752 int v_angle_x,
2753 int v_angle_y);
2754
2771 int src_y,
2772 int src_width,
2773 int src_height,
2774 int dst_x,
2775 int dst_y,
2776 int angle_x,
2777 int angle_y);
2778
2779#endif /* X_DISPLAY_MISSING */
2780
2781/*--------------------------------
2782 * Image filters
2783 */
2784
2788EAPI void imlib_image_filter(void);
2789
2793EAPI Imlib_Filter imlib_create_filter(int initsize);
2794
2802EAPI void imlib_context_set_filter(Imlib_Filter filter);
2803
2809EAPI Imlib_Filter imlib_context_get_filter(void);
2810
2814EAPI void imlib_free_filter(void);
2815
2816EAPI void imlib_filter_set(int xoff, int yoff,
2817 int a, int r, int g, int b);
2818EAPI void imlib_filter_set_alpha(int xoff, int yoff,
2819 int a, int r, int g, int b);
2820EAPI void imlib_filter_set_red(int xoff, int yoff,
2821 int a, int r, int g, int b);
2822EAPI void imlib_filter_set_green(int xoff, int yoff,
2823 int a, int r, int g, int b);
2824EAPI void imlib_filter_set_blue(int xoff, int yoff,
2825 int a, int r, int g, int b);
2826EAPI void imlib_filter_constants(int a, int r, int g, int b);
2827EAPI void imlib_filter_divisors(int a, int r, int g, int b);
2828
2829EAPI void imlib_apply_filter(const char *script, ...);
2830
2836EAPI void imlib_image_clear(void);
2837
2841EAPI void imlib_image_clear_color(int r, int g, int b, int a);
2842
2843/*--------------------------------
2844 * Multiframe image loading
2845 */
2846
2847typedef struct {
2848 int frame_count; /* Number of frames in image */
2849 int frame_num; /* Current frame (1..frame_count) */
2850 int canvas_w, canvas_h; /* Canvas size */
2851 int frame_x, frame_y; /* Frame origin */
2852 int frame_w, frame_h; /* Frame size */
2853 int frame_flags; /* Frame info flags */
2854 int frame_delay; /* Frame delay (ms) */
2855 int loop_count; /* Number of animation loops */
2856} Imlib_Frame_Info;
2857
2858/* frame info flags */
2859#define IMLIB_IMAGE_ANIMATED (1 << 0) /* Frames are an animated sequence */
2860#define IMLIB_FRAME_BLEND (1 << 1) /* Blend current onto previous frame */
2861#define IMLIB_FRAME_DISPOSE_CLEAR (1 << 2) /* Clear before rendering next frame */
2862#define IMLIB_FRAME_DISPOSE_PREV (1 << 3) /* Revert before rendering next frame */
2863
2877EAPI Imlib_Image imlib_load_image_frame(const char *file, int frame);
2878
2895EAPI Imlib_Image imlib_load_image_frame_mem(const char *file, int frame,
2896 const void *data, size_t size);
2897
2903EAPI void imlib_image_get_frame_info(Imlib_Frame_Info * info);
2904
2915EAPI const char *imlib_strerror(int err);
2916
2917/*--------------------------------
2918 * Deprecated functionality
2919 */
2920
2921/* Old data types, no longer used by imlib2, likely to be removed */
2922#ifndef DATA64
2923#define DATA64 uint64_t
2924#define DATA32 uint32_t
2925#define DATA16 uint16_t
2926#define DATA8 uint8_t
2927#endif
2928
2929/* *INDENT-OFF* */
2930
2931typedef enum {
2932 IMLIB_LOAD_ERROR_NONE,
2933 IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST,
2934 IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY,
2935 IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_READ,
2936 IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT,
2937 IMLIB_LOAD_ERROR_PATH_TOO_LONG,
2938 IMLIB_LOAD_ERROR_PATH_COMPONENT_NON_EXISTANT,
2939 IMLIB_LOAD_ERROR_PATH_COMPONENT_NOT_DIRECTORY,
2940 IMLIB_LOAD_ERROR_PATH_POINTS_OUTSIDE_ADDRESS_SPACE,
2941 IMLIB_LOAD_ERROR_TOO_MANY_SYMBOLIC_LINKS,
2942 IMLIB_LOAD_ERROR_OUT_OF_MEMORY,
2943 IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS,
2944 IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE,
2945 IMLIB_LOAD_ERROR_OUT_OF_DISK_SPACE,
2946 IMLIB_LOAD_ERROR_UNKNOWN,
2947 IMLIB_LOAD_ERROR_IMAGE_READ,
2948 IMLIB_LOAD_ERROR_IMAGE_FRAME
2949} Imlib_Load_Error;
2950
2965/* IMLIB2_DEPRECATED */
2966EAPI Imlib_Image imlib_load_image_with_error_return(const char *file,
2967 Imlib_Load_Error *
2968 error_return);
2969
2981/* IMLIB2_DEPRECATED */
2982EAPI void imlib_save_image_with_error_return(const char *file,
2983 Imlib_Load_Error *
2984 error_return);
2985
2988IMLIB2_DEPRECATED
2989EAPI void imlib_image_set_irrelevant_border(char irrelevant);
2990
2993IMLIB2_DEPRECATED
2994EAPI void imlib_image_set_irrelevant_alpha(char irrelevant);
2995
2996/* Encodings known to Imlib2 (so far) */
2997typedef enum {
2998 IMLIB_TTF_ENCODING_ISO_8859_1,
2999 IMLIB_TTF_ENCODING_ISO_8859_2,
3000 IMLIB_TTF_ENCODING_ISO_8859_3,
3001 IMLIB_TTF_ENCODING_ISO_8859_4,
3002 IMLIB_TTF_ENCODING_ISO_8859_5
3003} Imlib_TTF_Encoding;
3004
3007IMLIB2_DEPRECATED
3008EAPI void imlib_context_set_TTF_encoding(Imlib_TTF_Encoding encoding);
3009
3012IMLIB2_DEPRECATED
3013EAPI Imlib_TTF_Encoding imlib_context_get_TTF_encoding(void);
3014
3015#ifdef __cplusplus
3016}
3017#endif
3018/* *INDENT-ON* */
3019#endif
EAPI void imlib_image_query_pixel(int x, int y, Imlib_Color *color_return)
EAPI Imlib_Color_Modifier imlib_create_color_modifier(void)
EAPI void imlib_image_copy_alpha_to_image(Imlib_Image image_source, int x, int y)
IMLIB2_DEPRECATED EAPI Imlib_TTF_Encoding imlib_context_get_TTF_encoding(void)
EAPI void imlib_add_color_to_color_range(int distance_away)
EAPI void imlib_image_put_back_data(uint32_t *data)
EAPI void imlib_image_query_pixel_hlsa(int x, int y, float *hue, float *lightness, float *saturation, int *alpha)
EAPI void imlib_updates_get_coordinates(Imlib_Updates updates, int *x_return, int *y_return, int *width_return, int *height_return)
EAPI void imlib_image_tile(void)
EAPI Imlib_Image imlib_create_cropped_scaled_image(int src_x, int src_y, int src_width, int src_height, int dst_width, int dst_height)
EAPI void imlib_context_push(Imlib_Context context)
EAPI void imlib_image_query_pixel_hsva(int x, int y, float *hue, float *saturation, float *value, int *alpha)
EAPI void imlib_updates_set_coordinates(Imlib_Updates updates, int x, int y, int width, int height)
EAPI ImlibPolygon imlib_polygon_new(void)
EAPI int imlib_get_ximage_cache_count_used(void)
EAPI void imlib_context_set_cliprect(int x, int y, int w, int h)
EAPI Visual * imlib_get_best_visual(Display *display, int screen, int *depth_return)
EAPI Imlib_Operation imlib_context_get_operation(void)
EAPI void imlib_render_image_on_drawable(int x, int y)
EAPI Imlib_Updates imlib_updates_merge_for_rendering(Imlib_Updates updates, int w, int h)
EAPI void imlib_image_flip_horizontal(void)
EAPI void imlib_free_font(void)
EAPI void imlib_text_draw_with_return_metrics(int x, int y, const char *text, int *width_return, int *height_return, int *horizontal_advance_return, int *vertical_advance_return)
EAPI char * imlib_image_format(void)
EAPI Imlib_Image imlib_load_image(const char *file)
EAPI void imlib_context_set_mask_alpha_threshold(int mask_alpha_threshold)
EAPI int imlib_get_maximum_font_descent(void)
EAPI void imlib_free_pixmap_and_mask(Pixmap pixmap)
EAPI void imlib_image_set_border(Imlib_Border *border)
EAPI void imlib_context_set_color(int red, int green, int blue, int alpha)
EAPI void imlib_image_scroll_rect(int x, int y, int width, int height, int delta_x, int delta_y)
EAPI int imlib_get_error(void)
EAPI double imlib_context_get_angle(void)
EAPI Imlib_Updates imlib_update_append_rect(Imlib_Updates updates, int x, int y, int w, int h)
EAPI int imlib_get_color_usage(void)
EAPI Imlib_Image imlib_load_image_immediately(const char *file)
EAPI char imlib_image_has_alpha(void)
EAPI void imlib_context_set_mask(Pixmap mask)
EAPI void imlib_context_free(Imlib_Context context)
EAPI void imlib_image_flip_vertical(void)
EAPI void imlib_apply_color_modifier_to_rectangle(int x, int y, int width, int height)
EAPI void imlib_context_set_dither_mask(char dither_mask)
EAPI void imlib_image_draw_ellipse(int xc, int yc, int a, int b)
EAPI int imlib_get_ximage_cache_count_max(void)
EAPI Imlib_Image imlib_create_image_from_ximage(XImage *image, XImage *mask, int x, int y, int width, int height, char need_to_grab_x)
EAPI void imlib_flush_font_cache(void)
EAPI void imlib_modify_color_modifier_brightness(double brightness_value)
EAPI void imlib_save_image_with_error_return(const char *file, Imlib_Load_Error *error_return)
EAPI int imlib_get_font_cache_size(void)
EAPI void imlib_context_set_color_cmya(int cyan, int magenta, int yellow, int alpha)
EAPI Imlib_Color_Modifier imlib_context_get_color_modifier(void)
EAPI void imlib_image_clear_color(int r, int g, int b, int a)
EAPI void imlib_polygon_get_bounds(ImlibPolygon poly, int *px1, int *py1, int *px2, int *py2)
EAPI unsigned char imlib_polygon_contains_point(ImlibPolygon poly, int x, int y)
EAPI Imlib_Image imlib_create_image_using_data(int width, int height, uint32_t *data)
EAPI void imlib_free_image_and_decache(void)
EAPI uint32_t imlib_render_get_pixel_color(void)
EAPI const char * imlib_strerror(int err)
EAPI char imlib_context_get_dither(void)
EAPI void imlib_image_fill_polygon(ImlibPolygon poly)
EAPI int imlib_get_ximage_cache_size_max(void)
EAPI Imlib_Image imlib_load_image_frame_mem(const char *file, int frame, const void *data, size_t size)
EAPI int imlib_image_get_attached_value(const char *key)
EAPI int imlib_image_decache_file(const char *file)
EAPI void imlib_context_get_color_hlsa(float *hue, float *lightness, float *saturation, int *alpha)
EAPI char imlib_context_get_blend(void)
EAPI void imlib_set_cache_size(int bytes)
EAPI void imlib_get_color_modifier_tables(uint8_t *red_table, uint8_t *green_table, uint8_t *blue_table, uint8_t *alpha_table)
EAPI void imlib_context_set_color_range(Imlib_Color_Range color_range)
EAPI Imlib_Context imlib_context_get(void)
EAPI void imlib_context_set_drawable(Drawable drawable)
EAPI int imlib_context_get_mask_alpha_threshold(void)
EAPI Imlib_Image imlib_create_image_using_data_and_memory_function(int width, int height, uint32_t *data, Imlib_Image_Data_Memory_Function func)
EAPI int imlib_get_ximage_cache_size_used(void)
EAPI int imlib_text_get_index_and_location(const char *text, int x, int y, int *char_x_return, int *char_y_return, int *char_width_return, int *char_height_return)
EAPI Imlib_Image imlib_create_image_from_drawable(Pixmap mask, int x, int y, int width, int height, char need_to_grab_x)
EAPI void imlib_image_blur(int radius)
EAPI Imlib_Image imlib_load_image_mem(const char *file, const void *data, size_t size)
EAPI Imlib_Image imlib_load_image_immediately_without_cache(const char *file)
EAPI Imlib_Color_Range imlib_create_color_range(void)
EAPI Imlib_Progress_Function imlib_context_get_progress_function(void)
EAPI void imlib_apply_color_modifier(void)
EAPI uint32_t * imlib_image_get_data_for_reading_only(void)
EAPI Imlib_Updates imlib_image_draw_line(int x1, int y1, int x2, int y2, char make_updates)
EAPI void imlib_context_disconnect_display(void)
EAPI Imlib_Updates imlib_updates_append_updates(Imlib_Updates updates, Imlib_Updates appended_updates)
EAPI void imlib_remove_path_from_font_path(const char *path)
EAPI void imlib_render_image_part_on_drawable_at_size(int src_x, int src_y, int src_width, int src_height, int dst_x, int dst_y, int dst_width, int dst_height)
EAPI Imlib_Font imlib_get_prev_font_in_fallback_chain(Imlib_Font fn)
EAPI int imlib_get_text_inset(const char *text)
EAPI void imlib_context_set_progress_granularity(char progress_granularity)
EAPI Imlib_Updates imlib_updates_merge(Imlib_Updates updates, int w, int h)
EAPI Imlib_Image imlib_create_image_using_copied_data(int width, int height, uint32_t *data)
EAPI void imlib_image_draw_rectangle(int x, int y, int width, int height)
EAPI void imlib_context_set_operation(Imlib_Operation operation)
EAPI void imlib_get_text_size(const char *text, int *width_return, int *height_return)
EAPI void imlib_context_set_color_modifier(Imlib_Color_Modifier color_modifier)
EAPI void imlib_image_set_changes_on_disk(void)
EAPI void imlib_render_pixmaps_for_whole_image(Pixmap *pixmap_return, Pixmap *mask_return)
EAPI Imlib_Context imlib_context_new(void)
EAPI void imlib_context_get_color_cmya(int *cyan, int *magenta, int *yellow, int *alpha)
EAPI char imlib_context_get_anti_alias(void)
EAPI Imlib_Updates imlib_updates_clone(Imlib_Updates updates)
EAPI Imlib_Image imlib_load_image_without_cache(const char *file)
IMLIB2_DEPRECATED EAPI void imlib_context_set_TTF_encoding(Imlib_TTF_Encoding encoding)
EAPI Imlib_Color * imlib_context_get_imlib_color(void)
EAPI Imlib_Updates imlib_updates_init(void)
EAPI Imlib_Filter imlib_context_get_filter(void)
EAPI void imlib_image_get_frame_info(Imlib_Frame_Info *info)
EAPI void imlib_flush_loaders(void)
EAPI void imlib_image_fill_color_range_rectangle(int x, int y, int width, int height, double angle)
EAPI int imlib_image_get_height(void)
EAPI void imlib_image_set_has_alpha(char has_alpha)
EAPI char ** imlib_list_fonts(int *number_return)
EAPI Imlib_Image imlib_create_rotated_image(double angle)
IMLIB2_DEPRECATED EAPI void imlib_image_set_irrelevant_border(char irrelevant)
EAPI Pixmap imlib_context_get_mask(void)
EAPI Drawable imlib_context_get_drawable(void)
EAPI void imlib_context_set_angle(double angle)
EAPI Imlib_Font imlib_context_get_font(void)
EAPI void imlib_context_set_blend(char blend)
EAPI void imlib_image_filter(void)
EAPI Imlib_Color_Range imlib_context_get_color_range(void)
EAPI void imlib_context_set_dither(char dither)
EAPI void imlib_set_ximage_cache_size_max(int bytes)
EAPI void imlib_context_get_cliprect(int *x, int *y, int *w, int *h)
EAPI void imlib_image_remove_attached_data_value(const char *key)
EAPI void imlib_image_tile_horizontal(void)
EAPI void imlib_free_image(void)
EAPI void imlib_context_set_progress_function(Imlib_Progress_Function progress_function)
EAPI Imlib_Font imlib_load_font(const char *font_name)
EAPI void imlib_image_copy_alpha_rectangle_to_image(Imlib_Image image_source, int src_x, int src_y, int src_width, int src_height, int dst_x, int dst_y)
EAPI Imlib_Image imlib_create_cropped_image(int x, int y, int width, int height)
EAPI void imlib_text_get_location_at_index(const char *text, int index, int *char_x_return, int *char_y_return, int *char_width_return, int *char_height_return)
EAPI Imlib_Image imlib_create_scaled_image_from_drawable(Pixmap mask, int src_x, int src_y, int src_width, int src_height, int dst_width, int dst_height, char need_to_grab_x, char get_mask_from_shape)
EAPI void imlib_context_pop(void)
EAPI void imlib_save_image_with_errno_return(const char *file, int *error_return)
EAPI void imlib_image_fill_ellipse(int xc, int yc, int a, int b)
EAPI void imlib_context_set_visual(Visual *visual)
EAPI void imlib_render_image_on_drawable_at_angle(int src_x, int src_y, int src_width, int src_height, int dst_x, int dst_y, int angle_x, int angle_y)
EAPI void imlib_free_font_list(char **font_list, int number)
EAPI void imlib_image_get_border(Imlib_Border *border)
EAPI void imlib_image_draw_polygon(ImlibPolygon poly, unsigned char closed)
EAPI Imlib_Image imlib_create_image(int width, int height)
EAPI int imlib_get_font_descent(void)
EAPI char imlib_context_get_dither_mask(void)
EAPI Imlib_Filter imlib_create_filter(int initsize)
EAPI void imlib_context_set_display(Display *display)
EAPI void imlib_context_set_color_hlsa(float hue, float lightness, float saturation, int alpha)
EAPI Imlib_Font imlib_get_next_font_in_fallback_chain(Imlib_Font fn)
EAPI void imlib_context_set_anti_alias(char anti_alias)
EAPI void imlib_context_set_filter(Imlib_Filter filter)
EAPI void imlib_image_tile_vertical(void)
EAPI Colormap imlib_context_get_colormap(void)
EAPI int imlib_get_visual_depth(Display *display, Visual *visual)
EAPI void imlib_image_fill_hsva_color_range_rectangle(int x, int y, int width, int height, double angle)
EAPI Imlib_Updates imlib_updates_get_next(Imlib_Updates updates)
EAPI Imlib_Image imlib_load_image_with_errno_return(const char *file, int *error_return)
EAPI Imlib_Image imlib_context_get_image(void)
EAPI char imlib_copy_drawable_to_image(Pixmap mask, int src_x, int src_y, int src_width, int src_height, int dst_x, int dst_y, char need_to_grab_x)
EAPI uint32_t * imlib_image_get_data(void)
EAPI void imlib_image_set_irrelevant_format(char irrelevant)
EAPI void imlib_context_set_colormap(Colormap colormap)
EAPI void imlib_image_flip_diagonal(void)
EAPI void imlib_set_font_cache_size(int bytes)
EAPI Imlib_Image imlib_clone_image(void)
EAPI void imlib_add_path_to_font_path(const char *path)
EAPI void imlib_image_orientate(int orientation)
EAPI void imlib_updates_free(Imlib_Updates updates)
EAPI void imlib_set_color_usage(int max)
EAPI void imlib_image_copy_rect(int x, int y, int width, int height, int new_x, int new_y)
EAPI void imlib_reset_color_modifier(void)
EAPI void imlib_render_image_on_drawable_at_size(int x, int y, int width, int height)
EAPI void imlib_polygon_add_point(ImlibPolygon poly, int x, int y)
EAPI Imlib_Image imlib_load_image_fd(int fd, const char *file)
EAPI void imlib_text_draw(int x, int y, const char *text)
EAPI Imlib_Updates imlib_image_draw_pixel(int x, int y, char make_updates)
EAPI void imlib_rotate_image_from_buffer(double angle, Imlib_Image src_image)
EAPI int imlib_get_font_ascent(void)
EAPI int imlib_insert_font_into_fallback_chain(Imlib_Font font, Imlib_Font fallback_font)
EAPI void imlib_context_set_direction(Imlib_Text_Direction direction)
EAPI void imlib_remove_font_from_fallback_chain(Imlib_Font fallback_font)
IMLIB2_DEPRECATED EAPI void imlib_image_set_irrelevant_alpha(char irrelevant)
EAPI void imlib_free_color_modifier(void)
EAPI char ** imlib_list_font_path(int *number_return)
EAPI void imlib_context_get_color_hsva(float *hue, float *saturation, float *value, int *alpha)
EAPI Display * imlib_context_get_display(void)
EAPI void imlib_image_clear(void)
EAPI const char * imlib_image_get_filename(void)
EAPI char imlib_context_get_progress_granularity(void)
EAPI Imlib_Image imlib_load_image_frame(const char *file, int frame)
EAPI int imlib_get_cache_used(void)
EAPI void imlib_get_text_advance(const char *text, int *horizontal_advance_return, int *vertical_advance_return)
EAPI void imlib_free_filter(void)
EAPI int imlib_version(void)
EAPI void imlib_context_set_image_data_memory_function(Imlib_Image_Data_Memory_Function memory_function)
EAPI void imlib_save_image_fd(int fd, const char *file)
EAPI Imlib_Text_Direction imlib_context_get_direction(void)
EAPI void imlib_context_set_color_hsva(float hue, float saturation, float value, int alpha)
EAPI Imlib_Image_Data_Memory_Function imlib_context_get_image_data_memory_function(void)
EAPI void imlib_modify_color_modifier_gamma(double gamma_value)
EAPI void imlib_image_fill_rectangle(int x, int y, int width, int height)
EAPI void imlib_polygon_free(ImlibPolygon poly)
EAPI void imlib_context_set_font(Imlib_Font font)
EAPI void imlib_set_ximage_cache_count_max(int count)
EAPI void imlib_blend_image_onto_image_at_angle(Imlib_Image src_image, char merge_alpha, int src_x, int src_y, int src_width, int src_height, int dst_x, int dst_y, int angle_x, int angle_y)
EAPI int imlib_get_maximum_font_ascent(void)
EAPI void imlib_image_attach_data_value(const char *key, void *data, int value, Imlib_Data_Destructor_Function destructor_function)
EAPI void imlib_render_pixmaps_for_whole_image_at_size(Pixmap *pixmap_return, Pixmap *mask_return, int width, int height)
EAPI int imlib_get_cache_size(void)
EAPI void imlib_context_set_image(Imlib_Image image)
EAPI void imlib_modify_color_modifier_contrast(double contrast_value)
EAPI void imlib_set_color_modifier_tables(uint8_t *red_table, uint8_t *green_table, uint8_t *blue_table, uint8_t *alpha_table)
EAPI void imlib_save_image(const char *file)
EAPI void imlib_image_set_format(const char *format)
EAPI void imlib_free_color_range(void)
EAPI Visual * imlib_context_get_visual(void)
EAPI void imlib_render_image_on_drawable_skewed(int src_x, int src_y, int src_width, int src_height, int dst_x, int dst_y, int h_angle_x, int h_angle_y, int v_angle_x, int v_angle_y)
EAPI void imlib_image_sharpen(int radius)
EAPI void imlib_context_get_color(int *red, int *green, int *blue, int *alpha)
EAPI void imlib_blend_image_onto_image(Imlib_Image src_image, char merge_alpha, int src_x, int src_y, int src_width, int src_height, int dst_x, int dst_y, int dst_width, int dst_height)
EAPI Imlib_Image imlib_load_image_with_error_return(const char *file, Imlib_Load_Error *error_return)
EAPI void imlib_blend_image_onto_image_skewed(Imlib_Image src_image, char merge_alpha, int src_x, int src_y, int src_width, int src_height, int dst_x, int dst_y, int h_angle_x, int h_angle_y, int v_angle_x, int v_angle_y)
EAPI int imlib_image_get_width(void)
EAPI void * imlib_image_get_attached_data(const char *key)
EAPI void imlib_image_query_pixel_cmya(int x, int y, int *cyan, int *magenta, int *yellow, int *alpha)
EAPI void imlib_image_remove_and_free_attached_data_value(const char *key)