diff options
Diffstat (limited to 'php_imlib.h')
| -rw-r--r-- | php_imlib.h | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/php_imlib.h b/php_imlib.h new file mode 100644 index 0000000..e1aad2c --- /dev/null +++ b/php_imlib.h @@ -0,0 +1,211 @@ +/* + +----------------------------------------------------------------------+ + | PHP version 4.0 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997, 1998, 1999, 2000 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.02 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available at through the world-wide-web at | + | http://www.php.net/license/2_02.txt. | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Matt McClanahan <cardinal@dodds.net> | + +----------------------------------------------------------------------+ + */ + +#ifndef _PHP_IMLIB_H +#define _PHP_IMLIB_H + +#include "X11/Xlib.h" +#include <Imlib2.h> +#include "ltdl.h" +#include "php_config.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#if HAVE_LIBT1 +#ifndef T1_DEFAULT +#include <t1lib.h> +#endif +#endif + +#if HAVE_IMLIB + +extern zend_module_entry imlib_module_entry; +#define phpext_imlib_ptr &imlib_module_entry + +#ifdef PHP_WIN32 +#define PHP_IMLIB_API __declspec(dllexport) +#else +#define PHP_IMLIB_API +#endif + +PHP_MINIT_FUNCTION(imlib); +PHP_MSHUTDOWN_FUNCTION(imlib); +PHP_RINIT_FUNCTION(imlib); +PHP_RSHUTDOWN_FUNCTION(imlib); +PHP_MINFO_FUNCTION(imlib); + +PHP_INI_MH(OnUpdateFontCacheSize); + +PHP_FUNCTION(imlib_add_color_to_color_range); +PHP_FUNCTION(imlib_blend_image_onto_image); +PHP_FUNCTION(imlib_clone_image); +PHP_FUNCTION(imlib_create_color_range); +PHP_FUNCTION(imlib_create_color_modifier); +PHP_FUNCTION(imlib_create_cropped_image); +PHP_FUNCTION(imlib_create_cropped_scaled_image); +PHP_FUNCTION(imlib_create_image); +PHP_FUNCTION(imlib_create_rotated_image); +PHP_FUNCTION(imlib_create_scaled_image); +PHP_FUNCTION(imlib_free_color_range); +PHP_FUNCTION(imlib_free_color_modifier); +PHP_FUNCTION(imlib_free_font); +PHP_FUNCTION(imlib_free_image); +PHP_FUNCTION(imlib_get_text_size); +PHP_FUNCTION(imlib_get_text_advance); +PHP_FUNCTION(imlib_image_blur); +PHP_FUNCTION(imlib_image_draw_ellipse); +PHP_FUNCTION(imlib_image_draw_line); +PHP_FUNCTION(imlib_image_draw_polygon); +PHP_FUNCTION(imlib_image_draw_rectangle); +PHP_FUNCTION(imlib_image_fill_color_range_rectangle); +PHP_FUNCTION(imlib_image_fill_ellipse); +PHP_FUNCTION(imlib_image_fill_polygon); +PHP_FUNCTION(imlib_image_fill_rectangle); +PHP_FUNCTION(imlib_image_flip_horizontal); +PHP_FUNCTION(imlib_image_flip_vertical); +PHP_FUNCTION(imlib_image_flip_diagonal); +PHP_FUNCTION(imlib_image_orientate); +PHP_FUNCTION(imlib_image_format); +PHP_FUNCTION(imlib_image_get_filename); +PHP_FUNCTION(imlib_image_get_height); +PHP_FUNCTION(imlib_image_get_width); +PHP_FUNCTION(imlib_image_has_alpha); +PHP_FUNCTION(imlib_image_modify_alpha); +PHP_FUNCTION(imlib_image_set_format); +PHP_FUNCTION(imlib_image_sharpen); +PHP_FUNCTION(imlib_image_tile_horizontal); +PHP_FUNCTION(imlib_image_tile_vertical); +PHP_FUNCTION(imlib_image_tile); +PHP_FUNCTION(imlib_list_fonts); +PHP_FUNCTION(imlib_load_font); +PHP_FUNCTION(imlib_load_image); +PHP_FUNCTION(imlib_load_image_with_error_return); +PHP_FUNCTION(imlib_polygon_add_point); +PHP_FUNCTION(imlib_polygon_contains_point); +PHP_FUNCTION(imlib_polygon_free); +PHP_FUNCTION(imlib_polygon_get_bounds); +PHP_FUNCTION(imlib_polygon_new); +PHP_FUNCTION(imlib_save_image); +PHP_FUNCTION(imlib_dump_image); +PHP_FUNCTION(imlib_text_draw); +PHP_FUNCTION(imlib_get_cache_size); +PHP_FUNCTION(imlib_set_cache_size); +PHP_FUNCTION(imlib_apply_filter); +PHP_FUNCTION(imlib_create_filter); +PHP_FUNCTION(imlib_free_filter); +PHP_FUNCTION(imlib_image_filter); +PHP_FUNCTION(imlib_filter_set); +PHP_FUNCTION(imlib_filter_set_alpha); +PHP_FUNCTION(imlib_filter_set_red); +PHP_FUNCTION(imlib_filter_set_green); +PHP_FUNCTION(imlib_filter_set_blue); +PHP_FUNCTION(imlib_filter_constants); +PHP_FUNCTION(imlib_filter_divisors); +PHP_FUNCTION(imlib_modify_color_modifier_gamma); +PHP_FUNCTION(imlib_modify_color_modifier_brightness); +PHP_FUNCTION(imlib_modify_color_modifier_contrast); +PHP_FUNCTION(imlib_reset_color_modifier); +PHP_FUNCTION(imlib_apply_color_modifier); +PHP_FUNCTION(imlib_set_color_modifier); +PHP_FUNCTION(imlib_get_color_modifier); +PHP_FUNCTION(imlib_psloadfont); +PHP_FUNCTION(imlib_psfreefont); +PHP_FUNCTION(imlib_psencodefont); +PHP_FUNCTION(imlib_psextendfont); +PHP_FUNCTION(imlib_psslantfont); +PHP_FUNCTION(imlib_pstext); +PHP_FUNCTION(imlib_psbbox); + + +typedef struct +{ + Imlib_Font font; + Imlib_TTF_Encoding enc; +} PHP_Imlib_Font_struct; +typedef PHP_Imlib_Font_struct *PHP_Imlib_Font; + +typedef struct +{ + Imlib_Color_Modifier cm; + DATA8 channels[4][256]; + int modified; + int valid; +} PHP_Imlib_Color_Modifier_struct; +typedef PHP_Imlib_Color_Modifier_struct *PHP_Imlib_Color_Modifier; + +Imlib_Image _php_imlib_get_image(zval** im_resource); +Imlib_Filter _php_imlib_get_filter(zval** fil_resource); +Imlib_Font _php_imlib_get_font(zval** font_resource); +Imlib_TTF_Encoding _php_imlib_get_font_encoding(zval** font_resource); +Imlib_Color_Range _php_imlib_get_cr(zval** cr_resource); +ImlibPolygon _php_imlib_get_poly(zval** poly_resource); +Imlib_Color_Modifier _php_imlib_get_cm(zval** cm_resource); + +struct php_imlib_filter +{ + char *filename; + void *handle; + int (*init)(); + void (*deinit)(); + int (*exec)(Imlib_Image im, char* filter, HashTable* params); + int (*getfiltercount)(); + void (*getfilternames)(char** filternames); + void (*getextinfo)(char** info); + char* (*getparams)(char* filter); + int filters; + char** names; + struct php_imlib_filter *next; +}; + +ZEND_BEGIN_MODULE_GLOBALS(imlib) + char *font_path; + char **saved_path; + char *filter_path; + int cache_size; + int min_cache_size; + int max_cache_size; + struct php_imlib_filter *filters; +ZEND_END_MODULE_GLOBALS(imlib) + +#ifdef ZTS +#define IMLIBG(v) (imlib_globals->v) +#define IMLIBLS_FETCH() zend_imlib_globals *imlib_globals = ts_resource(gd_imlib_id) +#else +#define IMLIBG(v) (imlib_globals.v) +#define IMLIBLS_FETCH() +#endif + +#else + +#define phpext_imlib_ptr NULL + +#endif + +#define MY_ZEND_FETCH_RESOURCE(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type) \ + rsrc = (rsrc_type) zend_fetch_resource(passed_id TSRMLS_CC, default_id, resource_type_name, NULL, 1, resource_type) + +#endif /* _PHP_IMLIB_H */ + + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ |
