X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2Fsvgtiny_internal.h;h=133513c7d7ff886d7105b66dfdf2585afd550b8c;hb=a0f95cf38d64b5a093d7745c616ff048e8d930b6;hp=542a0d0cd565cbdbbb0714d19c278f71d75e4ed7;hpb=f15555ee16921352ec00f90e8687b4a17f8195bb;p=libsvgtiny.git diff --git a/src/svgtiny_internal.h b/src/svgtiny_internal.h index 542a0d0..133513c 100644 --- a/src/svgtiny_internal.h +++ b/src/svgtiny_internal.h @@ -24,6 +24,16 @@ struct svgtiny_gradient_stop { #define svgtiny_MAX_STOPS 10 #define svgtiny_LINEAR_GRADIENT 0x2000000 +struct svgtiny_parse_state_gradient { + unsigned int linear_gradient_stop_count; + dom_string *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_parse_state { struct svgtiny_diagram *diagram; dom_document *document; @@ -36,21 +46,14 @@ struct svgtiny_parse_state { 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; - dom_string *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_parse_state_gradient fill_grad; + struct svgtiny_parse_state_gradient stroke_grad; /* Interned strings */ #define SVGTINY_STRING_ACTION2(n,nn) dom_string *interned_##n; @@ -65,6 +68,7 @@ struct svgtiny_list; float svgtiny_parse_length(dom_string *s, int viewport_size, const struct svgtiny_parse_state state); void svgtiny_parse_color(dom_string *s, svgtiny_colour *c, + struct svgtiny_parse_state_gradient *grad, struct svgtiny_parse_state *state); void svgtiny_parse_transform(char *s, float *ma, float *mb, float *mc, float *md, float *me, float *mf); @@ -80,7 +84,9 @@ char *svgtiny_strndup(const char *s, size_t n); #endif /* svgtiny_gradient.c */ -void svgtiny_find_gradient(const char *id, struct svgtiny_parse_state *state); +void svgtiny_find_gradient(const char *id, + struct svgtiny_parse_state_gradient *grad, + struct svgtiny_parse_state *state); svgtiny_code svgtiny_add_path_linear_gradient(float *p, unsigned int n, struct svgtiny_parse_state *state); @@ -94,9 +100,4 @@ void *svgtiny_list_get(struct svgtiny_list *list, 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