1 /* Invisible Vector Library
2 * coded by Ketmar // Invisible Vector <ketmar@ketmar.no-ip.org>
3 * Understanding is not required. Only obedience.
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 3 of the License ONLY.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 // docs: https://docs.enlightenment.org/api/imlib2/html/imlib2_8c.html
18 // sample: https://docs.enlightenment.org/api/imlib2/html/
19 module iv
.imlib2
/*is aliced*/;
20 pragma(lib
, "Imlib2");
24 extern(C
) nothrow @nogc:
26 # ifndef X_DISPLAY_MISSING
27 # include <X11/Xlib.h>
33 alias DATA16
= ushort;
36 /* opaque data types */
37 //typedef Imlib_Context = void*;
38 alias Imlib_Context
= void*;
39 //typedef Imlib_Image = void*;
40 alias Imlib_Image
= void*;
41 //typedef Imlib_Color_Modifier = void*;
42 alias Imlib_Color_Modifier
= void*;
43 //typedef Imlib_Updates = void*;
44 alias Imlib_Updates
= void*;
45 //typedef Imlib_Font = void*;
46 alias Imlib_Font
= void*;
47 //typedef Imlib_Color_Range = void*;
48 alias Imlib_Color_Range
= void*;
49 //typedef Imlib_Filter = void*;
50 alias Imlib_Filter
= void*;
51 alias Imlib_Border
= _imlib_border
;
52 alias Imlib_Color
= _imlib_color
;
53 //typedef ImlibPolygon = void*;
54 alias ImlibPolygon
= void*;
56 /* blending operations */
57 enum /*_imlib_operation*/
65 enum /*_imlib_text_direction*/
67 IMLIB_TEXT_TO_RIGHT
= 0,
68 IMLIB_TEXT_TO_LEFT
= 1,
69 IMLIB_TEXT_TO_DOWN
= 2,
71 IMLIB_TEXT_TO_ANGLE
= 4
74 enum /*_imlib_load_error*/
76 IMLIB_LOAD_ERROR_NONE
,
77 IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST
,
78 IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY
,
79 IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_READ
,
80 IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT
,
81 IMLIB_LOAD_ERROR_PATH_TOO_LONG
,
82 IMLIB_LOAD_ERROR_PATH_COMPONENT_NON_EXISTANT
,
83 IMLIB_LOAD_ERROR_PATH_COMPONENT_NOT_DIRECTORY
,
84 IMLIB_LOAD_ERROR_PATH_POINTS_OUTSIDE_ADDRESS_SPACE
,
85 IMLIB_LOAD_ERROR_TOO_MANY_SYMBOLIC_LINKS
,
86 IMLIB_LOAD_ERROR_OUT_OF_MEMORY
,
87 IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS
,
88 IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE
,
89 IMLIB_LOAD_ERROR_OUT_OF_DISK_SPACE
,
90 IMLIB_LOAD_ERROR_UNKNOWN
93 /* Encodings known to Imlib2 (so far) */
94 enum /*_imlib_TTF_encoding*/
96 IMLIB_TTF_ENCODING_ISO_8859_1
,
97 IMLIB_TTF_ENCODING_ISO_8859_2
,
98 IMLIB_TTF_ENCODING_ISO_8859_3
,
99 IMLIB_TTF_ENCODING_ISO_8859_4
,
100 IMLIB_TTF_ENCODING_ISO_8859_5
104 typedef enum _imlib_operation Imlib_Operation;
105 typedef enum _imlib_load_error Imlib_Load_Error;
106 typedef enum _imlib_load_error ImlibLoadError;
107 typedef enum _imlib_text_direction Imlib_Text_Direction;
108 typedef enum _imlib_TTF_encoding Imlib_TTF_Encoding;
110 alias Imlib_Operation
= int;
111 alias Imlib_Load_Error
= int;
112 alias ImlibLoadError
= int;
113 alias Imlib_Text_Direction
= int;
114 alias Imlib_TTF_Encoding
= int;
118 int left
, right
, top
, bottom
;
123 int alpha
, red
, green
, blue
;
126 /* Progressive loading callbacks */
127 /*typedef*/alias Imlib_Progress_Function
= int function (
128 Imlib_Image im
, char percent
,
129 int update_x
, int update_y
,
130 int update_w
, int update_h
);
131 //typedef Imlib_Data_Destructor_Function = void function (Imlib_Image im, void *data);
132 alias Imlib_Data_Destructor_Function
= void function (Imlib_Image im
, void *data
);
134 /*EAPI*/ Imlib_Context
imlib_context_new ();
135 /*EAPI*/ void imlib_context_free(Imlib_Context context
);
137 /*EAPI*/ void imlib_context_push(Imlib_Context context
);
138 /*EAPI*/ void imlib_context_pop();
139 /*EAPI*/ Imlib_Context
imlib_context_get();
141 /* context setting */
142 //# ifndef X_DISPLAY_MISSING
143 /*EAPI*/ void imlib_context_set_display(Display
* display
);
144 /*EAPI*/ void imlib_context_disconnect_display();
145 /*EAPI*/ void imlib_context_set_visual(Visual
* visual
);
146 /*EAPI*/ void imlib_context_set_colormap(Colormap colormap
);
147 /*EAPI*/ void imlib_context_set_drawable(Drawable drawable
);
148 /*EAPI*/ void imlib_context_set_mask(Pixmap mask
);
150 /*EAPI*/ void imlib_context_set_dither_mask(char dither_mask
);
151 /*EAPI*/ void imlib_context_set_mask_alpha_threshold(int mask_alpha_threshold
);
152 /*EAPI*/ void imlib_context_set_anti_alias(char anti_alias
);
153 /*EAPI*/ void imlib_context_set_dither(char dither
);
154 /*EAPI*/ void imlib_context_set_blend(char blend
);
155 /*EAPI*/ void imlib_context_set_color_modifier(Imlib_Color_Modifier color_modifier
);
156 /*EAPI*/ void imlib_context_set_operation(Imlib_Operation operation
);
157 /*EAPI*/ void imlib_context_set_font(Imlib_Font font
);
158 /*EAPI*/ void imlib_context_set_direction(Imlib_Text_Direction direction
);
159 /*EAPI*/ void imlib_context_set_angle(double angle
);
160 /*EAPI*/ void imlib_context_set_color(int red
, int green
, int blue
, int alpha
);
161 /*EAPI*/ void imlib_context_set_color_hsva(float hue
, float saturation
, float value
, int alpha
);
162 /*EAPI*/ void imlib_context_set_color_hlsa(float hue
, float lightness
, float saturation
, int alpha
);
163 /*EAPI*/ void imlib_context_set_color_cmya(int cyan
, int magenta
, int yellow
, int alpha
);
164 /*EAPI*/ void imlib_context_set_color_range(Imlib_Color_Range color_range
);
165 /*EAPI*/ void imlib_context_set_progress_function(Imlib_Progress_Function
167 /*EAPI*/ void imlib_context_set_progress_granularity(char progress_granularity
);
168 /*EAPI*/ void imlib_context_set_image(Imlib_Image image
);
169 /*EAPI*/ void imlib_context_set_cliprect(int x
, int y
, int w
, int h
);
170 /*EAPI*/ void imlib_context_set_TTF_encoding(Imlib_TTF_Encoding encoding
);
172 /* context getting */
173 //# ifndef X_DISPLAY_MISSING
174 /*EAPI*/ Display
*imlib_context_get_display();
175 /*EAPI*/ Visual
*imlib_context_get_visual();
176 /*EAPI*/ Colormap
imlib_context_get_colormap();
177 /*EAPI*/ Drawable
imlib_context_get_drawable();
178 /*EAPI*/ Pixmap
imlib_context_get_mask();
180 /*EAPI*/ char imlib_context_get_dither_mask();
181 /*EAPI*/ char imlib_context_get_anti_alias();
182 /*EAPI*/ int imlib_context_get_mask_alpha_threshold();
183 /*EAPI*/ char imlib_context_get_dither();
184 /*EAPI*/ char imlib_context_get_blend();
185 /*EAPI*/ Imlib_Color_Modifier
imlib_context_get_color_modifier();
186 /*EAPI*/ Imlib_Operation
imlib_context_get_operation();
187 /*EAPI*/ Imlib_Font
imlib_context_get_font();
188 /*EAPI*/ double imlib_context_get_angle();
189 /*EAPI*/ Imlib_Text_Direction
imlib_context_get_direction();
190 /*EAPI*/ void imlib_context_get_color(int *red
, int *green
, int *blue
, int *alpha
);
191 /*EAPI*/ void imlib_context_get_color_hsva(float *hue
, float *saturation
, float *value
, int *alpha
);
192 /*EAPI*/ void imlib_context_get_color_hlsa(float *hue
, float *lightness
, float *saturation
, int *alpha
);
193 /*EAPI*/ void imlib_context_get_color_cmya(int *cyan
, int *magenta
, int *yellow
, int *alpha
);
194 /*EAPI*/ Imlib_Color
*imlib_context_get_imlib_color();
195 /*EAPI*/ Imlib_Color_Range
imlib_context_get_color_range();
196 /*EAPI*/ Imlib_Progress_Function
imlib_context_get_progress_function();
197 /*EAPI*/ char imlib_context_get_progress_granularity();
198 /*EAPI*/ Imlib_Image
imlib_context_get_image();
199 /*EAPI*/ void imlib_context_get_cliprect(int *x
, int *y
, int *w
, int *h
);
200 /*EAPI*/ Imlib_TTF_Encoding
imlib_context_get_TTF_encoding();
202 /*EAPI*/ int imlib_get_cache_size();
203 /*EAPI*/ void imlib_set_cache_size(int bytes
);
204 /*EAPI*/ int imlib_get_color_usage();
205 /*EAPI*/ void imlib_set_color_usage(int max
);
206 /*EAPI*/ void imlib_flush_loaders();
207 //# ifndef X_DISPLAY_MISSING
208 /*EAPI*/ int imlib_get_visual_depth(Display
* display
, Visual
* visual
);
209 /*EAPI*/ Visual
*imlib_get_best_visual(Display
* display
, int screen
,
213 /*EAPI*/ Imlib_Image
imlib_load_image(const(char)* file
);
214 /*EAPI*/ Imlib_Image
imlib_load_image_immediately(const(char)* file
);
215 /*EAPI*/ Imlib_Image
imlib_load_image_without_cache(const(char)* file
);
216 /*EAPI*/ Imlib_Image
imlib_load_image_immediately_without_cache(const(char)* file
);
217 /*EAPI*/ Imlib_Image
imlib_load_image_with_error_return(const(char)* file
,
220 /*EAPI*/ void imlib_free_image();
221 /*EAPI*/ void imlib_free_image_and_decache();
223 /* query/modify image parameters */
224 /*EAPI*/ int imlib_image_get_width();
225 /*EAPI*/ int imlib_image_get_height();
226 /*EAPI*/ const(char)* imlib_image_get_filename();
227 /*EAPI*/ DATA32
*imlib_image_get_data(); // b, g, r, a
228 /*EAPI*/ const(DATA32
) *imlib_image_get_data_for_reading_only();
229 /*EAPI*/ void imlib_image_put_back_data(DATA32
* data
);
230 /*EAPI*/ char imlib_image_has_alpha();
231 /*EAPI*/ void imlib_image_set_changes_on_disk();
232 /*EAPI*/ void imlib_image_get_border(Imlib_Border
* border
);
233 /*EAPI*/ void imlib_image_set_border(Imlib_Border
* border
);
234 /*EAPI*/ void imlib_image_set_format(const(char)* format
);
235 /*EAPI*/ void imlib_image_set_irrelevant_format(char irrelevant
);
236 /*EAPI*/ void imlib_image_set_irrelevant_border(char irrelevant
);
237 /*EAPI*/ void imlib_image_set_irrelevant_alpha(char irrelevant
);
238 /*EAPI*/ char *imlib_image_format();
239 /*EAPI*/ void imlib_image_set_has_alpha(char has_alpha
);
240 /*EAPI*/ void imlib_image_query_pixel(int x
, int y
, Imlib_Color
* color_return
);
241 /*EAPI*/ void imlib_image_query_pixel_hsva(int x
, int y
, float *hue
, float *saturation
, float *value
, int *alpha
);
242 /*EAPI*/ void imlib_image_query_pixel_hlsa(int x
, int y
, float *hue
, float *lightness
, float *saturation
, int *alpha
);
243 /*EAPI*/ void imlib_image_query_pixel_cmya(int x
, int y
, int *cyan
, int *magenta
, int *yellow
, int *alpha
);
245 /* rendering functions */
246 //# ifndef X_DISPLAY_MISSING
247 /*EAPI*/ void imlib_render_pixmaps_for_whole_image(Pixmap
* pixmap_return
,
248 Pixmap
* mask_return
);
249 /*EAPI*/ void imlib_render_pixmaps_for_whole_image_at_size(Pixmap
* pixmap_return
,
250 Pixmap
* mask_return
,
251 int width
, int height
);
252 /*EAPI*/ void imlib_free_pixmap_and_mask(Pixmap pixmap
);
253 /*EAPI*/ void imlib_render_image_on_drawable(int x
, int y
);
254 /*EAPI*/ void imlib_render_image_on_drawable_at_size(int x
, int y
, int width
,
256 /*EAPI*/ void imlib_render_image_part_on_drawable_at_size(int source_x
,
259 int source_height
, int x
,
262 /*EAPI*/ DATA32
imlib_render_get_pixel_color();
264 /*EAPI*/ void imlib_blend_image_onto_image(Imlib_Image source_image
,
265 char merge_alpha
, int source_x
,
266 int source_y
, int source_width
,
267 int source_height
, int destination_x
,
268 int destination_y
, int destination_width
,
269 int destination_height
);
271 /* creation functions */
272 /*EAPI*/ Imlib_Image
imlib_create_image(int width
, int height
);
273 /*EAPI*/ Imlib_Image
imlib_create_image_using_data(int width
, int height
,
275 /*EAPI*/ Imlib_Image
imlib_create_image_using_copied_data(int width
, int height
,
277 //# ifndef X_DISPLAY_MISSING
278 /*EAPI*/ Imlib_Image
imlib_create_image_from_drawable(Pixmap mask
, int x
, int y
,
279 int width
, int height
,
280 char need_to_grab_x
);
281 /*EAPI*/ Imlib_Image
imlib_create_image_from_ximage(XImage
*image
, XImage
*mask
, int x
, int y
,
282 int width
, int height
,
283 char need_to_grab_x
);
284 /*EAPI*/ Imlib_Image
imlib_create_scaled_image_from_drawable(Pixmap mask
,
289 int destination_width
,
290 int destination_height
,
293 get_mask_from_shape
);
294 /*EAPI*/ char imlib_copy_drawable_to_image(Pixmap mask
, int x
, int y
, int width
,
295 int height
, int destination_x
,
296 int destination_y
, char need_to_grab_x
);
298 /*EAPI*/ Imlib_Image
imlib_clone_image();
299 /*EAPI*/ Imlib_Image
imlib_create_cropped_image(int x
, int y
, int width
,
301 /*EAPI*/ Imlib_Image
imlib_create_cropped_scaled_image(int source_x
, int source_y
,
304 int destination_width
,
305 int destination_height
);
307 /* imlib updates. lists of rectangles for storing required update draws */
308 /*EAPI*/ Imlib_Updates
imlib_updates_clone(Imlib_Updates updates
);
309 /*EAPI*/ Imlib_Updates
imlib_update_append_rect(Imlib_Updates updates
, int x
, int y
,
311 /*EAPI*/ Imlib_Updates
imlib_updates_merge(Imlib_Updates updates
, int w
, int h
);
312 /*EAPI*/ Imlib_Updates
imlib_updates_merge_for_rendering(Imlib_Updates updates
,
314 /*EAPI*/ void imlib_updates_free(Imlib_Updates updates
);
315 /*EAPI*/ Imlib_Updates
imlib_updates_get_next(Imlib_Updates updates
);
316 /*EAPI*/ void imlib_updates_get_coordinates(Imlib_Updates updates
, int *x_return
,
317 int *y_return
, int *width_return
,
319 /*EAPI*/ void imlib_updates_set_coordinates(Imlib_Updates updates
, int x
, int y
,
320 int width
, int height
);
321 /*EAPI*/ void imlib_render_image_updates_on_drawable(Imlib_Updates updates
, int x
,
323 /*EAPI*/ Imlib_Updates
imlib_updates_init();
324 /*EAPI*/ Imlib_Updates
imlib_updates_append_updates(Imlib_Updates updates
,
325 Imlib_Updates appended_updates
);
327 /* image modification */
328 /*EAPI*/ void imlib_image_flip_horizontal();
329 /*EAPI*/ void imlib_image_flip_vertical();
330 /*EAPI*/ void imlib_image_flip_diagonal();
331 /*EAPI*/ void imlib_image_orientate(int orientation
);
332 /*EAPI*/ void imlib_image_blur(int radius
);
333 /*EAPI*/ void imlib_image_sharpen(int radius
);
334 /*EAPI*/ void imlib_image_tile_horizontal();
335 /*EAPI*/ void imlib_image_tile_vertical();
336 /*EAPI*/ void imlib_image_tile();
339 /*EAPI*/ Imlib_Font
imlib_load_font(const(char)* font_name
);
340 /*EAPI*/ void imlib_free_font();
341 /* NB! The four functions below are deprecated. */
342 /*EAPI*/ int imlib_insert_font_into_fallback_chain(Imlib_Font font
, Imlib_Font fallback_font
);
343 /*EAPI*/ void imlib_remove_font_from_fallback_chain(Imlib_Font fallback_font
);
344 /*EAPI*/ Imlib_Font
imlib_get_prev_font_in_fallback_chain(Imlib_Font fn
);
345 /*EAPI*/ Imlib_Font
imlib_get_next_font_in_fallback_chain(Imlib_Font fn
);
346 /* NB! The four functions above are deprecated. */
347 /*EAPI*/ void imlib_text_draw(int x
, int y
, const(char)* text
);
348 /*EAPI*/ void imlib_text_draw_with_return_metrics(int x
, int y
, const(char)* text
,
351 int *horizontal_advance_return
,
352 int *vertical_advance_return
);
353 /*EAPI*/ void imlib_get_text_size(const(char)* text
, int *width_return
,
355 /*EAPI*/ void imlib_get_text_advance(const(char)* text
,
356 int *horizontal_advance_return
,
357 int *vertical_advance_return
);
358 /*EAPI*/ int imlib_get_text_inset(const(char)* text
);
359 /*EAPI*/ void imlib_add_path_to_font_path(const(char)* path
);
360 /*EAPI*/ void imlib_remove_path_from_font_path(const(char)* path
);
361 /*EAPI*/ char **imlib_list_font_path(int *number_return
);
362 /*EAPI*/ int imlib_text_get_index_and_location(const(char)* text
, int x
, int y
,
365 int *char_width_return
,
366 int *char_height_return
);
367 /*EAPI*/ void imlib_text_get_location_at_index(const(char)* text
, int index
,
370 int *char_width_return
,
371 int *char_height_return
);
372 /*EAPI*/ char **imlib_list_fonts(int *number_return
);
373 /*EAPI*/ void imlib_free_font_list(char **font_list
, int number
);
374 /*EAPI*/ int imlib_get_font_cache_size();
375 /*EAPI*/ void imlib_set_font_cache_size(int bytes
);
376 /*EAPI*/ void imlib_flush_font_cache();
377 /*EAPI*/ int imlib_get_font_ascent();
378 /*EAPI*/ int imlib_get_font_descent();
379 /*EAPI*/ int imlib_get_maximum_font_ascent();
380 /*EAPI*/ int imlib_get_maximum_font_descent();
382 /* color modifiers */
383 /*EAPI*/ Imlib_Color_Modifier
imlib_create_color_modifier();
384 /*EAPI*/ void imlib_free_color_modifier();
385 /*EAPI*/ void imlib_modify_color_modifier_gamma(double gamma_value
);
386 /*EAPI*/ void imlib_modify_color_modifier_brightness(double brightness_value
);
387 /*EAPI*/ void imlib_modify_color_modifier_contrast(double contrast_value
);
388 /*EAPI*/ void imlib_set_color_modifier_tables(DATA8
* red_table
,
391 DATA8
* alpha_table
);
392 /*EAPI*/ void imlib_get_color_modifier_tables(DATA8
* red_table
,
395 DATA8
* alpha_table
);
396 /*EAPI*/ void imlib_reset_color_modifier();
397 /*EAPI*/ void imlib_apply_color_modifier();
398 /*EAPI*/ void imlib_apply_color_modifier_to_rectangle(int x
, int y
, int width
,
401 /* drawing on images */
402 /*EAPI*/ Imlib_Updates
imlib_image_draw_pixel(int x
, int y
, char make_updates
);
403 /*EAPI*/ Imlib_Updates
imlib_image_draw_line(int x1
, int y1
, int x2
, int y2
,
405 /*EAPI*/ void imlib_image_draw_rectangle(int x
, int y
, int width
, int height
);
406 /*EAPI*/ void imlib_image_fill_rectangle(int x
, int y
, int width
, int height
);
407 /*EAPI*/ void imlib_image_copy_alpha_to_image(Imlib_Image image_source
, int x
,
409 /*EAPI*/ void imlib_image_copy_alpha_rectangle_to_image(Imlib_Image image_source
,
410 int x
, int y
, int width
,
414 /*EAPI*/ void imlib_image_scroll_rect(int x
, int y
, int width
, int height
,
415 int delta_x
, int delta_y
);
416 /*EAPI*/ void imlib_image_copy_rect(int x
, int y
, int width
, int height
, int new_x
,
420 /*EAPI*/ ImlibPolygon
imlib_polygon_new();
421 /*EAPI*/ void imlib_polygon_free(ImlibPolygon poly
);
422 /*EAPI*/ void imlib_polygon_add_point(ImlibPolygon poly
, int x
, int y
);
423 /*EAPI*/ void imlib_image_draw_polygon(ImlibPolygon poly
, ubyte closed
);
424 /*EAPI*/ void imlib_image_fill_polygon(ImlibPolygon poly
);
425 /*EAPI*/ void imlib_polygon_get_bounds(ImlibPolygon poly
, int *px1
, int *py1
,
427 /*EAPI*/ ubyte imlib_polygon_contains_point(ImlibPolygon poly
, int x
, int y
);
430 /*EAPI*/ void imlib_image_draw_ellipse(int xc
, int yc
, int a
, int b
);
431 /*EAPI*/ void imlib_image_fill_ellipse(int xc
, int yc
, int a
, int b
);
434 /*EAPI*/ Imlib_Color_Range
imlib_create_color_range();
435 /*EAPI*/ void imlib_free_color_range();
436 /*EAPI*/ void imlib_add_color_to_color_range(int distance_away
);
437 /*EAPI*/ void imlib_image_fill_color_range_rectangle(int x
, int y
, int width
,
438 int height
, double angle
);
439 /*EAPI*/ void imlib_image_fill_hsva_color_range_rectangle(int x
, int y
, int width
,
440 int height
, double angle
);
443 /*EAPI*/ void imlib_image_attach_data_value(const(char)* key
, void *data
, int value
,
444 Imlib_Data_Destructor_Function
445 destructor_function
);
446 /*EAPI*/ void *imlib_image_get_attached_data(const(char)* key
);
447 /*EAPI*/ int imlib_image_get_attached_value(const(char)* key
);
448 /*EAPI*/ void imlib_image_remove_attached_data_value(const(char)* key
);
449 /*EAPI*/ void imlib_image_remove_and_free_attached_data_value(const(char)* key
);
452 /*EAPI*/ void imlib_save_image(const(char)* filename
);
453 /*EAPI*/ void imlib_save_image_with_error_return(const(char)* filename
,
454 Imlib_Load_Error
* error_return
);
457 /* need to add arbitrary rotation routines */
459 /* rotation/skewing */
460 /*EAPI*/ Imlib_Image
imlib_create_rotated_image(double angle
);
462 /* rotation from buffer to context (without copying)*/
463 /*EAPI*/ void imlib_rotate_image_from_buffer(double angle
,
464 Imlib_Image source_image
);
466 /*EAPI*/ void imlib_blend_image_onto_image_at_angle(Imlib_Image source_image
,
467 char merge_alpha
, int source_x
,
468 int source_y
, int source_width
,
471 int destination_y
, int angle_x
,
473 /*EAPI*/ void imlib_blend_image_onto_image_skewed(Imlib_Image source_image
,
474 char merge_alpha
, int source_x
,
475 int source_y
, int source_width
,
478 int destination_y
, int h_angle_x
,
479 int h_angle_y
, int v_angle_x
,
481 //# ifndef X_DISPLAY_MISSING
482 /*EAPI*/ void imlib_render_image_on_drawable_skewed(int source_x
, int source_y
,
487 int h_angle_x
, int h_angle_y
,
488 int v_angle_x
, int v_angle_y
);
489 /*EAPI*/ void imlib_render_image_on_drawable_at_angle(int source_x
, int source_y
,
494 int angle_x
, int angle_y
);
498 /*EAPI*/ void imlib_image_filter();
499 /*EAPI*/ Imlib_Filter
imlib_create_filter(int initsize
);
500 /*EAPI*/ void imlib_context_set_filter(Imlib_Filter filter
);
501 /*EAPI*/ Imlib_Filter
imlib_context_get_filter();
502 /*EAPI*/ void imlib_free_filter();
503 /*EAPI*/ void imlib_filter_set(int xoff
, int yoff
, int a
, int r
, int g
, int b
);
504 /*EAPI*/ void imlib_filter_set_alpha(int xoff
, int yoff
, int a
, int r
, int g
,
506 /*EAPI*/ void imlib_filter_set_red(int xoff
, int yoff
, int a
, int r
, int g
, int b
);
507 /*EAPI*/ void imlib_filter_set_green(int xoff
, int yoff
, int a
, int r
, int g
,
509 /*EAPI*/ void imlib_filter_set_blue(int xoff
, int yoff
, int a
, int r
, int g
, int b
);
510 /*EAPI*/ void imlib_filter_constants(int a
, int r
, int g
, int b
);
511 /*EAPI*/ void imlib_filter_divisors(int a
, int r
, int g
, int b
);
513 /*EAPI*/ void imlib_apply_filter(char *script
, ...);
515 /*EAPI*/ void imlib_image_clear();
516 /*EAPI*/ void imlib_image_clear_color(int r
, int g
, int b
, int a
);