From 15cdb30e3125ce542289fe385f559799e5abf220 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Mon, 24 Aug 2009 08:06:29 +0000 Subject: Beginnings of port to core buildsystem svn path=/trunk/libsvgtiny/; revision=9419 --- src/svgtiny_internal.h | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 src/svgtiny_internal.h (limited to 'src/svgtiny_internal.h') diff --git a/src/svgtiny_internal.h b/src/svgtiny_internal.h new file mode 100644 index 0000000..f07f430 --- /dev/null +++ b/src/svgtiny_internal.h @@ -0,0 +1,84 @@ +/* + * This file is part of Libsvgtiny + * Licensed under the MIT License, + * http://opensource.org/licenses/mit-license.php + * Copyright 2008 James Bursa + */ + +#ifndef SVGTINY_INTERNAL_H +#define SVGTINY_INTERNAL_H + +#include + +struct svgtiny_gradient_stop { + float offset; + svgtiny_colour color; +}; + +#define svgtiny_MAX_STOPS 10 +#define svgtiny_LINEAR_GRADIENT 0x2000000 + +struct svgtiny_parse_state { + struct svgtiny_diagram *diagram; + xmlDoc *document; + + float viewport_width; + float viewport_height; + + /* current transformation matrix */ + struct { + float a, b, c, d, e, f; + } ctm; + + /*struct css_style style;*/ + + /* paint attributes */ + svgtiny_colour fill; + svgtiny_colour stroke; + int stroke_width; + + /* gradients */ + unsigned int linear_gradient_stop_count; + const char *gradient_x1, *gradient_y1, *gradient_x2, *gradient_y2; + struct svgtiny_gradient_stop gradient_stop[svgtiny_MAX_STOPS]; + bool gradient_user_space_on_use; + struct { + float a, b, c, d, e, f; + } gradient_transform; +}; + +struct svgtiny_list; + +/* svgtiny.c */ +float svgtiny_parse_length(const char *s, int viewport_size, + const struct svgtiny_parse_state state); +void svgtiny_parse_color(const char *s, svgtiny_colour *c, + struct svgtiny_parse_state *state); +void svgtiny_parse_transform(char *s, float *ma, float *mb, + float *mc, float *md, float *me, float *mf); +struct svgtiny_shape *svgtiny_add_shape(struct svgtiny_parse_state *state); +void svgtiny_transform_path(float *p, unsigned int n, + struct svgtiny_parse_state *state); + +/* svgtiny_gradient.c */ +void svgtiny_find_gradient(const char *id, struct svgtiny_parse_state *state); +svgtiny_code svgtiny_add_path_linear_gradient(float *p, unsigned int n, + struct svgtiny_parse_state *state); +xmlNode *svgtiny_find_element_by_id(xmlNode *node, const char *id); + +/* svgtiny_list.c */ +struct svgtiny_list *svgtiny_list_create(size_t item_size); +unsigned int svgtiny_list_size(struct svgtiny_list *list); +svgtiny_code svgtiny_list_resize(struct svgtiny_list *list, + unsigned int new_size); +void *svgtiny_list_get(struct svgtiny_list *list, + unsigned int i); +void *svgtiny_list_push(struct svgtiny_list *list); +void svgtiny_list_free(struct svgtiny_list *list); + +/* colors.gperf */ +const struct svgtiny_named_color * + svgtiny_color_lookup(register const char *str, + register unsigned int len); + +#endif -- cgit v1.2.3