summaryrefslogtreecommitdiffhomepage
path: root/php_imlib.h
diff options
context:
space:
mode:
Diffstat (limited to 'php_imlib.h')
-rw-r--r--php_imlib.h211
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:
+ */