Picasso API  2.8
picasso.h
Go to the documentation of this file.
1 
19 #ifndef _PICASSO_H_
20 #define _PICASSO_H_
21 
22 #ifdef DLL_EXPORT
23  #if defined(WIN32) || defined(WINCE)
24  #ifdef EXPORT
25  #define PICAPI
26  #define PEXPORT __declspec(dllexport)
27  #else
28  #define PICAPI
29  #define PEXPORT __declspec(dllimport)
30  #endif
31  #else
32  #define PICAPI
33  #if (defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))) || (defined(__clang__))
34  #define PEXPORT __attribute__((visibility("default")))
35  #else
36  #define PEXPORT
37  #endif
38  #endif
39 #else
40  #define PICAPI
41  #define PEXPORT
42 #endif
43 
44 #include <stdint.h>
45 
46 #ifdef __cplusplus
47 extern "C" {
48 #endif /* __cplusplus */
49 
60 typedef int ps_bool;
61 
67 #define True 1
68 
74 #define False 0
75 
81 typedef uint16_t ps_uchar16;
82 
88 typedef int16_t ps_schar16;
89 
95 typedef uint8_t ps_byte;
96 
109 typedef struct _ps_context ps_context;
110 
116 typedef struct _ps_canvas ps_canvas;
117 
123 typedef struct _ps_image ps_image;
124 
130 typedef struct _ps_pattern ps_pattern;
131 
137 typedef struct _ps_gradient ps_gradient;
138 
144 typedef struct _ps_matrix ps_matrix;
145 
151 typedef struct _ps_path ps_path;
152 
158 typedef struct _ps_mask ps_mask;
159 
165 typedef struct _ps_font ps_font;
166 
170 typedef struct _ps_glyph {
172  void* glyph;
173 } ps_glyph;
174 
178 typedef struct _ps_size {
180  float w;
182  float h;
183 } ps_size;
184 
188 typedef struct _ps_rect {
190  float x;
192  float y;
194  float w;
196  float h;
197 } ps_rect;
198 
202 typedef struct _ps_point {
204  float x;
206  float y;
207 } ps_point;
208 
212 typedef struct _ps_color {
214  float r;
216  float g;
218  float b;
220  float a;
221 } ps_color;
222 
235 PEXPORT int PICAPI ps_version(void);
236 
247 PEXPORT ps_bool PICAPI ps_initialize(void);
248 
257 PEXPORT void PICAPI ps_shutdown(void);
258 
262 typedef enum _ps_status {
291 } ps_status;
292 
298 PEXPORT ps_status PICAPI ps_last_status(void);
325 PEXPORT ps_context* PICAPI ps_context_create(ps_canvas* canvas, ps_context* shared_context);
326 
340 PEXPORT ps_context* PICAPI ps_context_ref(ps_context* ctx);
341 
351 PEXPORT void PICAPI ps_context_unref(ps_context* ctx);
352 
367 PEXPORT ps_canvas* PICAPI ps_context_set_canvas(ps_context* ctx, ps_canvas* canvas);
368 
382 PEXPORT ps_canvas* PICAPI ps_context_get_canvas(ps_context* ctx);
383 
394 typedef enum _ps_color_format {
432 
449 PEXPORT ps_canvas* PICAPI ps_canvas_create(ps_color_format fmt, int width, int height);
450 
471  int width, int height, int pitch);
472 
491 PEXPORT ps_canvas* PICAPI ps_canvas_create_compatible(const ps_canvas* canvas,
492  int width, int height);
493 
510 PEXPORT ps_canvas* PICAPI ps_canvas_create_from_canvas(ps_canvas* canvas, const ps_rect* rect);
511 
528 PEXPORT ps_canvas* PICAPI ps_canvas_create_from_image(ps_image* img, const ps_rect* rect);
529 
552 PEXPORT ps_canvas* PICAPI ps_canvas_replace_data(ps_canvas* canvas, ps_byte* data,
553  ps_color_format fmt, int width, int height, int pitch);
554 
569 PEXPORT ps_canvas* PICAPI ps_canvas_ref(ps_canvas* canvas);
570 
581 PEXPORT void PICAPI ps_canvas_unref(ps_canvas* canvas);
582 
596 PEXPORT ps_bool PICAPI ps_canvas_get_size(const ps_canvas* canvas, ps_size* rsize);
597 
611 PEXPORT ps_color_format PICAPI ps_canvas_get_format(const ps_canvas* canvas);
612 
622 PEXPORT void PICAPI ps_canvas_set_mask(ps_canvas* canvas, const ps_mask* mask);
623 
632 PEXPORT void PICAPI ps_canvas_reset_mask(ps_canvas* canvas);
633 
649 PEXPORT void PICAPI ps_canvas_bitblt(ps_canvas* src, const ps_rect* rect,
650  ps_canvas* dst, const ps_point* location);
674 PEXPORT ps_image* PICAPI ps_image_create(ps_color_format fmt, int width, int height);
675 
695 PEXPORT ps_image* PICAPI ps_image_create_with_data(ps_byte* data, ps_color_format fmt,
696  int width, int height, int pitch);
716 PEXPORT ps_image* PICAPI ps_image_create_from_data(ps_byte* data, ps_color_format fmt,
717  int width, int height, int pitch);
736 PEXPORT ps_image* PICAPI ps_image_create_compatible(const ps_canvas* canvas, int width, int height);
737 
754 PEXPORT ps_image* PICAPI ps_image_create_from_canvas(ps_canvas* canvas, const ps_rect* rect);
755 
772 PEXPORT ps_image* PICAPI ps_image_create_from_image(ps_image* img, const ps_rect* rect);
773 
788 PEXPORT ps_image* PICAPI ps_image_ref(ps_image* img);
789 
800 PEXPORT void PICAPI ps_image_unref(ps_image* img);
801 
811 PEXPORT void PICAPI ps_image_set_allow_transparent(ps_image* img, ps_bool allow);
812 
822 PEXPORT void PICAPI ps_image_set_transparent_color(ps_image* img, const ps_color* color);
823 
837 PEXPORT ps_bool PICAPI ps_image_get_size(const ps_image* img, ps_size* rsize);
838 
852 PEXPORT ps_color_format PICAPI ps_image_get_format(const ps_image* img);
853 
864 typedef enum _ps_wrap_type {
873 } ps_wrap_type;
874 
892 PEXPORT ps_pattern* PICAPI ps_pattern_create_image(const ps_image* img, ps_wrap_type x_wrap,
893  ps_wrap_type y_wrap, const ps_matrix* transform);
894 
904 PEXPORT void PICAPI ps_pattern_transform(ps_pattern* pattern, const ps_matrix* matrix);
905 
919 PEXPORT ps_pattern* PICAPI ps_pattern_ref(ps_pattern* pattern);
920 
930 PEXPORT void PICAPI ps_pattern_unref(ps_pattern* pattern);
931 
942 typedef enum _ps_gradient_spread {
956 
974  const ps_point* start, const ps_point* end);
975 
995  const ps_point* start, float sradius, const ps_point* end, float eradius);
996 
1015  const ps_point* origin, float sangle);
1016 
1027 PEXPORT void PICAPI ps_gradient_transform(ps_gradient* gradient, const ps_matrix* matrix);
1028 
1043 PEXPORT ps_gradient* PICAPI ps_gradient_ref(ps_gradient* gradient);
1044 
1055 PEXPORT void PICAPI ps_gradient_unref(ps_gradient* gradient);
1056 
1067 PEXPORT void PICAPI ps_gradient_add_color_stop(ps_gradient* gradient,
1068  float offset, const ps_color* color);
1069 
1078 PEXPORT void PICAPI ps_gradient_clear_color_stops(ps_gradient* gradient);
1079 
1104 PEXPORT ps_mask* PICAPI ps_mask_create_with_data(ps_byte* data, int width, int height);
1105 
1119 PEXPORT ps_mask* PICAPI ps_mask_ref(ps_mask* mask);
1120 
1130 PEXPORT void PICAPI ps_mask_unref(ps_mask* mask);
1131 
1142 PEXPORT void PICAPI ps_mask_add_color_filter(ps_mask* mask, const ps_color* color);
1143 
1152 PEXPORT void PICAPI ps_mask_clear_color_filters(ps_mask* mask);
1153 
1175 PEXPORT void PICAPI ps_set_source_color(ps_context* ctx, const ps_color* color);
1176 
1186 PEXPORT void PICAPI ps_set_source_image(ps_context* ctx, const ps_image* image);
1187 
1197 PEXPORT void PICAPI ps_set_source_pattern(ps_context* ctx, const ps_pattern* pattern);
1198 
1208 PEXPORT void PICAPI ps_set_source_gradient(ps_context* ctx, const ps_gradient* gradient);
1209 
1219 PEXPORT void PICAPI ps_set_source_canvas(ps_context* ctx, const ps_canvas* canvas);
1220 
1231 typedef enum _ps_line_cap {
1244 } ps_line_cap;
1245 
1256 PEXPORT void PICAPI ps_set_line_cap(ps_context* ctx, ps_line_cap line_cap);
1257 
1261 typedef enum _ps_line_join {
1282 } ps_line_join;
1283 
1294 PEXPORT void PICAPI ps_set_line_join(ps_context* ctx, ps_line_join line_join);
1295 
1299 typedef enum _ps_line_inner_join {
1317 
1328 PEXPORT void PICAPI ps_set_line_inner_join(ps_context* ctx, ps_line_inner_join line_inner_join);
1329 
1346 PEXPORT float PICAPI ps_set_line_width(ps_context* ctx, float width);
1347 
1364 PEXPORT float PICAPI ps_set_miter_limit(ps_context* ctx, float limit);
1365 
1377 PEXPORT void PICAPI ps_set_stroke_color(ps_context* ctx, const ps_color* color);
1378 
1390 PEXPORT void PICAPI ps_set_stroke_image(ps_context* ctx, const ps_image* image);
1391 
1403 PEXPORT void PICAPI ps_set_stroke_pattern(ps_context* ctx, const ps_pattern* pattern);
1404 
1416 PEXPORT void PICAPI ps_set_stroke_gradient(ps_context* ctx, const ps_gradient* gradient);
1417 
1429 PEXPORT void PICAPI ps_set_stroke_canvas(ps_context* ctx, const ps_canvas* canvas);
1430 
1444 PEXPORT void PICAPI ps_set_line_dash(ps_context* ctx, float start,
1445  const float* dashes, unsigned int num_dashes);
1446 
1456 PEXPORT void PICAPI ps_reset_line_dash(ps_context* ctx);
1457 
1476 PEXPORT void PICAPI ps_set_shadow(ps_context* ctx, float x_offset, float y_offset, float blur);
1477 
1487 PEXPORT void PICAPI ps_set_shadow_color(ps_context* ctx, const ps_color* color);
1488 
1497 PEXPORT void PICAPI ps_reset_shadow(ps_context* ctx);
1498 
1508 typedef enum _ps_composite {
1575 } ps_composite;
1576 
1591 PEXPORT ps_composite PICAPI ps_set_composite_operator(ps_context* ctx, ps_composite composite);
1592 
1596 typedef enum _ps_filter {
1621 } ps_filter;
1622 
1637 PEXPORT ps_filter PICAPI ps_set_filter(ps_context* ctx, ps_filter filter);
1638 
1642 typedef enum _ps_fill_rule {
1655 } ps_fill_rule;
1656 
1671 PEXPORT ps_fill_rule PICAPI ps_set_fill_rule(ps_context* ctx, ps_fill_rule rule);
1672 
1688 PEXPORT float PICAPI ps_set_alpha(ps_context* ctx, float alpha);
1689 
1705 PEXPORT float PICAPI ps_set_gamma(ps_context* ctx, float gamma);
1706 
1716 PEXPORT void PICAPI ps_set_antialias(ps_context* ctx, ps_bool antialias);
1717 
1733 PEXPORT float PICAPI ps_set_blur(ps_context* ctx, float blur);
1734 
1751 PEXPORT void PICAPI ps_stroke(ps_context* ctx);
1752 
1762 PEXPORT void PICAPI ps_fill(ps_context* ctx);
1763 
1773 PEXPORT void PICAPI ps_paint(ps_context* ctx);
1774 
1783 PEXPORT void PICAPI ps_clear(ps_context* ctx);
1784 
1801 PEXPORT void PICAPI ps_clip(ps_context* ctx);
1802 
1813 PEXPORT void PICAPI ps_clip_path(ps_context* ctx, const ps_path* path, ps_fill_rule rule);
1814 
1824 PEXPORT void PICAPI ps_clip_rect(ps_context* ctx, const ps_rect* rect);
1825 
1838 PEXPORT void PICAPI ps_scissor_rect(ps_context* ctx, const ps_rect* rect);
1839 
1850 PEXPORT void PICAPI ps_clip_rects(ps_context* ctx, const ps_rect* rects, unsigned int num_rects);
1851 
1860 PEXPORT void PICAPI ps_reset_clip(ps_context* ctx);
1861 
1896 PEXPORT void PICAPI ps_save(ps_context* ctx);
1897 
1906 PEXPORT void PICAPI ps_restore(ps_context* ctx);
1907 
1919 typedef enum _ps_charset {
1928 } ps_charset;
1929 
1933 typedef enum _ps_font_weight {
1950 } ps_font_weight;
1951 
1969 PEXPORT ps_font* PICAPI ps_font_create(const char* name, ps_charset charset,
1970  float size, int weight, ps_bool italic);
1971 
1985 PEXPORT ps_font* PICAPI ps_font_create_copy(const ps_font* font);
1986 
2000 PEXPORT ps_font* PICAPI ps_font_ref(ps_font* font);
2001 
2011 PEXPORT void PICAPI ps_font_unref(ps_font* font);
2012 
2023 PEXPORT void PICAPI ps_font_set_size(ps_font* font, float size);
2024 
2035 PEXPORT void PICAPI ps_font_set_weight(ps_font* font, int weight);
2036 
2047 PEXPORT void PICAPI ps_font_set_italic(ps_font* font, ps_bool italic);
2048 
2059 PEXPORT void PICAPI ps_font_set_charset(ps_font* font, ps_charset charset);
2060 
2071 PEXPORT void PICAPI ps_font_set_hint(ps_font* font, ps_bool hint);
2072 
2083 PEXPORT void PICAPI ps_font_set_flip(ps_font* font, ps_bool flip);
2084 
2088 typedef struct _ps_font_info {
2092  float size;
2096  float ascent;
2100  float descent;
2104  float leading;
2108  unsigned int unitsEM;
2109 } ps_font_info;
2110 
2122 PEXPORT ps_bool PICAPI ps_get_font_info(ps_context* ctx, ps_font_info* info);
2123 
2138 PEXPORT ps_font* PICAPI ps_set_font(ps_context* ctx, const ps_font* font);
2139 
2150 typedef enum _ps_text_type {
2163 } ps_text_type;
2164 
2180 PEXPORT ps_bool PICAPI ps_get_text_extent(ps_context* ctx, const void* text, unsigned int length, ps_size* rsize);
2181 
2192 PEXPORT void PICAPI ps_set_text_color(ps_context* ctx, const ps_color* color);
2193 
2204 PEXPORT void PICAPI ps_set_text_stroke_color(ps_context* ctx, const ps_color* color);
2205 
2218 PEXPORT void PICAPI ps_text_transform(ps_context* ctx, const ps_matrix* matrix);
2219 
2232 PEXPORT void PICAPI ps_set_text_matrix(ps_context* ctx, const ps_matrix* matrix);
2233 
2244 PEXPORT void PICAPI ps_set_text_render_type(ps_context* ctx, ps_text_type type);
2245 
2256 PEXPORT void PICAPI ps_set_text_antialias(ps_context* ctx, ps_bool antialias);
2257 
2268 PEXPORT void PICAPI ps_set_text_kerning(ps_context* ctx, ps_bool kerning);
2269 
2282 PEXPORT void PICAPI ps_text_out_length(ps_context* ctx, float x, float y,
2283  const char* text, unsigned int length);
2284 
2297 PEXPORT void PICAPI ps_wide_text_out_length(ps_context* ctx, float x, float y,
2298  const ps_uchar16* text, unsigned int length);
2302 typedef enum _ps_draw_text_type {
2316 
2320 typedef enum _ps_text_align {
2341 } ps_text_align;
2342 
2357 PEXPORT void PICAPI ps_draw_text(ps_context* ctx, const ps_rect* area, const void* text,
2358  unsigned int length, ps_draw_text_type type, ps_text_align align);
2359 
2372 PEXPORT ps_bool PICAPI ps_get_glyph(ps_context* ctx, int ch, ps_glyph* glyph);
2373 
2386 PEXPORT void PICAPI ps_show_glyphs(ps_context* ctx, float x, float y,
2387  ps_glyph* glyphs, unsigned int length);
2388 
2401 PEXPORT ps_bool PICAPI ps_get_path_from_glyph(ps_context* ctx,
2402  const ps_glyph* glyph, ps_path* path);
2403 
2417 PEXPORT ps_bool PICAPI ps_glyph_get_extent(const ps_glyph* glyph, ps_size* rsize);
2418 
2436 PEXPORT void PICAPI ps_translate(ps_context* ctx, float tx, float ty);
2437 
2448 PEXPORT void PICAPI ps_scale(ps_context* ctx, float sx, float sy);
2449 
2460 PEXPORT void PICAPI ps_shear(ps_context* ctx, float shx, float shy);
2461 
2471 PEXPORT void PICAPI ps_rotate(ps_context* ctx, float angle);
2472 
2481 PEXPORT void PICAPI ps_identity(ps_context* ctx);
2482 
2492 PEXPORT void PICAPI ps_transform(ps_context* ctx, const ps_matrix* matrix);
2493 
2503 PEXPORT void PICAPI ps_set_matrix(ps_context* ctx, const ps_matrix* matrix);
2504 
2516 PEXPORT ps_bool PICAPI ps_get_matrix(ps_context* ctx, ps_matrix* matrix);
2517 
2527 PEXPORT void PICAPI ps_world_to_viewport(ps_context* ctx, ps_point* point);
2528 
2538 PEXPORT void PICAPI ps_viewport_to_world(ps_context* ctx, ps_point* point);
2539 
2558 PEXPORT ps_matrix* PICAPI ps_matrix_create(void);
2559 
2579 PEXPORT ps_matrix* PICAPI ps_matrix_create_init(float sx, float shy, float shx,
2580  float sy, float tx, float ty);
2581 
2595 PEXPORT ps_matrix* PICAPI ps_matrix_create_copy(const ps_matrix* matrix);
2596 
2610 PEXPORT ps_matrix* PICAPI ps_matrix_ref(ps_matrix* matrix);
2611 
2621 PEXPORT void PICAPI ps_matrix_unref(ps_matrix* matrix);
2622 
2638 PEXPORT void PICAPI ps_matrix_init(ps_matrix* matrix, float sx, float shy,
2639  float shx, float sy, float tx, float ty);
2640 
2651 PEXPORT void PICAPI ps_matrix_translate(ps_matrix* matrix, float tx, float ty);
2652 
2663 PEXPORT void PICAPI ps_matrix_scale(ps_matrix* matrix, float sx, float sy);
2664 
2674 PEXPORT void PICAPI ps_matrix_rotate(ps_matrix* matrix, float angle);
2675 
2686 PEXPORT void PICAPI ps_matrix_shear(ps_matrix* matrix, float shx, float shy);
2687 
2696 PEXPORT void PICAPI ps_matrix_invert(ps_matrix* matrix);
2697 
2706 PEXPORT void PICAPI ps_matrix_identity(ps_matrix* matrix);
2707 
2716 PEXPORT void PICAPI ps_matrix_flip_x(ps_matrix* matrix);
2717 
2726 PEXPORT void PICAPI ps_matrix_flip_y(ps_matrix* matrix);
2727 
2738 PEXPORT void PICAPI ps_matrix_multiply(ps_matrix* result, const ps_matrix* a, const ps_matrix* b);
2739 
2750 PEXPORT ps_bool PICAPI ps_matrix_is_identity(const ps_matrix* matrix);
2751 
2763 PEXPORT ps_bool PICAPI ps_matrix_is_equal(const ps_matrix* a, const ps_matrix* b);
2764 
2775 PEXPORT float PICAPI ps_matrix_get_determinant(const ps_matrix* matrix);
2776 
2787 PEXPORT void PICAPI ps_matrix_set_translate_factor(ps_matrix* matrix, float tx, float ty);
2788 
2801 PEXPORT ps_bool PICAPI ps_matrix_get_translate_factor(ps_matrix* matrix, float* tx, float* ty);
2802 
2813 PEXPORT void PICAPI ps_matrix_set_scale_factor(ps_matrix* matrix, float sx, float sy);
2814 
2827 PEXPORT ps_bool PICAPI ps_matrix_get_scale_factor(ps_matrix* matrix, float* sx, float* sy);
2828 
2839 PEXPORT void PICAPI ps_matrix_set_shear_factor(ps_matrix* matrix, float shx, float shy);
2840 
2853 PEXPORT ps_bool PICAPI ps_matrix_get_shear_factor(ps_matrix* matrix, float* shx, float* shy);
2854 
2864 PEXPORT void PICAPI ps_matrix_transform_point(const ps_matrix* matrix, ps_point* point);
2865 
2875 PEXPORT void PICAPI ps_matrix_transform_rect(const ps_matrix* matrix, ps_rect* rect);
2876 
2886 PEXPORT void PICAPI ps_matrix_transform_path(const ps_matrix* matrix, ps_path* path);
2887 
2903 PEXPORT void PICAPI ps_new_path(ps_context* ctx);
2904 
2913 PEXPORT void PICAPI ps_new_sub_path(ps_context* ctx);
2914 
2924 PEXPORT void PICAPI ps_add_sub_path(ps_context* ctx, const ps_path* path);
2925 
2935 PEXPORT void PICAPI ps_set_path(ps_context* ctx, const ps_path* path);
2936 
2948 PEXPORT ps_bool PICAPI ps_get_path(ps_context* ctx, ps_path* path);
2949 
2958 PEXPORT void PICAPI ps_close_path(ps_context* ctx);
2959 
2970 PEXPORT void PICAPI ps_move_to(ps_context* ctx, const ps_point* point);
2971 
2982 PEXPORT void PICAPI ps_line_to(ps_context* ctx, const ps_point* point);
2983 
2997 PEXPORT void PICAPI ps_bezier_curve_to(ps_context* ctx, const ps_point* fcp,
2998  const ps_point* scp, const ps_point* ep);
2999 
3011 PEXPORT void PICAPI ps_quad_curve_to(ps_context* ctx, const ps_point* cp, const ps_point* ep);
3012 
3028 PEXPORT void PICAPI ps_arc(ps_context* ctx, const ps_point* cp, float radius,
3029  float sangle, float eangle, ps_bool clockwise);
3030 
3043 PEXPORT void PICAPI ps_tangent_arc(ps_context* ctx, const ps_rect* rect, float sangle, float sweep);
3044 
3055 PEXPORT void PICAPI ps_rectangle(ps_context* ctx, const ps_rect* rect);
3056 
3076 PEXPORT void PICAPI ps_rounded_rect(ps_context* ctx, const ps_rect* rect, float ltx,
3077  float lty, float rtx, float rty, float lbx, float lby, float rbx, float rby);
3078 
3089 PEXPORT void PICAPI ps_ellipse(ps_context* ctx, const ps_rect* rect);
3090 
3109 PEXPORT ps_path* PICAPI ps_path_create(void);
3110 
3124 PEXPORT ps_path* PICAPI ps_path_create_copy(const ps_path* path);
3125 
3139 PEXPORT ps_path* PICAPI ps_path_ref(ps_path* path);
3140 
3150 PEXPORT void PICAPI ps_path_unref(ps_path* path);
3151 
3162 PEXPORT void PICAPI ps_path_move_to(ps_path* path, const ps_point* point);
3163 
3174 PEXPORT void PICAPI ps_path_line_to(ps_path* path, const ps_point* point);
3175 
3188 PEXPORT void PICAPI ps_path_tangent_arc_to(ps_path* path, float radius,
3189  const ps_point* tp, const ps_point* ep);
3190 
3207 PEXPORT void PICAPI ps_path_arc_to(ps_path* path, float radiusX, float radiusY, float angle,
3208  ps_bool large_arc, ps_bool clockwise, const ps_point* ep);
3209 
3222 PEXPORT void PICAPI ps_path_bezier_to(ps_path* path, const ps_point* fcp,
3223  const ps_point* scp, const ps_point* ep);
3224 
3236 PEXPORT void PICAPI ps_path_quad_to(ps_path* path, const ps_point* cp, const ps_point* ep);
3237 
3246 PEXPORT void PICAPI ps_path_sub_close(ps_path* path);
3247 
3261 PEXPORT float PICAPI ps_path_get_length(const ps_path* path);
3262 
3271 PEXPORT void PICAPI ps_path_clear(ps_path* path);
3272 
3281 PEXPORT ps_bool PICAPI ps_path_is_empty(const ps_path* path);
3282 
3296 PEXPORT unsigned int PICAPI ps_path_get_vertex_count(const ps_path* path);
3297 
3301 typedef enum _ps_path_cmd {
3326 } ps_path_cmd;
3327 
3343 PEXPORT ps_path_cmd PICAPI ps_path_get_vertex(const ps_path* path,
3344  unsigned int index, ps_point* point);
3345 
3359 PEXPORT ps_bool PICAPI ps_path_bounding_rect(const ps_path* path, ps_rect* rect);
3360 
3373 PEXPORT ps_bool PICAPI ps_path_contains(const ps_path* path,
3374  const ps_point* point, ps_fill_rule rule);
3375 
3388 PEXPORT ps_bool PICAPI ps_path_stroke_contains(const ps_path* path,
3389  const ps_point* point, float width);
3390 
3401 PEXPORT void PICAPI ps_path_add_line(ps_path* path, const ps_point* p1, const ps_point* p2);
3402 
3417 PEXPORT void PICAPI ps_path_add_arc(ps_path* path, const ps_point* cp, float radius,
3418  float sangle, float eangle, ps_bool clockwise);
3419 
3429 PEXPORT void PICAPI ps_path_add_rect(ps_path* path, const ps_rect* rect);
3430 
3440 PEXPORT void PICAPI ps_path_add_ellipse(ps_path* path, const ps_rect* rect);
3441 
3460 PEXPORT void PICAPI ps_path_add_rounded_rect(ps_path* path, const ps_rect* rect, float ltx,
3461  float lty, float rtx, float rty, float lbx, float lby, float rbx, float rby);
3462 
3472 PEXPORT void PICAPI ps_path_add_sub_path(ps_path* path, const ps_path* spath);
3473 
3477 typedef enum _ps_path_op {
3495 
3508 PEXPORT void PICAPI ps_path_clipping(ps_path* result, ps_path_operation op,
3509  const ps_path* a, const ps_path* b);
3510 
3514 #ifdef __cplusplus
3515 }
3516 #endif /* __cplusplus */
3517 
3518 #endif /*_PICASSO_H_*/
COMPOSITE_OVERLAY
@ COMPOSITE_OVERLAY
Definition: picasso.h:1538
PATH_OP_INTERSECT
@ PATH_OP_INTERSECT
Definition: picasso.h:3485
_ps_point
A structure that contains a point in a two-dimensional coordinate system.
Definition: picasso.h:202
ps_image_unref
PEXPORT void PICAPI ps_image_unref(ps_image *img)
Decrements the reference count for the image object. If the reference count on the image falls to 0,...
FONT_WEIGHT_MEDIUM
@ FONT_WEIGHT_MEDIUM
Definition: picasso.h:1941
ps_stroke
PEXPORT void PICAPI ps_stroke(ps_context *ctx)
Stroke the current path according to the line attributes. After called, the current path will be clea...
ps_set_composite_operator
PEXPORT ps_composite PICAPI ps_set_composite_operator(ps_context *ctx, ps_composite composite)
Set composites opertaions for graphics context.
ps_context_get_canvas
PEXPORT ps_canvas *PICAPI ps_context_get_canvas(ps_context *ctx)
Get the canvas from the context.
ps_path_contains
PEXPORT ps_bool PICAPI ps_path_contains(const ps_path *path, const ps_point *point, ps_fill_rule rule)
Check whether a point is contained in the path by fill method.
FILTER_NEAREST
@ FILTER_NEAREST
Definition: picasso.h:1600
ps_line_to
PEXPORT void PICAPI ps_line_to(ps_context *ctx, const ps_point *point)
Add a line to the current path from the current point to given point.
TEXT_TYPE_SMOOTH
@ TEXT_TYPE_SMOOTH
Definition: picasso.h:2154
ps_close_path
PEXPORT void PICAPI ps_close_path(ps_context *ctx)
Close the current path in the graphic context.
ps_set_source_gradient
PEXPORT void PICAPI ps_set_source_gradient(ps_context *ctx, const ps_gradient *gradient)
Set a gradient to the context, it is used to fill a graphic object.
ps_font_set_flip
PEXPORT void PICAPI ps_font_set_flip(ps_font *font, ps_bool flip)
Set flip for a font object.
ps_path
struct _ps_path ps_path
An opaque type represents a graphic path.
Definition: picasso.h:151
ps_set_filter
PEXPORT ps_filter PICAPI ps_set_filter(ps_context *ctx, ps_filter filter)
Set interpolation filter for graphic context.
COMPOSITE_DST_OVER
@ COMPOSITE_DST_OVER
Definition: picasso.h:1524
ps_set_line_dash
PEXPORT void PICAPI ps_set_line_dash(ps_context *ctx, float start, const float *dashes, unsigned int num_dashes)
Set the pattern for dashed lines in the context.
ps_image_create_with_data
PEXPORT ps_image *PICAPI ps_image_create_with_data(ps_byte *data, ps_color_format fmt, int width, int height, int pitch)
Create a new image using a given address in memory.
ps_context_unref
PEXPORT void PICAPI ps_context_unref(ps_context *ctx)
Decrements the reference count for the context object. If the reference count on the context falls to...
COLOR_FORMAT_BGR
@ COLOR_FORMAT_BGR
Definition: picasso.h:418
ps_image_create_from_canvas
PEXPORT ps_image *PICAPI ps_image_create_from_canvas(ps_canvas *canvas, const ps_rect *rect)
Create a new image using part of an existing canvas in same pixel buffer.
ps_font_set_weight
PEXPORT void PICAPI ps_font_set_weight(ps_font *font, int weight)
Set weight for a font object.
ps_get_text_extent
PEXPORT ps_bool PICAPI ps_get_text_extent(ps_context *ctx, const void *text, unsigned int length, ps_size *rsize)
Get extent for text using current font which selected to graphic context.
ps_text_type
enum _ps_text_type ps_text_type
Text rendering type.
COMPOSITE_EXCLUSION
@ COMPOSITE_EXCLUSION
Definition: picasso.h:1548
ps_fill_rule
enum _ps_fill_rule ps_fill_rule
Fill rules for graphics.
ps_canvas
struct _ps_canvas ps_canvas
An opaque type represents a pixel buffer.
Definition: picasso.h:116
ps_image
struct _ps_image ps_image
An opaque type represents an image.
Definition: picasso.h:123
ps_paint
PEXPORT void PICAPI ps_paint(ps_context *ctx)
Fill and stroke the current path according to the source and line attributes. After called,...
ps_path_unref
PEXPORT void PICAPI ps_path_unref(ps_path *path)
Decrements the reference count for the path object. If the reference count on the path falls to 0,...
ps_path_quad_to
PEXPORT void PICAPI ps_path_quad_to(ps_path *path, const ps_point *cp, const ps_point *ep)
Add a quadratic bezier spline to the path from current point to end point.
ps_set_miter_limit
PEXPORT float PICAPI ps_set_miter_limit(ps_context *ctx, float limit)
Set the miter limit for the joins of connected lines in a graphics context.
ps_set_alpha
PEXPORT float PICAPI ps_set_alpha(ps_context *ctx, float alpha)
Set the opacity level for objects drawn in graphic context.
ps_set_line_join
PEXPORT void PICAPI ps_set_line_join(ps_context *ctx, ps_line_join line_join)
Set the style for the joins of connected lines in a graphics context.
_ps_rect::y
float y
Definition: picasso.h:192
ps_canvas_create_compatible
PEXPORT ps_canvas *PICAPI ps_canvas_create_compatible(const ps_canvas *canvas, int width, int height)
Create a new canvas to compatible with an existing canvas.
ps_charset
enum _ps_charset ps_charset
Charset for a font.
ps_image_set_allow_transparent
PEXPORT void PICAPI ps_image_set_allow_transparent(ps_image *img, ps_bool allow)
Set whether the image allowed be transparent, False is default.
_ps_text_align
_ps_text_align
Text align mode for drawing text.
Definition: picasso.h:2320
STATUS_DEVICE_ERROR
@ STATUS_DEVICE_ERROR
Definition: picasso.h:282
TEXT_ALIGN_TOP
@ TEXT_ALIGN_TOP
Definition: picasso.h:2328
LINE_INNER_JAG
@ LINE_INNER_JAG
Definition: picasso.h:1311
ps_context_set_canvas
PEXPORT ps_canvas *PICAPI ps_context_set_canvas(ps_context *ctx, ps_canvas *canvas)
Set a new canvas into a context, and return the old one.
ps_image_get_size
PEXPORT ps_bool PICAPI ps_image_get_size(const ps_image *img, ps_size *rsize)
Return the size of the image.
ps_set_source_color
PEXPORT void PICAPI ps_set_source_color(ps_context *ctx, const ps_color *color)
Set a Color to the context, it is used to fill a graphic object.
FILTER_BILINEAR
@ FILTER_BILINEAR
Definition: picasso.h:1604
ps_font_create_copy
PEXPORT ps_font *PICAPI ps_font_create_copy(const ps_font *font)
Create a copy from an existing font object.
COMPOSITE_LUMINOSITY
@ COMPOSITE_LUMINOSITY
Definition: picasso.h:1572
_ps_glyph::glyph
void * glyph
Definition: picasso.h:172
PATH_CMD_STOP
@ PATH_CMD_STOP
Definition: picasso.h:3305
_ps_color::a
float a
Definition: picasso.h:220
LINE_INNER_MITER
@ LINE_INNER_MITER
Definition: picasso.h:1303
ps_set_line_inner_join
PEXPORT void PICAPI ps_set_line_inner_join(ps_context *ctx, ps_line_inner_join line_inner_join)
Set the style for the inner joins of connected lines in a graphics context.
_ps_rect::x
float x
Definition: picasso.h:190
ps_reset_line_dash
PEXPORT void PICAPI ps_reset_line_dash(ps_context *ctx)
Clear the dashs from the context, and set to solid.
ps_gradient_clear_color_stops
PEXPORT void PICAPI ps_gradient_clear_color_stops(ps_gradient *gradient)
Clear color stops from gradient's control vector.
_ps_font_info::leading
float leading
Definition: picasso.h:2104
ps_matrix_get_translate_factor
PEXPORT ps_bool PICAPI ps_matrix_get_translate_factor(ps_matrix *matrix, float *tx, float *ty)
Get the translate factors from the matrix.
ps_matrix_transform_point
PEXPORT void PICAPI ps_matrix_transform_point(const ps_matrix *matrix, ps_point *point)
Transform an existing point using the matrix.
ps_mask_ref
PEXPORT ps_mask *PICAPI ps_mask_ref(ps_mask *mask)
Increases the reference count of the mask by 1.
ps_set_path
PEXPORT void PICAPI ps_set_path(ps_context *ctx, const ps_path *path)
Replace the current path in the graphic context.
_ps_composite
_ps_composite
Compositing operations for graphics context.
Definition: picasso.h:1508
ps_clip_path
PEXPORT void PICAPI ps_clip_path(ps_context *ctx, const ps_path *path, ps_fill_rule rule)
Clipping specified path, using the given fill rule.
ps_canvas_create_with_data
PEXPORT ps_canvas *PICAPI ps_canvas_create_with_data(ps_byte *data, ps_color_format fmt, int width, int height, int pitch)
Create a new canvas using a given address in memory.
ps_mask_add_color_filter
PEXPORT void PICAPI ps_mask_add_color_filter(ps_mask *mask, const ps_color *color)
Add a color filter to a mask.
_ps_glyph
A character glyph of a font.
Definition: picasso.h:170
ps_line_inner_join
enum _ps_line_inner_join ps_line_inner_join
Inner junction types for stroked lines.
ps_identity
PEXPORT void PICAPI ps_identity(ps_context *ctx)
Reset the current transformation matrix to identity matrix.
ps_path_sub_close
PEXPORT void PICAPI ps_path_sub_close(ps_path *path)
Close the sub path, and begin a new one.
ps_font_weight
enum _ps_font_weight ps_font_weight
Font weight.
ps_viewport_to_world
PEXPORT void PICAPI ps_viewport_to_world(ps_context *ctx, ps_point *point)
Transform a coordinate from user space to device space.
TEXT_ALIGN_RIGHT
@ TEXT_ALIGN_RIGHT
Definition: picasso.h:2340
PATH_CMD_MOVE_TO
@ PATH_CMD_MOVE_TO
Definition: picasso.h:3309
COMPOSITE_LIGHTEN
@ COMPOSITE_LIGHTEN
Definition: picasso.h:1536
_ps_filter
_ps_filter
Graphics quality for rendering an image.
Definition: picasso.h:1596
ps_font_set_hint
PEXPORT void PICAPI ps_font_set_hint(ps_font *font, ps_bool hint)
Set hiting for a font object.
ps_rounded_rect
PEXPORT void PICAPI ps_rounded_rect(ps_context *ctx, const ps_rect *rect, float ltx, float lty, float rtx, float rty, float lbx, float lby, float rbx, float rby)
Add a rounded rectangle to the current path.
ps_matrix_get_scale_factor
PEXPORT ps_bool PICAPI ps_matrix_get_scale_factor(ps_matrix *matrix, float *sx, float *sy)
Get the scale factors from the matrix.
_ps_status
_ps_status
Status code return by call ps_last_status function.
Definition: picasso.h:262
COLOR_FORMAT_RGBA
@ COLOR_FORMAT_RGBA
Definition: picasso.h:398
ps_matrix_translate
PEXPORT void PICAPI ps_matrix_translate(ps_matrix *matrix, float tx, float ty)
Modify a matrix by translating.
ps_world_to_viewport
PEXPORT void PICAPI ps_world_to_viewport(ps_context *ctx, ps_point *point)
Transform a coordinate from device space to user space.
COMPOSITE_COLOR
@ COMPOSITE_COLOR
Definition: picasso.h:1570
ps_version
PEXPORT int PICAPI ps_version(void)
Return current version of picasso.
ps_initialize
PEXPORT ps_bool PICAPI ps_initialize(void)
Initialize the picasso drawing environment.
ps_font_info
struct _ps_font_info ps_font_info
A structure that contains font information.
COMPOSITE_DST_IN
@ COMPOSITE_DST_IN
Definition: picasso.h:1526
ps_path_add_line
PEXPORT void PICAPI ps_path_add_line(ps_path *path, const ps_point *p1, const ps_point *p2)
Add a line to the path.
_ps_wrap_type
_ps_wrap_type
Fill type of pattern.
Definition: picasso.h:864
ps_path_bezier_to
PEXPORT void PICAPI ps_path_bezier_to(ps_path *path, const ps_point *fcp, const ps_point *scp, const ps_point *ep)
Add a cubic bezier spline to the path from current point to end point.
TEXT_ALIGN_BOTTOM
@ TEXT_ALIGN_BOTTOM
Definition: picasso.h:2332
COMPOSITE_SRC_OVER
@ COMPOSITE_SRC_OVER
Definition: picasso.h:1514
_ps_draw_text_type
_ps_draw_text_type
Draw mode for rending text.
Definition: picasso.h:2302
ps_set_line_width
PEXPORT float PICAPI ps_set_line_width(ps_context *ctx, float width)
Set the line width for a graphics context.
ps_matrix_scale
PEXPORT void PICAPI ps_matrix_scale(ps_matrix *matrix, float sx, float sy)
Modify a matrix by scaling.
COMPOSITE_INVERT
@ COMPOSITE_INVERT
Definition: picasso.h:1562
DRAW_TEXT_STROKE
@ DRAW_TEXT_STROKE
Definition: picasso.h:2310
FONT_WEIGHT_HEAVY
@ FONT_WEIGHT_HEAVY
Definition: picasso.h:1949
PATH_OP_XOR
@ PATH_OP_XOR
Definition: picasso.h:3489
COMPOSITE_SRC_IN
@ COMPOSITE_SRC_IN
Definition: picasso.h:1516
ps_matrix_create
PEXPORT ps_matrix *PICAPI ps_matrix_create(void)
Create a identity matrix object.
ps_rect
struct _ps_rect ps_rect
A structure that contains location and dimensions of a rectangle.
PATH_CMD_CURVE3
@ PATH_CMD_CURVE3
Definition: picasso.h:3317
STATUS_INVALID_ARGUMENT
@ STATUS_INVALID_ARGUMENT
Definition: picasso.h:274
DRAW_TEXT_BOTH
@ DRAW_TEXT_BOTH
Definition: picasso.h:2314
_ps_path_op
_ps_path_op
Path clipping operations.
Definition: picasso.h:3477
ps_get_matrix
PEXPORT ps_bool PICAPI ps_get_matrix(ps_context *ctx, ps_matrix *matrix)
Get the current transformation matrix from graphic context.
ps_matrix_shear
PEXPORT void PICAPI ps_matrix_shear(ps_matrix *matrix, float shx, float shy)
Modify a matrix by shearing.
ps_glyph
struct _ps_glyph ps_glyph
A character glyph of a font.
ps_wide_text_out_length
PEXPORT void PICAPI ps_wide_text_out_length(ps_context *ctx, float x, float y, const ps_uchar16 *text, unsigned int length)
Draw unicode characters (ucs-2) at location in user space.
LINE_JOIN_MITER_ROUND
@ LINE_JOIN_MITER_ROUND
Definition: picasso.h:1273
ps_uchar16
uint16_t ps_uchar16
16 bit unsigned unicode character
Definition: picasso.h:81
ps_bool
int ps_bool
boolean type
Definition: picasso.h:60
ps_text_align
enum _ps_text_align ps_text_align
Text align mode for drawing text.
ps_set_gamma
PEXPORT float PICAPI ps_set_gamma(ps_context *ctx, float gamma)
Set the gamma value for the graphic context.
_ps_point::y
float y
Definition: picasso.h:206
ps_path_bounding_rect
PEXPORT ps_bool PICAPI ps_path_bounding_rect(const ps_path *path, ps_rect *rect)
Get the bounding rectangle of the path.
_ps_rect::h
float h
Definition: picasso.h:196
STATUS_OUT_OF_MEMORY
@ STATUS_OUT_OF_MEMORY
Definition: picasso.h:270
ps_matrix_transform_rect
PEXPORT void PICAPI ps_matrix_transform_rect(const ps_matrix *matrix, ps_rect *rect)
Transform an existing rectangle using the matrix.
ps_gradient_ref
PEXPORT ps_gradient *PICAPI ps_gradient_ref(ps_gradient *gradient)
Increases the reference count of the gradient by 1.
_ps_font_info::descent
float descent
Definition: picasso.h:2100
COMPOSITE_SOFTLIGHT
@ COMPOSITE_SOFTLIGHT
Definition: picasso.h:1552
PATH_CMD_LINE_TO
@ PATH_CMD_LINE_TO
Definition: picasso.h:3313
ps_draw_text
PEXPORT void PICAPI ps_draw_text(ps_context *ctx, const ps_rect *area, const void *text, unsigned int length, ps_draw_text_type type, ps_text_align align)
Draw text in a rectangle area, using font object which is selected in graphic context.
COMPOSITE_DST_OUT
@ COMPOSITE_DST_OUT
Definition: picasso.h:1528
LINE_JOIN_MITER
@ LINE_JOIN_MITER
Definition: picasso.h:1265
_ps_color
A structure that contains rgba values for a color.
Definition: picasso.h:212
ps_matrix_create_init
PEXPORT ps_matrix *PICAPI ps_matrix_create_init(float sx, float shy, float shx, float sy, float tx, float ty)
Create a matrix with given parameters.
ps_matrix_flip_y
PEXPORT void PICAPI ps_matrix_flip_y(ps_matrix *matrix)
Flip a matrix in the vertical direction.
LINE_INNER_BEVEL
@ LINE_INNER_BEVEL
Definition: picasso.h:1307
ps_text_out_length
PEXPORT void PICAPI ps_text_out_length(ps_context *ctx, float x, float y, const char *text, unsigned int length)
Draw single byte characters (latin-1) at location in user space.
ps_scissor_rect
PEXPORT void PICAPI ps_scissor_rect(ps_context *ctx, const ps_rect *rect)
The fast way to clipping specified rectangle, the clip rect can not be transformed by world matrix.
PATH_CMD_CURVE4
@ PATH_CMD_CURVE4
Definition: picasso.h:3321
ps_rotate
PEXPORT void PICAPI ps_rotate(ps_context *ctx, float angle)
Rotates the user coordinate system in graphic context.
LINE_CAP_ROUND
@ LINE_CAP_ROUND
Definition: picasso.h:1239
ps_set_line_cap
PEXPORT void PICAPI ps_set_line_cap(ps_context *ctx, ps_line_cap line_cap)
Set the style for the endpoint of lines in a graphics context.
_ps_fill_rule
_ps_fill_rule
Fill rules for graphics.
Definition: picasso.h:1642
ps_matrix_invert
PEXPORT void PICAPI ps_matrix_invert(ps_matrix *matrix)
Modify a matrix by inverting.
COMPOSITE_DODGE
@ COMPOSITE_DODGE
Definition: picasso.h:1558
_ps_font_weight
_ps_font_weight
Font weight.
Definition: picasso.h:1933
ps_fill
PEXPORT void PICAPI ps_fill(ps_context *ctx)
Fill the current path according to the source attributes. After called, the current path will be clea...
ps_wrap_type
enum _ps_wrap_type ps_wrap_type
Fill type of pattern.
COMPOSITE_BURN
@ COMPOSITE_BURN
Definition: picasso.h:1556
ps_context_ref
PEXPORT ps_context *PICAPI ps_context_ref(ps_context *ctx)
Increases the reference count of the context by 1.
CHARSET_ANSI
@ CHARSET_ANSI
Definition: picasso.h:1923
FILTER_BICUBIC
@ FILTER_BICUBIC
Definition: picasso.h:1612
LINE_JOIN_MITER_REVERT
@ LINE_JOIN_MITER_REVERT
Definition: picasso.h:1269
ps_mask_unref
PEXPORT void PICAPI ps_mask_unref(ps_mask *mask)
Decrements the reference count for the mask object. If the reference count on the mask falls to 0,...
ps_set_source_image
PEXPORT void PICAPI ps_set_source_image(ps_context *ctx, const ps_image *image)
Set a image to the context, it is used to fill a graphic object.
ps_matrix_get_shear_factor
PEXPORT ps_bool PICAPI ps_matrix_get_shear_factor(ps_matrix *matrix, float *shx, float *shy)
Get the shear factors from the matrix.
ps_set_stroke_canvas
PEXPORT void PICAPI ps_set_stroke_canvas(ps_context *ctx, const ps_canvas *canvas)
Set a canvas to the context, it is used to stroke a graphic object.
ps_path_add_rounded_rect
PEXPORT void PICAPI ps_path_add_rounded_rect(ps_path *path, const ps_rect *rect, float ltx, float lty, float rtx, float rty, float lbx, float lby, float rbx, float rby)
Add a rounded rectangle to the path.
ps_canvas_create_from_image
PEXPORT ps_canvas *PICAPI ps_canvas_create_from_image(ps_image *img, const ps_rect *rect)
Create a new canvas using part of an existing ps_image object in same pixel buffer.
FILTER_QUADRIC
@ FILTER_QUADRIC
Definition: picasso.h:1616
ps_matrix_rotate
PEXPORT void PICAPI ps_matrix_rotate(ps_matrix *matrix, float angle)
Modify a matrix by rotating.
ps_text_transform
PEXPORT void PICAPI ps_text_transform(ps_context *ctx, const ps_matrix *matrix)
Transform text matrix for the graphic context. The text matrix is not a part of graphic state – savin...
ps_set_fill_rule
PEXPORT ps_fill_rule PICAPI ps_set_fill_rule(ps_context *ctx, ps_fill_rule rule)
Set fill rule for graphic context.
ps_set_stroke_gradient
PEXPORT void PICAPI ps_set_stroke_gradient(ps_context *ctx, const ps_gradient *gradient)
Set a gradient to the context, it is used to stroke a graphic object.
GRADIENT_SPREAD_REPEAT
@ GRADIENT_SPREAD_REPEAT
Definition: picasso.h:950
ps_set_source_canvas
PEXPORT void PICAPI ps_set_source_canvas(ps_context *ctx, const ps_canvas *canvas)
Set a canvas to the context, it is used to fill a graphic object.
_ps_charset
_ps_charset
Charset for a font.
Definition: picasso.h:1919
ps_path_arc_to
PEXPORT void PICAPI ps_path_arc_to(ps_path *path, float radiusX, float radiusY, float angle, ps_bool large_arc, ps_bool clockwise, const ps_point *ep)
Add an arc to the path, using radius, angle and end point.
_ps_font_info::ascent
float ascent
Definition: picasso.h:2096
COMPOSITE_MINUS
@ COMPOSITE_MINUS
Definition: picasso.h:1546
COMPOSITE_ERROR
@ COMPOSITE_ERROR
Definition: picasso.h:1574
COLOR_FORMAT_UNKNOWN
@ COLOR_FORMAT_UNKNOWN
Definition: picasso.h:430
ps_new_sub_path
PEXPORT void PICAPI ps_new_sub_path(ps_context *ctx)
Close the current path, and add a new empty sub path in the graphic context.
PATH_OP_DIFF
@ PATH_OP_DIFF
Definition: picasso.h:3493
ps_add_sub_path
PEXPORT void PICAPI ps_add_sub_path(ps_context *ctx, const ps_path *path)
Add a new sub path to current path in the graphic context.
ps_matrix_set_translate_factor
PEXPORT void PICAPI ps_matrix_set_translate_factor(ps_matrix *matrix, float tx, float ty)
Set the translate factors to the matrix.
ps_set_text_color
PEXPORT void PICAPI ps_set_text_color(ps_context *ctx, const ps_color *color)
Set the text fill color for the graphic context.
ps_matrix
struct _ps_matrix ps_matrix
An opaque type represents a transform matrix.
Definition: picasso.h:144
ps_tangent_arc
PEXPORT void PICAPI ps_tangent_arc(ps_context *ctx, const ps_rect *rect, float sangle, float sweep)
Add a circular arc which is inner tangent from a rectangle.
ps_gradient_create_linear
PEXPORT ps_gradient *PICAPI ps_gradient_create_linear(ps_gradient_spread spread, const ps_point *start, const ps_point *end)
Create a new gradient that varies along the line defined by provided starting and ending points.
ps_path_operation
enum _ps_path_op ps_path_operation
Path clipping operations.
ps_clear
PEXPORT void PICAPI ps_clear(ps_context *ctx)
Clear the current context with source color.
STATUS_NOT_SUPPORT
@ STATUS_NOT_SUPPORT
Definition: picasso.h:278
ps_matrix_unref
PEXPORT void PICAPI ps_matrix_unref(ps_matrix *matrix)
Decrements the reference count for the matrix object. If the reference count on the matrix falls to 0...
ps_matrix_create_copy
PEXPORT ps_matrix *PICAPI ps_matrix_create_copy(const ps_matrix *matrix)
Create a matrix copy from an exist one.
_ps_line_join
_ps_line_join
Junction types for stroked lines.
Definition: picasso.h:1261
ps_path_add_rect
PEXPORT void PICAPI ps_path_add_rect(ps_path *path, const ps_rect *rect)
Add a rectangle to the path.
ps_clip_rect
PEXPORT void PICAPI ps_clip_rect(ps_context *ctx, const ps_rect *rect)
Clipping specified rectangle.
ps_shear
PEXPORT void PICAPI ps_shear(ps_context *ctx, float shx, float shy)
Changes the shear of the user coordinate system in graphic context.
ps_get_path
PEXPORT ps_bool PICAPI ps_get_path(ps_context *ctx, ps_path *path)
Get the current path in the graphic context.
ps_path_add_ellipse
PEXPORT void PICAPI ps_path_add_ellipse(ps_path *path, const ps_rect *rect)
Add an ellipse to the path.
COMPOSITE_INVERT_BLEND
@ COMPOSITE_INVERT_BLEND
Definition: picasso.h:1564
ps_path_tangent_arc_to
PEXPORT void PICAPI ps_path_tangent_arc_to(ps_path *path, float radius, const ps_point *tp, const ps_point *ep)
Add an arc to the path which tangent at two line.
ps_pattern
struct _ps_pattern ps_pattern
An opaque type represents a pattern.
Definition: picasso.h:130
FONT_WEIGHT_REGULAR
@ FONT_WEIGHT_REGULAR
Definition: picasso.h:1937
FILL_RULE_EVEN_ODD
@ FILL_RULE_EVEN_ODD
Definition: picasso.h:1650
ps_image_ref
PEXPORT ps_image *PICAPI ps_image_ref(ps_image *img)
Increases the reference count of the image by 1.
ps_canvas_ref
PEXPORT ps_canvas *PICAPI ps_canvas_ref(ps_canvas *canvas)
Increases the reference count of the canvas by 1.
ps_set_shadow
PEXPORT void PICAPI ps_set_shadow(ps_context *ctx, float x_offset, float y_offset, float blur)
Enables shadowing in a context.
COLOR_FORMAT_RGB565
@ COLOR_FORMAT_RGB565
Definition: picasso.h:422
_ps_font_info
A structure that contains font information.
Definition: picasso.h:2088
_ps_font_info::size
float size
Definition: picasso.h:2092
ps_gradient_create_radial
PEXPORT ps_gradient *PICAPI ps_gradient_create_radial(ps_gradient_spread spread, const ps_point *start, float sradius, const ps_point *end, float eradius)
Create a new gradient that varies along the area defined by provided starting and ending circles.
COLOR_FORMAT_RGB
@ COLOR_FORMAT_RGB
Definition: picasso.h:414
ps_glyph_get_extent
PEXPORT ps_bool PICAPI ps_glyph_get_extent(const ps_glyph *glyph, ps_size *rsize)
Get extent for a glyph object.
_ps_line_cap
_ps_line_cap
Styles for rendering the endpoint of a stroked line.
Definition: picasso.h:1231
COMPOSITE_CLEAR
@ COMPOSITE_CLEAR
Definition: picasso.h:1510
_ps_line_inner_join
_ps_line_inner_join
Inner junction types for stroked lines.
Definition: picasso.h:1299
ps_matrix_ref
PEXPORT ps_matrix *PICAPI ps_matrix_ref(ps_matrix *matrix)
Increases the reference count of the matrix by 1.
ps_path_move_to
PEXPORT void PICAPI ps_path_move_to(ps_path *path, const ps_point *point)
Begin a new sub path, and set the current point in the path.
ps_color
struct _ps_color ps_color
A structure that contains rgba values for a color.
ps_reset_clip
PEXPORT void PICAPI ps_reset_clip(ps_context *ctx)
Clear the clipping area from the context.
ps_matrix_set_shear_factor
PEXPORT void PICAPI ps_matrix_set_shear_factor(ps_matrix *matrix, float shx, float shy)
Set the shear factors to the matrix.
ps_pattern_unref
PEXPORT void PICAPI ps_pattern_unref(ps_pattern *pattern)
Decrements the reference count for the pattern object. If the reference count on the pattern falls to...
ps_path_get_length
PEXPORT float PICAPI ps_path_get_length(const ps_path *path)
Return The length of the path.
ps_font
struct _ps_font ps_font
An opaque type represents a font.
Definition: picasso.h:165
ps_matrix_get_determinant
PEXPORT float PICAPI ps_matrix_get_determinant(const ps_matrix *matrix)
Return the determinant from a matrix.
ps_image_create_from_image
PEXPORT ps_image *PICAPI ps_image_create_from_image(ps_image *img, const ps_rect *rect)
Create a new image using part of an existing ps_image object in same pixel buffer.
ps_mask_create_with_data
PEXPORT ps_mask *PICAPI ps_mask_create_with_data(ps_byte *data, int width, int height)
Create a new mask using a given data block.
ps_font_set_italic
PEXPORT void PICAPI ps_font_set_italic(ps_font *font, ps_bool italic)
Set italic for a font object.
ps_canvas_create
PEXPORT ps_canvas *PICAPI ps_canvas_create(ps_color_format fmt, int width, int height)
Create a new canvas using the given parameters.
ps_mask
struct _ps_mask ps_mask
An opaque type represents an alpha mask.
Definition: picasso.h:158
ps_point
struct _ps_point ps_point
A structure that contains a point in a two-dimensional coordinate system.
ps_set_blur
PEXPORT float PICAPI ps_set_blur(ps_context *ctx, float blur)
Set the blur level for the graphic context.
CHARSET_UNICODE
@ CHARSET_UNICODE
Definition: picasso.h:1927
COMPOSITE_HUE
@ COMPOSITE_HUE
Definition: picasso.h:1566
COMPOSITE_DST_ATOP
@ COMPOSITE_DST_ATOP
Definition: picasso.h:1530
ps_canvas_set_mask
PEXPORT void PICAPI ps_canvas_set_mask(ps_canvas *canvas, const ps_mask *mask)
Set a new mask into an existing canvas object.
ps_path_clipping
PEXPORT void PICAPI ps_path_clipping(ps_path *result, ps_path_operation op, const ps_path *a, const ps_path *b)
Clipping two path with the operation and get the result path.
ps_set_text_stroke_color
PEXPORT void PICAPI ps_set_text_stroke_color(ps_context *ctx, const ps_color *color)
Set the text stroke color for the graphic context.
_ps_rect
A structure that contains location and dimensions of a rectangle.
Definition: picasso.h:188
FILL_RULE_ERROR
@ FILL_RULE_ERROR
Definition: picasso.h:1654
GRADIENT_SPREAD_PAD
@ GRADIENT_SPREAD_PAD
Definition: picasso.h:946
ps_path_create
PEXPORT ps_path *PICAPI ps_path_create(void)
Create a new empty path object.
ps_canvas_unref
PEXPORT void PICAPI ps_canvas_unref(ps_canvas *canvas)
Decrements the reference count for the canvas object. If the reference count on the canvas falls to 0...
ps_path_add_sub_path
PEXPORT void PICAPI ps_path_add_sub_path(ps_path *path, const ps_path *spath)
Add an sub path to the path.
GRADIENT_SPREAD_REFLECT
@ GRADIENT_SPREAD_REFLECT
Definition: picasso.h:954
ps_image_create_compatible
PEXPORT ps_image *PICAPI ps_image_create_compatible(const ps_canvas *canvas, int width, int height)
Create a new image to compatible with an existing canvas.
ps_matrix_transform_path
PEXPORT void PICAPI ps_matrix_transform_path(const ps_matrix *matrix, ps_path *path)
Transform an existing path using the matrix.
ps_set_text_render_type
PEXPORT void PICAPI ps_set_text_render_type(ps_context *ctx, ps_text_type type)
Set rendering type for text.
ps_gradient_transform
PEXPORT void PICAPI ps_gradient_transform(ps_gradient *gradient, const ps_matrix *matrix)
Transform the gradient object.
_ps_font_info::unitsEM
unsigned int unitsEM
Definition: picasso.h:2108
LINE_JOIN_BEVEL
@ LINE_JOIN_BEVEL
Definition: picasso.h:1281
ps_new_path
PEXPORT void PICAPI ps_new_path(ps_context *ctx)
Create a new empty path in the graphic context, clear the old one.
ps_set_stroke_color
PEXPORT void PICAPI ps_set_stroke_color(ps_context *ctx, const ps_color *color)
Set a color to the context, it is used to stroke a graphic object.
ps_status
enum _ps_status ps_status
Status code return by call ps_last_status function.
ps_canvas_get_format
PEXPORT ps_color_format PICAPI ps_canvas_get_format(const ps_canvas *canvas)
Return the pixel format of the canvas.
ps_set_text_matrix
PEXPORT void PICAPI ps_set_text_matrix(ps_context *ctx, const ps_matrix *matrix)
Set text matrix for the graphic context. The text matrix is not a part of graphic state – saving and ...
TEXT_TYPE_MONO
@ TEXT_TYPE_MONO
Definition: picasso.h:2158
ps_pattern_create_image
PEXPORT ps_pattern *PICAPI ps_pattern_create_image(const ps_image *img, ps_wrap_type x_wrap, ps_wrap_type y_wrap, const ps_matrix *transform)
Create a new pattern with an existing image.
TEXT_ALIGN_CENTER
@ TEXT_ALIGN_CENTER
Definition: picasso.h:2324
COMPOSITE_SATURATION
@ COMPOSITE_SATURATION
Definition: picasso.h:1568
COMPOSITE_SRC_OUT
@ COMPOSITE_SRC_OUT
Definition: picasso.h:1518
ps_canvas_replace_data
PEXPORT ps_canvas *PICAPI ps_canvas_replace_data(ps_canvas *canvas, ps_byte *data, ps_color_format fmt, int width, int height, int pitch)
Replace a canvas target rendering buffer address in memory, which is only use for canvas create by ps...
ps_move_to
PEXPORT void PICAPI ps_move_to(ps_context *ctx, const ps_point *point)
Begin a new sub path, and set the current point.
ps_matrix_identity
PEXPORT void PICAPI ps_matrix_identity(ps_matrix *matrix)
Reset a matrix to identity matrix.
ps_set_antialias
PEXPORT void PICAPI ps_set_antialias(ps_context *ctx, ps_bool antialias)
Set whether the Anti-aliasing should be turn on.
ps_set_shadow_color
PEXPORT void PICAPI ps_set_shadow_color(ps_context *ctx, const ps_color *color)
Set the color of shadow. Default is a black color with 1/3 alpha.
ps_line_join
enum _ps_line_join ps_line_join
Junction types for stroked lines.
ps_path_create_copy
PEXPORT ps_path *PICAPI ps_path_create_copy(const ps_path *path)
Create a copy from an existing path object.
LINE_INNER_ROUND
@ LINE_INNER_ROUND
Definition: picasso.h:1315
ps_gradient
struct _ps_gradient ps_gradient
An opaque type represents a gradient.
Definition: picasso.h:137
ps_context_create
PEXPORT ps_context *PICAPI ps_context_create(ps_canvas *canvas, ps_context *shared_context)
Create a new graphic context for a canvas.
COLOR_FORMAT_ABGR
@ COLOR_FORMAT_ABGR
Definition: picasso.h:406
ps_image_set_transparent_color
PEXPORT void PICAPI ps_image_set_transparent_color(ps_image *img, const ps_color *color)
Set the transparent color for the image.
ps_shutdown
PEXPORT void PICAPI ps_shutdown(void)
Shutdown the picasso drawing environment.
_ps_gradient_spread
_ps_gradient_spread
Fill type of outside the gradient area.
Definition: picasso.h:942
ps_get_font_info
PEXPORT ps_bool PICAPI ps_get_font_info(ps_context *ctx, ps_font_info *info)
Return the font information from the graphics context.
ps_matrix_is_identity
PEXPORT ps_bool PICAPI ps_matrix_is_identity(const ps_matrix *matrix)
Checks whether the matrix is the identity transform matrix.
ps_set_stroke_pattern
PEXPORT void PICAPI ps_set_stroke_pattern(ps_context *ctx, const ps_pattern *pattern)
Set a pattern to the context, it is used to stroke a graphic object.
LINE_CAP_SQUARE
@ LINE_CAP_SQUARE
Definition: picasso.h:1243
ps_set_source_pattern
PEXPORT void PICAPI ps_set_source_pattern(ps_context *ctx, const ps_pattern *pattern)
Set a pattern to the context, it is used to fill a graphic object.
_ps_size::w
float w
Definition: picasso.h:180
ps_draw_text_type
enum _ps_draw_text_type ps_draw_text_type
Draw mode for rending text.
ps_show_glyphs
PEXPORT void PICAPI ps_show_glyphs(ps_context *ctx, float x, float y, ps_glyph *glyphs, unsigned int length)
Draw an array of glyphs at location in user space.
ps_arc
PEXPORT void PICAPI ps_arc(ps_context *ctx, const ps_point *cp, float radius, float sangle, float eangle, ps_bool clockwise)
Add a circular arc to the current path.
STATUS_MISMATCHING_FORMAT
@ STATUS_MISMATCHING_FORMAT
Definition: picasso.h:286
FONT_WEIGHT_BOLD
@ FONT_WEIGHT_BOLD
Definition: picasso.h:1945
COMPOSITE_XOR
@ COMPOSITE_XOR
Definition: picasso.h:1532
STATUS_UNKNOWN_ERROR
@ STATUS_UNKNOWN_ERROR
Definition: picasso.h:290
_ps_text_type
_ps_text_type
Text rendering type.
Definition: picasso.h:2150
COMPOSITE_PLUS
@ COMPOSITE_PLUS
Definition: picasso.h:1544
ps_matrix_is_equal
PEXPORT ps_bool PICAPI ps_matrix_is_equal(const ps_matrix *a, const ps_matrix *b)
Checks whether two matrix are equal.
ps_byte
uint8_t ps_byte
byte data type
Definition: picasso.h:95
COMPOSITE_SRC
@ COMPOSITE_SRC
Definition: picasso.h:1512
ps_pattern_ref
PEXPORT ps_pattern *PICAPI ps_pattern_ref(ps_pattern *pattern)
Increases the reference count of the pattern by 1.
ps_reset_shadow
PEXPORT void PICAPI ps_reset_shadow(ps_context *ctx)
Disables shadowing in a context.
ps_font_ref
PEXPORT ps_font *PICAPI ps_font_ref(ps_font *font)
Increases the reference count of the font by 1.
ps_canvas_bitblt
PEXPORT void PICAPI ps_canvas_bitblt(ps_canvas *src, const ps_rect *rect, ps_canvas *dst, const ps_point *location)
Copy raster data between two canvas objects.
FILTER_UNKNOWN
@ FILTER_UNKNOWN
Definition: picasso.h:1620
COMPOSITE_DST
@ COMPOSITE_DST
Definition: picasso.h:1522
FILTER_GAUSSIAN
@ FILTER_GAUSSIAN
Definition: picasso.h:1608
ps_mask_clear_color_filters
PEXPORT void PICAPI ps_mask_clear_color_filters(ps_mask *mask)
Clear all colors from mask's filter.
COMPOSITE_DARKEN
@ COMPOSITE_DARKEN
Definition: picasso.h:1534
ps_set_stroke_image
PEXPORT void PICAPI ps_set_stroke_image(ps_context *ctx, const ps_image *image)
Set a image to the context, it is used to stroke a graphic object.
ps_clip_rects
PEXPORT void PICAPI ps_clip_rects(ps_context *ctx, const ps_rect *rects, unsigned int num_rects)
Clipping specified area defined by an array of rectangles.
COLOR_FORMAT_RGB555
@ COLOR_FORMAT_RGB555
Definition: picasso.h:426
ps_matrix_init
PEXPORT void PICAPI ps_matrix_init(ps_matrix *matrix, float sx, float shy, float shx, float sy, float tx, float ty)
Initialize an existing matrix object with given parameters.
ps_last_status
PEXPORT ps_status PICAPI ps_last_status(void)
Return the last status code of picasso.
COMPOSITE_DIFFERENCE
@ COMPOSITE_DIFFERENCE
Definition: picasso.h:1550
ps_gradient_add_color_stop
PEXPORT void PICAPI ps_gradient_add_color_stop(ps_gradient *gradient, float offset, const ps_color *color)
Add a color stop to a gradient. The offset specifies the location along the gradient's control vector...
TEXT_TYPE_STROKE
@ TEXT_TYPE_STROKE
Definition: picasso.h:2162
ps_path_get_vertex
PEXPORT ps_path_cmd PICAPI ps_path_get_vertex(const ps_path *path, unsigned int index, ps_point *point)
Get a vertex from the path by index, and return the vertex command.
ps_quad_curve_to
PEXPORT void PICAPI ps_quad_curve_to(ps_context *ctx, const ps_point *cp, const ps_point *ep)
Add a quadratic bezier spline to the current path from current point to end point.
_ps_path_cmd
_ps_path_cmd
Path command for vertices.
Definition: picasso.h:3301
ps_set_matrix
PEXPORT void PICAPI ps_set_matrix(ps_context *ctx, const ps_matrix *matrix)
Modifies the current transformation matrix to the given matrix.
ps_font_create
PEXPORT ps_font *PICAPI ps_font_create(const char *name, ps_charset charset, float size, int weight, ps_bool italic)
Create a font object using the given parameters.
ps_context
struct _ps_context ps_context
An opaque type represents a Picasso drawing environment.
Definition: picasso.h:109
PATH_OP_UNION
@ PATH_OP_UNION
Definition: picasso.h:3481
ps_ellipse
PEXPORT void PICAPI ps_ellipse(ps_context *ctx, const ps_rect *rect)
Adds an ellipse to the current path which fits inside the specified rectangle.
ps_image_create_from_data
PEXPORT ps_image *PICAPI ps_image_create_from_data(ps_byte *data, ps_color_format fmt, int width, int height, int pitch)
Create a new image using a copy of given address in memory.
ps_save
PEXPORT void PICAPI ps_save(ps_context *ctx)
Pushes a copy of the current graphics state on to stack for context.
ps_path_add_arc
PEXPORT void PICAPI ps_path_add_arc(ps_path *path, const ps_point *cp, float radius, float sangle, float eangle, ps_bool clockwise)
Add a arc to the path.
DRAW_TEXT_FILL
@ DRAW_TEXT_FILL
Definition: picasso.h:2306
ps_clip
PEXPORT void PICAPI ps_clip(ps_context *ctx)
Clipping the current path, using the current fill rule. After called, the current path will be cleare...
ps_get_path_from_glyph
PEXPORT ps_bool PICAPI ps_get_path_from_glyph(ps_context *ctx, const ps_glyph *glyph, ps_path *path)
Get the path from a given glyph object.
ps_scale
PEXPORT void PICAPI ps_scale(ps_context *ctx, float sx, float sy)
Changes the scale of the user coordinate system in graphic context.
ps_gradient_unref
PEXPORT void PICAPI ps_gradient_unref(ps_gradient *gradient)
Decrements the reference count for the gradient object. If the reference count on the gradient falls ...
LINE_JOIN_ROUND
@ LINE_JOIN_ROUND
Definition: picasso.h:1277
TEXT_ALIGN_LEFT
@ TEXT_ALIGN_LEFT
Definition: picasso.h:2336
ps_path_ref
PEXPORT ps_path *PICAPI ps_path_ref(ps_path *path)
Increases the reference count of the path by 1.
STATUS_SUCCEED
@ STATUS_SUCCEED
Definition: picasso.h:266
_ps_point::x
float x
Definition: picasso.h:204
ps_path_cmd
enum _ps_path_cmd ps_path_cmd
Path command for vertices.
ps_image_create
PEXPORT ps_image *PICAPI ps_image_create(ps_color_format fmt, int width, int height)
Create a new image using the given parameters.
ps_size
struct _ps_size ps_size
A structure that contains width and height values.
ps_transform
PEXPORT void PICAPI ps_transform(ps_context *ctx, const ps_matrix *matrix)
Transforms the user coordinate system in graphic context using a specified matrix.
WRAP_TYPE_REPEAT
@ WRAP_TYPE_REPEAT
Definition: picasso.h:868
ps_rectangle
PEXPORT void PICAPI ps_rectangle(ps_context *ctx, const ps_rect *rect)
Add a rectangle to the current path.
ps_set_text_antialias
PEXPORT void PICAPI ps_set_text_antialias(ps_context *ctx, ps_bool antialias)
Set whether the font allowed be anti-aliasing.
ps_font_set_charset
PEXPORT void PICAPI ps_font_set_charset(ps_font *font, ps_charset charset)
Set charset for a font object.
COMPOSITE_CONTRAST
@ COMPOSITE_CONTRAST
Definition: picasso.h:1560
ps_path_stroke_contains
PEXPORT ps_bool PICAPI ps_path_stroke_contains(const ps_path *path, const ps_point *point, float width)
Check whether a point is contained in the path by stroke method.
ps_set_font
PEXPORT ps_font *PICAPI ps_set_font(ps_context *ctx, const ps_font *font)
Set a new font to graphics context.
WRAP_TYPE_REFLECT
@ WRAP_TYPE_REFLECT
Definition: picasso.h:872
COMPOSITE_HARDLIGHT
@ COMPOSITE_HARDLIGHT
Definition: picasso.h:1554
ps_schar16
int16_t ps_schar16
16 bit signed unicode character
Definition: picasso.h:88
ps_line_cap
enum _ps_line_cap ps_line_cap
Styles for rendering the endpoint of a stroked line.
ps_canvas_get_size
PEXPORT ps_bool PICAPI ps_canvas_get_size(const ps_canvas *canvas, ps_size *rsize)
Return the size of the canvas.
ps_composite
enum _ps_composite ps_composite
Compositing operations for graphics context.
_ps_color::r
float r
Definition: picasso.h:214
_ps_size
A structure that contains width and height values.
Definition: picasso.h:178
ps_path_get_vertex_count
PEXPORT unsigned int PICAPI ps_path_get_vertex_count(const ps_path *path)
Return the count of vertices in the path.
ps_gradient_create_conic
PEXPORT ps_gradient *PICAPI ps_gradient_create_conic(ps_gradient_spread spread, const ps_point *origin, float sangle)
Create a new gradient that varies along the area defined by provided concentric circles.
ps_matrix_multiply
PEXPORT void PICAPI ps_matrix_multiply(ps_matrix *result, const ps_matrix *a, const ps_matrix *b)
Multiplies the matrix in a and b together and stores the result in result.
ps_font_set_size
PEXPORT void PICAPI ps_font_set_size(ps_font *font, float size)
Set size for a font object.
ps_canvas_create_from_canvas
PEXPORT ps_canvas *PICAPI ps_canvas_create_from_canvas(ps_canvas *canvas, const ps_rect *rect)
Create a new canvas using part of an existing canvas in same pixel buffer.
ps_font_unref
PEXPORT void PICAPI ps_font_unref(ps_font *font)
Decrements the reference count for the font object. If the reference count on the font falls to 0,...
_ps_rect::w
float w
Definition: picasso.h:194
ps_image_get_format
PEXPORT ps_color_format PICAPI ps_image_get_format(const ps_image *img)
Return the pixel format of the image.
COLOR_FORMAT_ARGB
@ COLOR_FORMAT_ARGB
Definition: picasso.h:402
_ps_color_format
_ps_color_format
Pixel formats of canvas or image.
Definition: picasso.h:394
FILL_RULE_WINDING
@ FILL_RULE_WINDING
Definition: picasso.h:1646
COMPOSITE_MULTIPLY
@ COMPOSITE_MULTIPLY
Definition: picasso.h:1542
PATH_CMD_END_POLY
@ PATH_CMD_END_POLY
Definition: picasso.h:3325
_ps_size::h
float h
Definition: picasso.h:182
ps_filter
enum _ps_filter ps_filter
Graphics quality for rendering an image.
ps_matrix_flip_x
PEXPORT void PICAPI ps_matrix_flip_x(ps_matrix *matrix)
Flip a matrix in the horizontal direction.
ps_matrix_set_scale_factor
PEXPORT void PICAPI ps_matrix_set_scale_factor(ps_matrix *matrix, float sx, float sy)
Set the scale factors to the matrix.
ps_set_text_kerning
PEXPORT void PICAPI ps_set_text_kerning(ps_context *ctx, ps_bool kerning)
Set whether the font auto kerning is allowed.
COMPOSITE_SRC_ATOP
@ COMPOSITE_SRC_ATOP
Definition: picasso.h:1520
ps_gradient_spread
enum _ps_gradient_spread ps_gradient_spread
Fill type of outside the gradient area.
ps_restore
PEXPORT void PICAPI ps_restore(ps_context *ctx)
Set the current graphics state to the state most recently saved.
ps_canvas_reset_mask
PEXPORT void PICAPI ps_canvas_reset_mask(ps_canvas *canvas)
Clear the mask from the canvas object.
_ps_color::b
float b
Definition: picasso.h:218
ps_bezier_curve_to
PEXPORT void PICAPI ps_bezier_curve_to(ps_context *ctx, const ps_point *fcp, const ps_point *scp, const ps_point *ep)
Add a cubic bezier spline to the current path from current point to end point.
_ps_color::g
float g
Definition: picasso.h:216
LINE_CAP_BUTT
@ LINE_CAP_BUTT
Definition: picasso.h:1235
COLOR_FORMAT_BGRA
@ COLOR_FORMAT_BGRA
Definition: picasso.h:410
ps_translate
PEXPORT void PICAPI ps_translate(ps_context *ctx, float tx, float ty)
Changes the origin of the user coordinate system in graphic context.
ps_get_glyph
PEXPORT ps_bool PICAPI ps_get_glyph(ps_context *ctx, int ch, ps_glyph *glyph)
Get the glyph from a given character, using font object which is selected in graphic context.
ps_path_is_empty
PEXPORT ps_bool PICAPI ps_path_is_empty(const ps_path *path)
Checks whether the path is empty.
ps_path_line_to
PEXPORT void PICAPI ps_path_line_to(ps_path *path, const ps_point *point)
Add a line to the path from the current point to given point.
ps_color_format
enum _ps_color_format ps_color_format
Pixel formats of canvas or image.
COMPOSITE_SCREEN
@ COMPOSITE_SCREEN
Definition: picasso.h:1540
ps_path_clear
PEXPORT void PICAPI ps_path_clear(ps_path *path)
Clear the path to empty.
ps_pattern_transform
PEXPORT void PICAPI ps_pattern_transform(ps_pattern *pattern, const ps_matrix *matrix)
Transform the pattern object.