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