1 #ifndef __IMLIB_API_H 2 #define __IMLIB_API_H 1 3 4 #ifdef EAPI 5 #undef EAPI 6 #endif 7 #ifdef WIN32 8 #ifdef BUILDING_DLL 9 #define EAPI __declspec(dllexport) 10 #else 11 #define EAPI __declspec(dllimport) 12 #endif 13 #else 14 #ifdef __GNUC__ 15 #if __GNUC__ >= 4 16 #define EAPI __attribute__ ((visibility("default"))) 17 #else 18 #define EAPI 19 #endif 20 #else 21 #define EAPI 22 #endif 23 #endif 24 25 #ifndef X_DISPLAY_MISSING 26 #include <X11/Xlib.h> 27 #endif 28 29 /* Data types to use */ 30 #ifndef DATA64 31 #define DATA64 unsigned long long 32 #define DATA32 unsigned int 33 #define DATA16 unsigned short 34 #define DATA8 unsigned char 35 #endif 36 37 /* opaque data types */ 38 typedef void *Imlib_Context; 39 typedef void *Imlib_Image; 40 typedef void *Imlib_Color_Modifier; 41 typedef void *Imlib_Updates; 42 typedef void *Imlib_Font; 43 typedef void *Imlib_Color_Range; 44 typedef void *Imlib_Filter; 45 typedef struct _imlib_border Imlib_Border; 46 typedef struct _imlib_color Imlib_Color; 47 typedef void *ImlibPolygon; 48 49 /* blending operations */ 50 enum _imlib_operation { 51 IMLIB_OP_COPY, 52 IMLIB_OP_ADD, 53 IMLIB_OP_SUBTRACT, 54 IMLIB_OP_RESHADE 55 }; 56 57 enum _imlib_text_direction { 58 IMLIB_TEXT_TO_RIGHT = 0, 59 IMLIB_TEXT_TO_LEFT = 1, 60 IMLIB_TEXT_TO_DOWN = 2, 61 IMLIB_TEXT_TO_UP = 3, 62 IMLIB_TEXT_TO_ANGLE = 4 63 }; 64 65 enum _imlib_load_error { 66 IMLIB_LOAD_ERROR_NONE, 67 IMLIB_LOAD_ERROR_FILE_DOES_NOT_EXIST, 68 IMLIB_LOAD_ERROR_FILE_IS_DIRECTORY, 69 IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_READ, 70 IMLIB_LOAD_ERROR_NO_LOADER_FOR_FILE_FORMAT, 71 IMLIB_LOAD_ERROR_PATH_TOO_LONG, 72 IMLIB_LOAD_ERROR_PATH_COMPONENT_NON_EXISTANT, 73 IMLIB_LOAD_ERROR_PATH_COMPONENT_NOT_DIRECTORY, 74 IMLIB_LOAD_ERROR_PATH_POINTS_OUTSIDE_ADDRESS_SPACE, 75 IMLIB_LOAD_ERROR_TOO_MANY_SYMBOLIC_LINKS, 76 IMLIB_LOAD_ERROR_OUT_OF_MEMORY, 77 IMLIB_LOAD_ERROR_OUT_OF_FILE_DESCRIPTORS, 78 IMLIB_LOAD_ERROR_PERMISSION_DENIED_TO_WRITE, 79 IMLIB_LOAD_ERROR_OUT_OF_DISK_SPACE, 80 IMLIB_LOAD_ERROR_UNKNOWN 81 }; 82 83 /* Encodings known to Imlib2 (so far) */ 84 enum _imlib_TTF_encoding { 85 IMLIB_TTF_ENCODING_ISO_8859_1, 86 IMLIB_TTF_ENCODING_ISO_8859_2, 87 IMLIB_TTF_ENCODING_ISO_8859_3, 88 IMLIB_TTF_ENCODING_ISO_8859_4, 89 IMLIB_TTF_ENCODING_ISO_8859_5 90 }; 91 92 typedef enum _imlib_operation Imlib_Operation; 93 typedef enum _imlib_load_error Imlib_Load_Error; 94 typedef enum _imlib_text_direction Imlib_Text_Direction; 95 typedef enum _imlib_TTF_encoding Imlib_TTF_Encoding; 96 97 struct _imlib_border { 98 int left, right, top, bottom; 99 }; 100 101 struct _imlib_color { 102 int alpha, red, green, blue; 103 }; 104 105 /* Progressive loading callbacks */ 106 typedef int (*Imlib_Progress_Function)(Imlib_Image im, char percent, 107 int update_x, int update_y, 108 int update_w, int update_h); 109 typedef void (*Imlib_Data_Destructor_Function)(Imlib_Image im, 110 void *data); 111 typedef void *(*Imlib_Image_Data_Memory_Function)(void *, size_t size); 112 113 /* *INDENT-OFF* */ 114 #ifdef __cplusplus 115 extern "C" { 116 #endif 117 /* *INDENT-ON* */ 118 119 /* context handling */ 120 EAPI Imlib_Context imlib_context_new(void); 121 EAPI void imlib_context_free(Imlib_Context context); 122 123 EAPI void imlib_context_push(Imlib_Context context); 124 EAPI void imlib_context_pop(void); 125 EAPI Imlib_Context imlib_context_get(void); 126 127 /* context setting */ 128 #ifndef X_DISPLAY_MISSING 129 EAPI void imlib_context_set_display(Display * display); 130 EAPI void imlib_context_disconnect_display(void); 131 EAPI void imlib_context_set_visual(Visual * visual); 132 EAPI void imlib_context_set_colormap(Colormap colormap); 133 EAPI void imlib_context_set_drawable(Drawable drawable); 134 EAPI void imlib_context_set_mask(Pixmap mask); 135 #endif 136 EAPI void imlib_context_set_dither_mask(char dither_mask); 137 EAPI void imlib_context_set_mask_alpha_threshold(int 138 mask_alpha_threshold); 139 EAPI void imlib_context_set_anti_alias(char anti_alias); 140 EAPI void imlib_context_set_dither(char dither); 141 EAPI void imlib_context_set_blend(char blend); 142 EAPI void imlib_context_set_color_modifier(Imlib_Color_Modifier 143 color_modifier); 144 EAPI void imlib_context_set_operation(Imlib_Operation operation); 145 EAPI void imlib_context_set_font(Imlib_Font font); 146 EAPI void imlib_context_set_direction(Imlib_Text_Direction direction); 147 EAPI void imlib_context_set_angle(double angle); 148 EAPI void imlib_context_set_color(int red, int green, int blue, 149 int alpha); 150 EAPI void imlib_context_set_color_hsva(float hue, float saturation, 151 float value, int alpha); 152 EAPI void imlib_context_set_color_hlsa(float hue, float lightness, 153 float saturation, int alpha); 154 EAPI void imlib_context_set_color_cmya(int cyan, int magenta, 155 int yellow, int alpha); 156 EAPI void imlib_context_set_color_range(Imlib_Color_Range 157 color_range); 158 EAPI void imlib_context_set_image_data_memory_function 159 (Imlib_Image_Data_Memory_Function memory_function); 160 EAPI void imlib_context_set_progress_function(Imlib_Progress_Function 161 progress_function); 162 EAPI void imlib_context_set_progress_granularity(char 163 progress_granularity); 164 EAPI void imlib_context_set_image(Imlib_Image image); 165 EAPI void imlib_context_set_cliprect(int x, int y, int w, int h); 166 EAPI void imlib_context_set_TTF_encoding(Imlib_TTF_Encoding encoding); 167 168 /* context getting */ 169 #ifndef X_DISPLAY_MISSING 170 EAPI Display *imlib_context_get_display(void); 171 EAPI Visual *imlib_context_get_visual(void); 172 EAPI Colormap imlib_context_get_colormap(void); 173 EAPI Drawable imlib_context_get_drawable(void); 174 EAPI Pixmap imlib_context_get_mask(void); 175 #endif 176 EAPI char imlib_context_get_dither_mask(void); 177 EAPI char imlib_context_get_anti_alias(void); 178 EAPI int imlib_context_get_mask_alpha_threshold(void); 179 EAPI char imlib_context_get_dither(void); 180 EAPI char imlib_context_get_blend(void); 181 EAPI Imlib_Color_Modifier imlib_context_get_color_modifier(void); 182 EAPI Imlib_Operation imlib_context_get_operation(void); 183 EAPI Imlib_Font imlib_context_get_font(void); 184 EAPI double imlib_context_get_angle(void); 185 EAPI Imlib_Text_Direction imlib_context_get_direction(void); 186 EAPI void imlib_context_get_color(int *red, int *green, int *blue, 187 int *alpha); 188 EAPI void imlib_context_get_color_hsva(float *hue, float *saturation, 189 float *value, int *alpha); 190 EAPI void imlib_context_get_color_hlsa(float *hue, float *lightness, 191 float *saturation, int *alpha); 192 EAPI void imlib_context_get_color_cmya(int *cyan, int *magenta, 193 int *yellow, int *alpha); 194 EAPI Imlib_Color *imlib_context_get_imlib_color(void); 195 EAPI Imlib_Color_Range imlib_context_get_color_range(void); 196 EAPI Imlib_Image_Data_Memory_Function 197 imlib_context_get_image_data_memory_function(void); 198 EAPI Imlib_Progress_Function imlib_context_get_progress_function(void); 199 EAPI char imlib_context_get_progress_granularity(void); 200 EAPI Imlib_Image imlib_context_get_image(void); 201 EAPI void imlib_context_get_cliprect(int *x, int *y, int *w, int *h); 202 EAPI Imlib_TTF_Encoding imlib_context_get_TTF_encoding(void); 203 204 EAPI int imlib_get_cache_used(void); 205 EAPI int imlib_get_cache_size(void); 206 EAPI void imlib_set_cache_size(int bytes); 207 EAPI int imlib_get_color_usage(void); 208 EAPI void imlib_set_color_usage(int max); 209 EAPI void imlib_flush_loaders(void); 210 211 #ifndef X_DISPLAY_MISSING 212 EAPI int imlib_get_visual_depth(Display * display, Visual * visual); 213 EAPI Visual *imlib_get_best_visual(Display * display, int screen, 214 int *depth_return); 215 #endif 216 217 EAPI Imlib_Image imlib_load_image(const char *file); 218 EAPI Imlib_Image imlib_load_image_immediately(const char *file); 219 EAPI Imlib_Image imlib_load_image_without_cache(const char *file); 220 EAPI Imlib_Image imlib_load_image_immediately_without_cache(const char 221 *file); 222 EAPI Imlib_Image imlib_load_image_fd(int fd, const char *file); 223 EAPI Imlib_Image imlib_load_image_with_error_return(const char *file, 224 Imlib_Load_Error * 225 error_return); 226 EAPI void imlib_free_image(void); 227 EAPI void imlib_free_image_and_decache(void); 228 229 /* query/modify image parameters */ 230 EAPI int imlib_image_get_width(void); 231 EAPI int imlib_image_get_height(void); 232 EAPI const char *imlib_image_get_filename(void); 233 EAPI DATA32 *imlib_image_get_data(void); 234 EAPI DATA32 *imlib_image_get_data_for_reading_only(void); 235 EAPI void imlib_image_put_back_data(DATA32 * data); 236 EAPI char imlib_image_has_alpha(void); 237 EAPI void imlib_image_set_changes_on_disk(void); 238 EAPI void imlib_image_get_border(Imlib_Border * border); 239 EAPI void imlib_image_set_border(Imlib_Border * border); 240 EAPI void imlib_image_set_format(const char *format); 241 EAPI void imlib_image_set_irrelevant_format(char irrelevant); 242 EAPI void imlib_image_set_irrelevant_border(char irrelevant); 243 EAPI void imlib_image_set_irrelevant_alpha(char irrelevant); 244 EAPI char *imlib_image_format(void); 245 EAPI void imlib_image_set_has_alpha(char has_alpha); 246 EAPI void imlib_image_query_pixel(int x, int y, 247 Imlib_Color * color_return); 248 EAPI void imlib_image_query_pixel_hsva(int x, int y, float *hue, 249 float *saturation, 250 float *value, int *alpha); 251 EAPI void imlib_image_query_pixel_hlsa(int x, int y, float *hue, 252 float *lightness, 253 float *saturation, int *alpha); 254 EAPI void imlib_image_query_pixel_cmya(int x, int y, int *cyan, 255 int *magenta, int *yellow, 256 int *alpha); 257 258 /* rendering functions */ 259 #ifndef X_DISPLAY_MISSING 260 EAPI void imlib_render_pixmaps_for_whole_image(Pixmap * pixmap_return, 261 Pixmap * mask_return); 262 EAPI void imlib_render_pixmaps_for_whole_image_at_size(Pixmap * 263 pixmap_return, 264 Pixmap * 265 mask_return, 266 int width, 267 int height); 268 EAPI void imlib_free_pixmap_and_mask(Pixmap pixmap); 269 EAPI void imlib_render_image_on_drawable(int x, int y); 270 EAPI void imlib_render_image_on_drawable_at_size(int x, int y, 271 int width, 272 int height); 273 EAPI void imlib_render_image_part_on_drawable_at_size(int source_x, 274 int source_y, 275 int 276 source_width, int 277 source_height, 278 int x, int y, 279 int width, 280 int height); 281 EAPI DATA32 imlib_render_get_pixel_color(void); 282 #endif 283 EAPI void imlib_blend_image_onto_image(Imlib_Image source_image, 284 char merge_alpha, 285 int source_x, int source_y, 286 int source_width, 287 int source_height, 288 int destination_x, 289 int destination_y, 290 int destination_width, 291 int destination_height); 292 293 /* creation functions */ 294 EAPI Imlib_Image imlib_create_image(int width, int height); 295 EAPI Imlib_Image imlib_create_image_using_data(int width, int height, 296 DATA32 * data); 297 EAPI Imlib_Image imlib_create_image_using_data_and_memory_function 298 (int width, int height, DATA32 * data, 299 Imlib_Image_Data_Memory_Function func); 300 EAPI Imlib_Image imlib_create_image_using_copied_data(int width, int height, 301 DATA32 * data); 302 #ifndef X_DISPLAY_MISSING 303 EAPI Imlib_Image imlib_create_image_from_drawable(Pixmap mask, 304 int x, int y, 305 int width, int height, 306 char need_to_grab_x); 307 EAPI Imlib_Image imlib_create_image_from_ximage(XImage * image, 308 XImage * mask, 309 int x, int y, 310 int width, int height, 311 char need_to_grab_x); 312 EAPI Imlib_Image imlib_create_scaled_image_from_drawable(Pixmap mask, 313 int source_x, 314 int source_y, 315 int source_width, 316 int 317 source_height, int 318 destination_width, int 319 destination_height, char 320 need_to_grab_x, char 321 get_mask_from_shape); 322 EAPI char imlib_copy_drawable_to_image(Pixmap mask, int x, int y, 323 int width, int height, 324 int destination_x, 325 int destination_y, 326 char need_to_grab_x); 327 328 EAPI int imlib_get_ximage_cache_count_used(void); 329 EAPI int imlib_get_ximage_cache_count_max(void); 330 EAPI void imlib_set_ximage_cache_count_max(int count); 331 EAPI int imlib_get_ximage_cache_size_used(void); 332 EAPI int imlib_get_ximage_cache_size_max(void); 333 EAPI void imlib_set_ximage_cache_size_max(int bytes); 334 #endif 335 EAPI Imlib_Image imlib_clone_image(void); 336 EAPI Imlib_Image imlib_create_cropped_image(int x, int y, int width, 337 int height); 338 EAPI Imlib_Image imlib_create_cropped_scaled_image(int source_x, 339 int source_y, 340 int source_width, 341 int source_height, 342 int destination_width, 343 int destination_height); 344 345 /* imlib updates. lists of rectangles for storing required update draws */ 346 EAPI Imlib_Updates imlib_updates_clone(Imlib_Updates updates); 347 EAPI Imlib_Updates imlib_update_append_rect(Imlib_Updates updates, 348 int x, int y, int w, int h); 349 EAPI Imlib_Updates imlib_updates_merge(Imlib_Updates updates, int w, int h); 350 EAPI Imlib_Updates imlib_updates_merge_for_rendering(Imlib_Updates updates, 351 int w, int h); 352 EAPI void imlib_updates_free(Imlib_Updates updates); 353 EAPI Imlib_Updates imlib_updates_get_next(Imlib_Updates updates); 354 EAPI void imlib_updates_get_coordinates(Imlib_Updates updates, 355 int *x_return, 356 int *y_return, 357 int *width_return, 358 int *height_return); 359 EAPI void imlib_updates_set_coordinates(Imlib_Updates updates, 360 int x, int y, 361 int width, int height); 362 EAPI void imlib_render_image_updates_on_drawable(Imlib_Updates 363 updates, 364 int x, int y); 365 EAPI Imlib_Updates imlib_updates_init(void); 366 EAPI Imlib_Updates imlib_updates_append_updates(Imlib_Updates updates, 367 Imlib_Updates 368 appended_updates); 369 370 /* image modification */ 371 EAPI void imlib_image_flip_horizontal(void); 372 EAPI void imlib_image_flip_vertical(void); 373 EAPI void imlib_image_flip_diagonal(void); 374 EAPI void imlib_image_orientate(int orientation); 375 EAPI void imlib_image_blur(int radius); 376 EAPI void imlib_image_sharpen(int radius); 377 EAPI void imlib_image_tile_horizontal(void); 378 EAPI void imlib_image_tile_vertical(void); 379 EAPI void imlib_image_tile(void); 380 381 /* fonts and text */ 382 EAPI Imlib_Font imlib_load_font(const char *font_name); 383 EAPI void imlib_free_font(void); 384 385 /* NB! The four functions below are deprecated. */ 386 EAPI int imlib_insert_font_into_fallback_chain(Imlib_Font font, 387 Imlib_Font 388 fallback_font); 389 EAPI void imlib_remove_font_from_fallback_chain(Imlib_Font 390 fallback_font); 391 EAPI Imlib_Font imlib_get_prev_font_in_fallback_chain(Imlib_Font fn); 392 EAPI Imlib_Font imlib_get_next_font_in_fallback_chain(Imlib_Font fn); 393 394 /* NB! The four functions above are deprecated. */ 395 EAPI void imlib_text_draw(int x, int y, const char *text); 396 EAPI void imlib_text_draw_with_return_metrics(int x, int y, 397 const char *text, 398 int *width_return, 399 int *height_return, int 400 *horizontal_advance_return, int 401 *vertical_advance_return); 402 EAPI void imlib_get_text_size(const char *text, 403 int *width_return, int *height_return); 404 EAPI void imlib_get_text_advance(const char *text, 405 int *horizontal_advance_return, 406 int *vertical_advance_return); 407 EAPI int imlib_get_text_inset(const char *text); 408 EAPI void imlib_add_path_to_font_path(const char *path); 409 EAPI void imlib_remove_path_from_font_path(const char *path); 410 EAPI char **imlib_list_font_path(int *number_return); 411 EAPI int imlib_text_get_index_and_location(const char *text, 412 int x, int y, 413 int *char_x_return, 414 int *char_y_return, 415 int *char_width_return, 416 int *char_height_return); 417 EAPI void imlib_text_get_location_at_index(const char *text, 418 int index, 419 int *char_x_return, 420 int *char_y_return, 421 int *char_width_return, 422 int *char_height_return); 423 EAPI char **imlib_list_fonts(int *number_return); 424 EAPI void imlib_free_font_list(char **font_list, int number); 425 EAPI int imlib_get_font_cache_size(void); 426 EAPI void imlib_set_font_cache_size(int bytes); 427 EAPI void imlib_flush_font_cache(void); 428 EAPI int imlib_get_font_ascent(void); 429 EAPI int imlib_get_font_descent(void); 430 EAPI int imlib_get_maximum_font_ascent(void); 431 EAPI int imlib_get_maximum_font_descent(void); 432 433 /* color modifiers */ 434 EAPI Imlib_Color_Modifier imlib_create_color_modifier(void); 435 EAPI void imlib_free_color_modifier(void); 436 EAPI void imlib_modify_color_modifier_gamma(double gamma_value); 437 EAPI void imlib_modify_color_modifier_brightness(double 438 brightness_value); 439 EAPI void imlib_modify_color_modifier_contrast(double 440 contrast_value); 441 EAPI void imlib_set_color_modifier_tables(DATA8 * red_table, 442 DATA8 * green_table, 443 DATA8 * blue_table, 444 DATA8 * alpha_table); 445 EAPI void imlib_get_color_modifier_tables(DATA8 * red_table, 446 DATA8 * green_table, 447 DATA8 * blue_table, 448 DATA8 * alpha_table); 449 EAPI void imlib_reset_color_modifier(void); 450 EAPI void imlib_apply_color_modifier(void); 451 EAPI void imlib_apply_color_modifier_to_rectangle(int x, int y, 452 int width, 453 int height); 454 455 /* drawing on images */ 456 EAPI Imlib_Updates imlib_image_draw_pixel(int x, int y, char make_updates); 457 EAPI Imlib_Updates imlib_image_draw_line(int x1, int y1, int x2, int y2, 458 char make_updates); 459 EAPI void imlib_image_draw_rectangle(int x, int y, 460 int width, int height); 461 EAPI void imlib_image_fill_rectangle(int x, int y, 462 int width, int height); 463 EAPI void imlib_image_copy_alpha_to_image(Imlib_Image image_source, 464 int x, int y); 465 EAPI void imlib_image_copy_alpha_rectangle_to_image(Imlib_Image 466 image_source, 467 int x, int y, 468 int width, 469 int height, 470 int destination_x, 471 int 472 destination_y); 473 EAPI void imlib_image_scroll_rect(int x, int y, int width, int height, 474 int delta_x, int delta_y); 475 EAPI void imlib_image_copy_rect(int x, int y, int width, int height, 476 int new_x, int new_y); 477 478 /* polygons */ 479 EAPI ImlibPolygon imlib_polygon_new(void); 480 EAPI void imlib_polygon_free(ImlibPolygon poly); 481 EAPI void imlib_polygon_add_point(ImlibPolygon poly, int x, int y); 482 EAPI void imlib_image_draw_polygon(ImlibPolygon poly, 483 unsigned char closed); 484 EAPI void imlib_image_fill_polygon(ImlibPolygon poly); 485 EAPI void imlib_polygon_get_bounds(ImlibPolygon poly, 486 int *px1, int *py1, 487 int *px2, int *py2); 488 EAPI unsigned char imlib_polygon_contains_point(ImlibPolygon poly, 489 int x, int y); 490 491 /* ellipses */ 492 EAPI void imlib_image_draw_ellipse(int xc, int yc, int a, int b); 493 EAPI void imlib_image_fill_ellipse(int xc, int yc, int a, int b); 494 495 /* color ranges */ 496 EAPI Imlib_Color_Range imlib_create_color_range(void); 497 EAPI void imlib_free_color_range(void); 498 EAPI void imlib_add_color_to_color_range(int distance_away); 499 EAPI void imlib_image_fill_color_range_rectangle(int x, int y, 500 int width, 501 int height, 502 double angle); 503 EAPI void imlib_image_fill_hsva_color_range_rectangle(int x, int y, 504 int width, 505 int height, 506 double 507 angle); 508 509 /* image data */ 510 EAPI void imlib_image_attach_data_value(const char *key, 511 void *data, int value, 512 Imlib_Data_Destructor_Function 513 destructor_function); 514 EAPI void *imlib_image_get_attached_data(const char *key); 515 EAPI int imlib_image_get_attached_value(const char *key); 516 EAPI void imlib_image_remove_attached_data_value(const char *key); 517 EAPI void imlib_image_remove_and_free_attached_data_value(const char 518 *key); 519 520 /* saving */ 521 EAPI void imlib_save_image(const char *filename); 522 EAPI void imlib_save_image_with_error_return(const char *filename, 523 Imlib_Load_Error * 524 error_return); 525 526 /* FIXME: */ 527 /* need to add arbitrary rotation routines */ 528 529 /* rotation/skewing */ 530 EAPI Imlib_Image imlib_create_rotated_image(double angle); 531 532 /* rotation from buffer to context (without copying)*/ 533 EAPI void imlib_rotate_image_from_buffer(double angle, 534 Imlib_Image source_image); 535 536 EAPI void imlib_blend_image_onto_image_at_angle(Imlib_Image 537 source_image, 538 char merge_alpha, 539 int source_x, 540 int source_y, 541 int source_width, 542 int source_height, 543 int destination_x, 544 int destination_y, 545 int angle_x, 546 int angle_y); 547 EAPI void imlib_blend_image_onto_image_skewed(Imlib_Image 548 source_image, 549 char merge_alpha, 550 int source_x, 551 int source_y, 552 int source_width, 553 int source_height, 554 int destination_x, 555 int destination_y, 556 int h_angle_x, 557 int h_angle_y, 558 int v_angle_x, 559 int v_angle_y); 560 #ifndef X_DISPLAY_MISSING 561 EAPI void imlib_render_image_on_drawable_skewed(int source_x, 562 int source_y, 563 int source_width, 564 int source_height, 565 int destination_x, 566 int destination_y, 567 int h_angle_x, 568 int h_angle_y, 569 int v_angle_x, 570 int v_angle_y); 571 EAPI void imlib_render_image_on_drawable_at_angle(int source_x, 572 int source_y, 573 int source_width, 574 int source_height, 575 int destination_x, 576 int destination_y, 577 int angle_x, 578 int angle_y); 579 #endif 580 581 /* image filters */ 582 EAPI void imlib_image_filter(void); 583 EAPI Imlib_Filter imlib_create_filter(int initsize); 584 EAPI void imlib_context_set_filter(Imlib_Filter filter); 585 EAPI Imlib_Filter imlib_context_get_filter(void); 586 EAPI void imlib_free_filter(void); 587 EAPI void imlib_filter_set(int xoff, int yoff, 588 int a, int r, int g, int b); 589 EAPI void imlib_filter_set_alpha(int xoff, int yoff, 590 int a, int r, int g, int b); 591 EAPI void imlib_filter_set_red(int xoff, int yoff, 592 int a, int r, int g, int b); 593 EAPI void imlib_filter_set_green(int xoff, int yoff, 594 int a, int r, int g, int b); 595 EAPI void imlib_filter_set_blue(int xoff, int yoff, 596 int a, int r, int g, int b); 597 EAPI void imlib_filter_constants(int a, int r, int g, int b); 598 EAPI void imlib_filter_divisors(int a, int r, int g, int b); 599 600 EAPI void imlib_apply_filter(const char *script, ...); 601 602 EAPI void imlib_image_clear(void); 603 EAPI void imlib_image_clear_color(int r, int g, int b, int a); 604 605 /* *INDENT-OFF* */ 606 #ifdef __cplusplus 607 } 608 #endif 609 /* *INDENT-ON* */ 610 #endif 611