Picasso API  2.8
Data Structures | Macros | Typedefs | Enumerations | Functions
picasso.h File Reference
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  _ps_glyph
 A character glyph of a font. More...
 
struct  _ps_size
 A structure that contains width and height values. More...
 
struct  _ps_rect
 A structure that contains location and dimensions of a rectangle. More...
 
struct  _ps_point
 A structure that contains a point in a two-dimensional coordinate system. More...
 
struct  _ps_color
 A structure that contains rgba values for a color. More...
 
struct  _ps_font_info
 A structure that contains font information. More...
 

Macros

#define True   1
 define true value More...
 
#define False   0
 define false value More...
 

Typedefs

typedef int ps_bool
 boolean type More...
 
typedef uint16_t ps_uchar16
 16 bit unsigned unicode character More...
 
typedef int16_t ps_schar16
 16 bit signed unicode character More...
 
typedef uint8_t ps_byte
 byte data type More...
 
typedef struct _ps_context ps_context
 An opaque type represents a Picasso drawing environment. More...
 
typedef struct _ps_canvas ps_canvas
 An opaque type represents a pixel buffer. More...
 
typedef struct _ps_image ps_image
 An opaque type represents an image. More...
 
typedef struct _ps_pattern ps_pattern
 An opaque type represents a pattern. More...
 
typedef struct _ps_gradient ps_gradient
 An opaque type represents a gradient. More...
 
typedef struct _ps_matrix ps_matrix
 An opaque type represents a transform matrix. More...
 
typedef struct _ps_path ps_path
 An opaque type represents a graphic path. More...
 
typedef struct _ps_mask ps_mask
 An opaque type represents an alpha mask. More...
 
typedef struct _ps_font ps_font
 An opaque type represents a font. More...
 
typedef struct _ps_glyph ps_glyph
 A character glyph of a font.
 
typedef struct _ps_size ps_size
 A structure that contains width and height values.
 
typedef struct _ps_rect ps_rect
 A structure that contains location and dimensions of a rectangle.
 
typedef struct _ps_point ps_point
 A structure that contains a point in a two-dimensional coordinate system.
 
typedef struct _ps_color ps_color
 A structure that contains rgba values for a color.
 
typedef enum _ps_status ps_status
 Status code return by call ps_last_status function.
 
typedef enum _ps_color_format ps_color_format
 Pixel formats of canvas or image.
 
typedef enum _ps_wrap_type ps_wrap_type
 Fill type of pattern.
 
typedef enum _ps_gradient_spread ps_gradient_spread
 Fill type of outside the gradient area.
 
typedef enum _ps_line_cap ps_line_cap
 Styles for rendering the endpoint of a stroked line.
 
typedef enum _ps_line_join ps_line_join
 Junction types for stroked lines.
 
typedef enum _ps_line_inner_join ps_line_inner_join
 Inner junction types for stroked lines.
 
typedef enum _ps_composite ps_composite
 Compositing operations for graphics context.
 
typedef enum _ps_filter ps_filter
 Graphics quality for rendering an image.
 
typedef enum _ps_fill_rule ps_fill_rule
 Fill rules for graphics.
 
typedef enum _ps_charset ps_charset
 Charset for a font.
 
typedef enum _ps_font_weight ps_font_weight
 Font weight.
 
typedef struct _ps_font_info ps_font_info
 A structure that contains font information.
 
typedef enum _ps_text_type ps_text_type
 Text rendering type.
 
typedef enum _ps_draw_text_type ps_draw_text_type
 Draw mode for rending text.
 
typedef enum _ps_text_align ps_text_align
 Text align mode for drawing text.
 
typedef enum _ps_path_cmd ps_path_cmd
 Path command for vertices.
 
typedef enum _ps_path_op ps_path_operation
 Path clipping operations.
 

Enumerations

enum  _ps_status {
  STATUS_SUCCEED, STATUS_OUT_OF_MEMORY, STATUS_INVALID_ARGUMENT, STATUS_NOT_SUPPORT,
  STATUS_DEVICE_ERROR, STATUS_MISMATCHING_FORMAT, STATUS_UNKNOWN_ERROR
}
 Status code return by call ps_last_status function. More...
 
enum  _ps_color_format {
  COLOR_FORMAT_RGBA, COLOR_FORMAT_ARGB, COLOR_FORMAT_ABGR, COLOR_FORMAT_BGRA,
  COLOR_FORMAT_RGB, COLOR_FORMAT_BGR, COLOR_FORMAT_RGB565, COLOR_FORMAT_RGB555,
  COLOR_FORMAT_UNKNOWN
}
 Pixel formats of canvas or image. More...
 
enum  _ps_wrap_type { WRAP_TYPE_REPEAT, WRAP_TYPE_REFLECT }
 Fill type of pattern. More...
 
enum  _ps_gradient_spread { GRADIENT_SPREAD_PAD, GRADIENT_SPREAD_REPEAT, GRADIENT_SPREAD_REFLECT }
 Fill type of outside the gradient area. More...
 
enum  _ps_line_cap { LINE_CAP_BUTT, LINE_CAP_ROUND, LINE_CAP_SQUARE }
 Styles for rendering the endpoint of a stroked line. More...
 
enum  _ps_line_join {
  LINE_JOIN_MITER, LINE_JOIN_MITER_REVERT, LINE_JOIN_MITER_ROUND, LINE_JOIN_ROUND,
  LINE_JOIN_BEVEL
}
 Junction types for stroked lines. More...
 
enum  _ps_line_inner_join { LINE_INNER_MITER, LINE_INNER_BEVEL, LINE_INNER_JAG, LINE_INNER_ROUND }
 Inner junction types for stroked lines. More...
 
enum  _ps_composite {
  COMPOSITE_CLEAR, COMPOSITE_SRC, COMPOSITE_SRC_OVER, COMPOSITE_SRC_IN,
  COMPOSITE_SRC_OUT, COMPOSITE_SRC_ATOP, COMPOSITE_DST, COMPOSITE_DST_OVER,
  COMPOSITE_DST_IN, COMPOSITE_DST_OUT, COMPOSITE_DST_ATOP, COMPOSITE_XOR,
  COMPOSITE_DARKEN, COMPOSITE_LIGHTEN, COMPOSITE_OVERLAY, COMPOSITE_SCREEN,
  COMPOSITE_MULTIPLY, COMPOSITE_PLUS, COMPOSITE_MINUS, COMPOSITE_EXCLUSION,
  COMPOSITE_DIFFERENCE, COMPOSITE_SOFTLIGHT, COMPOSITE_HARDLIGHT, COMPOSITE_BURN,
  COMPOSITE_DODGE, COMPOSITE_CONTRAST, COMPOSITE_INVERT, COMPOSITE_INVERT_BLEND,
  COMPOSITE_HUE, COMPOSITE_SATURATION, COMPOSITE_COLOR, COMPOSITE_LUMINOSITY,
  COMPOSITE_ERROR
}
 Compositing operations for graphics context. More...
 
enum  _ps_filter {
  FILTER_NEAREST, FILTER_BILINEAR, FILTER_GAUSSIAN, FILTER_BICUBIC,
  FILTER_QUADRIC, FILTER_UNKNOWN
}
 Graphics quality for rendering an image. More...
 
enum  _ps_fill_rule { FILL_RULE_WINDING, FILL_RULE_EVEN_ODD, FILL_RULE_ERROR }
 Fill rules for graphics. More...
 
enum  _ps_charset { CHARSET_ANSI, CHARSET_UNICODE }
 Charset for a font. More...
 
enum  _ps_font_weight { FONT_WEIGHT_REGULAR = 400, FONT_WEIGHT_MEDIUM = 500, FONT_WEIGHT_BOLD = 700, FONT_WEIGHT_HEAVY = 900 }
 Font weight. More...
 
enum  _ps_text_type { TEXT_TYPE_SMOOTH, TEXT_TYPE_MONO, TEXT_TYPE_STROKE }
 Text rendering type. More...
 
enum  _ps_draw_text_type { DRAW_TEXT_FILL, DRAW_TEXT_STROKE, DRAW_TEXT_BOTH }
 Draw mode for rending text. More...
 
enum  _ps_text_align {
  TEXT_ALIGN_CENTER = 0, TEXT_ALIGN_TOP = 1, TEXT_ALIGN_BOTTOM = 2, TEXT_ALIGN_LEFT = 4,
  TEXT_ALIGN_RIGHT = 8
}
 Text align mode for drawing text. More...
 
enum  _ps_path_cmd {
  PATH_CMD_STOP = 0, PATH_CMD_MOVE_TO = 1, PATH_CMD_LINE_TO = 2, PATH_CMD_CURVE3 = 3,
  PATH_CMD_CURVE4 = 4, PATH_CMD_END_POLY = 0x0F
}
 Path command for vertices. More...
 
enum  _ps_path_op { PATH_OP_UNION, PATH_OP_INTERSECT, PATH_OP_XOR, PATH_OP_DIFF }
 Path clipping operations. More...
 

Functions

PEXPORT int PICAPI ps_version (void)
 Return current version of picasso. More...
 
PEXPORT ps_bool PICAPI ps_initialize (void)
 Initialize the picasso drawing environment. More...
 
PEXPORT void PICAPI ps_shutdown (void)
 Shutdown the picasso drawing environment. More...
 
PEXPORT ps_status PICAPI ps_last_status (void)
 Return the last status code of picasso. More...
 
PEXPORT ps_context *PICAPI ps_context_create (ps_canvas *canvas, ps_context *shared_context)
 Create a new graphic context for a canvas. More...
 
PEXPORT ps_context *PICAPI ps_context_ref (ps_context *ctx)
 Increases the reference count of the context by 1. More...
 
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 0, the context is freed. More...
 
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. More...
 
PEXPORT ps_canvas *PICAPI ps_context_get_canvas (ps_context *ctx)
 Get the canvas from the context. More...
 
PEXPORT ps_canvas *PICAPI ps_canvas_create (ps_color_format fmt, int width, int height)
 Create a new canvas using the given parameters. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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_canvas_create_with_data. More...
 
PEXPORT ps_canvas *PICAPI ps_canvas_ref (ps_canvas *canvas)
 Increases the reference count of the canvas by 1. More...
 
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, the canvas is freed. More...
 
PEXPORT ps_bool PICAPI ps_canvas_get_size (const ps_canvas *canvas, ps_size *rsize)
 Return the size of the canvas. More...
 
PEXPORT ps_color_format PICAPI ps_canvas_get_format (const ps_canvas *canvas)
 Return the pixel format of the canvas. More...
 
PEXPORT void PICAPI ps_canvas_set_mask (ps_canvas *canvas, const ps_mask *mask)
 Set a new mask into an existing canvas object. More...
 
PEXPORT void PICAPI ps_canvas_reset_mask (ps_canvas *canvas)
 Clear the mask from the canvas object. More...
 
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. More...
 
PEXPORT ps_image *PICAPI ps_image_create (ps_color_format fmt, int width, int height)
 Create a new image using the given parameters. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
PEXPORT ps_image *PICAPI ps_image_ref (ps_image *img)
 Increases the reference count of the image by 1. More...
 
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, the image is freed. More...
 
PEXPORT void PICAPI ps_image_set_allow_transparent (ps_image *img, ps_bool allow)
 Set whether the image allowed be transparent, False is default. More...
 
PEXPORT void PICAPI ps_image_set_transparent_color (ps_image *img, const ps_color *color)
 Set the transparent color for the image. More...
 
PEXPORT ps_bool PICAPI ps_image_get_size (const ps_image *img, ps_size *rsize)
 Return the size of the image. More...
 
PEXPORT ps_color_format PICAPI ps_image_get_format (const ps_image *img)
 Return the pixel format of the image. More...
 
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. More...
 
PEXPORT void PICAPI ps_pattern_transform (ps_pattern *pattern, const ps_matrix *matrix)
 Transform the pattern object. More...
 
PEXPORT ps_pattern *PICAPI ps_pattern_ref (ps_pattern *pattern)
 Increases the reference count of the pattern by 1. More...
 
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 0, the pattern is freed. More...
 
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. More...
 
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. More...
 
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. More...
 
PEXPORT void PICAPI ps_gradient_transform (ps_gradient *gradient, const ps_matrix *matrix)
 Transform the gradient object. More...
 
PEXPORT ps_gradient *PICAPI ps_gradient_ref (ps_gradient *gradient)
 Increases the reference count of the gradient by 1. More...
 
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 to 0, the gradient is freed. More...
 
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. More...
 
PEXPORT void PICAPI ps_gradient_clear_color_stops (ps_gradient *gradient)
 Clear color stops from gradient's control vector. More...
 
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. More...
 
PEXPORT ps_mask *PICAPI ps_mask_ref (ps_mask *mask)
 Increases the reference count of the mask by 1. More...
 
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, the mask is freed. More...
 
PEXPORT void PICAPI ps_mask_add_color_filter (ps_mask *mask, const ps_color *color)
 Add a color filter to a mask. More...
 
PEXPORT void PICAPI ps_mask_clear_color_filters (ps_mask *mask)
 Clear all colors from mask's filter. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
PEXPORT float PICAPI ps_set_line_width (ps_context *ctx, float width)
 Set the line width for a graphics context. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
PEXPORT void PICAPI ps_reset_line_dash (ps_context *ctx)
 Clear the dashs from the context, and set to solid. More...
 
PEXPORT void PICAPI ps_set_shadow (ps_context *ctx, float x_offset, float y_offset, float blur)
 Enables shadowing in a context. More...
 
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. More...
 
PEXPORT void PICAPI ps_reset_shadow (ps_context *ctx)
 Disables shadowing in a context. More...
 
PEXPORT ps_composite PICAPI ps_set_composite_operator (ps_context *ctx, ps_composite composite)
 Set composites opertaions for graphics context. More...
 
PEXPORT ps_filter PICAPI ps_set_filter (ps_context *ctx, ps_filter filter)
 Set interpolation filter for graphic context. More...
 
PEXPORT ps_fill_rule PICAPI ps_set_fill_rule (ps_context *ctx, ps_fill_rule rule)
 Set fill rule for graphic context. More...
 
PEXPORT float PICAPI ps_set_alpha (ps_context *ctx, float alpha)
 Set the opacity level for objects drawn in graphic context. More...
 
PEXPORT float PICAPI ps_set_gamma (ps_context *ctx, float gamma)
 Set the gamma value for the graphic context. More...
 
PEXPORT void PICAPI ps_set_antialias (ps_context *ctx, ps_bool antialias)
 Set whether the Anti-aliasing should be turn on. More...
 
PEXPORT float PICAPI ps_set_blur (ps_context *ctx, float blur)
 Set the blur level for the graphic context. More...
 
PEXPORT void PICAPI ps_stroke (ps_context *ctx)
 Stroke the current path according to the line attributes. After called, the current path will be cleared from the context. More...
 
PEXPORT void PICAPI ps_fill (ps_context *ctx)
 Fill the current path according to the source attributes. After called, the current path will be cleared from the context. More...
 
PEXPORT void PICAPI ps_paint (ps_context *ctx)
 Fill and stroke the current path according to the source and line attributes. After called, the current path will be cleared from the context. More...
 
PEXPORT void PICAPI ps_clear (ps_context *ctx)
 Clear the current context with source color. More...
 
PEXPORT void PICAPI ps_clip (ps_context *ctx)
 Clipping the current path, using the current fill rule. After called, the current path will be cleared from the context. More...
 
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. More...
 
PEXPORT void PICAPI ps_clip_rect (ps_context *ctx, const ps_rect *rect)
 Clipping specified rectangle. More...
 
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. More...
 
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. More...
 
PEXPORT void PICAPI ps_reset_clip (ps_context *ctx)
 Clear the clipping area from the context. More...
 
PEXPORT void PICAPI ps_save (ps_context *ctx)
 Pushes a copy of the current graphics state on to stack for context. More...
 
PEXPORT void PICAPI ps_restore (ps_context *ctx)
 Set the current graphics state to the state most recently saved. More...
 
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. More...
 
PEXPORT ps_font *PICAPI ps_font_create_copy (const ps_font *font)
 Create a copy from an existing font object. More...
 
PEXPORT ps_font *PICAPI ps_font_ref (ps_font *font)
 Increases the reference count of the font by 1. More...
 
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, the font is freed. More...
 
PEXPORT void PICAPI ps_font_set_size (ps_font *font, float size)
 Set size for a font object. More...
 
PEXPORT void PICAPI ps_font_set_weight (ps_font *font, int weight)
 Set weight for a font object. More...
 
PEXPORT void PICAPI ps_font_set_italic (ps_font *font, ps_bool italic)
 Set italic for a font object. More...
 
PEXPORT void PICAPI ps_font_set_charset (ps_font *font, ps_charset charset)
 Set charset for a font object. More...
 
PEXPORT void PICAPI ps_font_set_hint (ps_font *font, ps_bool hint)
 Set hiting for a font object. More...
 
PEXPORT void PICAPI ps_font_set_flip (ps_font *font, ps_bool flip)
 Set flip for a font object. More...
 
PEXPORT ps_bool PICAPI ps_get_font_info (ps_context *ctx, ps_font_info *info)
 Return the font information from the graphics context. More...
 
PEXPORT ps_font *PICAPI ps_set_font (ps_context *ctx, const ps_font *font)
 Set a new font to graphics context. More...
 
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. More...
 
PEXPORT void PICAPI ps_set_text_color (ps_context *ctx, const ps_color *color)
 Set the text fill color for the graphic context. More...
 
PEXPORT void PICAPI ps_set_text_stroke_color (ps_context *ctx, const ps_color *color)
 Set the text stroke color for the graphic context. More...
 
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 – saving and restoring has no effect on the text matrix. The text matrix is an attribute of graphic context. More...
 
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 restoring has no effect on the text matrix. The text matrix is an attribute of graphic context. More...
 
PEXPORT void PICAPI ps_set_text_render_type (ps_context *ctx, ps_text_type type)
 Set rendering type for text. More...
 
PEXPORT void PICAPI ps_set_text_antialias (ps_context *ctx, ps_bool antialias)
 Set whether the font allowed be anti-aliasing. More...
 
PEXPORT void PICAPI ps_set_text_kerning (ps_context *ctx, ps_bool kerning)
 Set whether the font auto kerning is allowed. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
PEXPORT ps_bool PICAPI ps_glyph_get_extent (const ps_glyph *glyph, ps_size *rsize)
 Get extent for a glyph object. More...
 
PEXPORT void PICAPI ps_translate (ps_context *ctx, float tx, float ty)
 Changes the origin of the user coordinate system in graphic context. More...
 
PEXPORT void PICAPI ps_scale (ps_context *ctx, float sx, float sy)
 Changes the scale of the user coordinate system in graphic context. More...
 
PEXPORT void PICAPI ps_shear (ps_context *ctx, float shx, float shy)
 Changes the shear of the user coordinate system in graphic context. More...
 
PEXPORT void PICAPI ps_rotate (ps_context *ctx, float angle)
 Rotates the user coordinate system in graphic context. More...
 
PEXPORT void PICAPI ps_identity (ps_context *ctx)
 Reset the current transformation matrix to identity matrix. More...
 
PEXPORT void PICAPI ps_transform (ps_context *ctx, const ps_matrix *matrix)
 Transforms the user coordinate system in graphic context using a specified matrix. More...
 
PEXPORT void PICAPI ps_set_matrix (ps_context *ctx, const ps_matrix *matrix)
 Modifies the current transformation matrix to the given matrix. More...
 
PEXPORT ps_bool PICAPI ps_get_matrix (ps_context *ctx, ps_matrix *matrix)
 Get the current transformation matrix from graphic context. More...
 
PEXPORT void PICAPI ps_world_to_viewport (ps_context *ctx, ps_point *point)
 Transform a coordinate from device space to user space. More...
 
PEXPORT void PICAPI ps_viewport_to_world (ps_context *ctx, ps_point *point)
 Transform a coordinate from user space to device space. More...
 
PEXPORT ps_matrix *PICAPI ps_matrix_create (void)
 Create a identity matrix object. More...
 
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. More...
 
PEXPORT ps_matrix *PICAPI ps_matrix_create_copy (const ps_matrix *matrix)
 Create a matrix copy from an exist one. More...
 
PEXPORT ps_matrix *PICAPI ps_matrix_ref (ps_matrix *matrix)
 Increases the reference count of the matrix by 1. More...
 
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, the matrix is freed. More...
 
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. More...
 
PEXPORT void PICAPI ps_matrix_translate (ps_matrix *matrix, float tx, float ty)
 Modify a matrix by translating. More...
 
PEXPORT void PICAPI ps_matrix_scale (ps_matrix *matrix, float sx, float sy)
 Modify a matrix by scaling. More...
 
PEXPORT void PICAPI ps_matrix_rotate (ps_matrix *matrix, float angle)
 Modify a matrix by rotating. More...
 
PEXPORT void PICAPI ps_matrix_shear (ps_matrix *matrix, float shx, float shy)
 Modify a matrix by shearing. More...
 
PEXPORT void PICAPI ps_matrix_invert (ps_matrix *matrix)
 Modify a matrix by inverting. More...
 
PEXPORT void PICAPI ps_matrix_identity (ps_matrix *matrix)
 Reset a matrix to identity matrix. More...
 
PEXPORT void PICAPI ps_matrix_flip_x (ps_matrix *matrix)
 Flip a matrix in the horizontal direction. More...
 
PEXPORT void PICAPI ps_matrix_flip_y (ps_matrix *matrix)
 Flip a matrix in the vertical direction. More...
 
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. More...
 
PEXPORT ps_bool PICAPI ps_matrix_is_identity (const ps_matrix *matrix)
 Checks whether the matrix is the identity transform matrix. More...
 
PEXPORT ps_bool PICAPI ps_matrix_is_equal (const ps_matrix *a, const ps_matrix *b)
 Checks whether two matrix are equal. More...
 
PEXPORT float PICAPI ps_matrix_get_determinant (const ps_matrix *matrix)
 Return the determinant from a matrix. More...
 
PEXPORT void PICAPI ps_matrix_set_translate_factor (ps_matrix *matrix, float tx, float ty)
 Set the translate factors to the matrix. More...
 
PEXPORT ps_bool PICAPI ps_matrix_get_translate_factor (ps_matrix *matrix, float *tx, float *ty)
 Get the translate factors from the matrix. More...
 
PEXPORT void PICAPI ps_matrix_set_scale_factor (ps_matrix *matrix, float sx, float sy)
 Set the scale factors to the matrix. More...
 
PEXPORT ps_bool PICAPI ps_matrix_get_scale_factor (ps_matrix *matrix, float *sx, float *sy)
 Get the scale factors from the matrix. More...
 
PEXPORT void PICAPI ps_matrix_set_shear_factor (ps_matrix *matrix, float shx, float shy)
 Set the shear factors to the matrix. More...
 
PEXPORT ps_bool PICAPI ps_matrix_get_shear_factor (ps_matrix *matrix, float *shx, float *shy)
 Get the shear factors from the matrix. More...
 
PEXPORT void PICAPI ps_matrix_transform_point (const ps_matrix *matrix, ps_point *point)
 Transform an existing point using the matrix. More...
 
PEXPORT void PICAPI ps_matrix_transform_rect (const ps_matrix *matrix, ps_rect *rect)
 Transform an existing rectangle using the matrix. More...
 
PEXPORT void PICAPI ps_matrix_transform_path (const ps_matrix *matrix, ps_path *path)
 Transform an existing path using the matrix. More...
 
PEXPORT void PICAPI ps_new_path (ps_context *ctx)
 Create a new empty path in the graphic context, clear the old one. More...
 
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. More...
 
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. More...
 
PEXPORT void PICAPI ps_set_path (ps_context *ctx, const ps_path *path)
 Replace the current path in the graphic context. More...
 
PEXPORT ps_bool PICAPI ps_get_path (ps_context *ctx, ps_path *path)
 Get the current path in the graphic context. More...
 
PEXPORT void PICAPI ps_close_path (ps_context *ctx)
 Close the current path in the graphic context. More...
 
PEXPORT void PICAPI ps_move_to (ps_context *ctx, const ps_point *point)
 Begin a new sub path, and set the current point. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
PEXPORT void PICAPI ps_rectangle (ps_context *ctx, const ps_rect *rect)
 Add a rectangle to the current path. More...
 
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. More...
 
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. More...
 
PEXPORT ps_path *PICAPI ps_path_create (void)
 Create a new empty path object. More...
 
PEXPORT ps_path *PICAPI ps_path_create_copy (const ps_path *path)
 Create a copy from an existing path object. More...
 
PEXPORT ps_path *PICAPI ps_path_ref (ps_path *path)
 Increases the reference count of the path by 1. More...
 
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, the path is freed. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
PEXPORT void PICAPI ps_path_sub_close (ps_path *path)
 Close the sub path, and begin a new one. More...
 
PEXPORT float PICAPI ps_path_get_length (const ps_path *path)
 Return The length of the path. More...
 
PEXPORT void PICAPI ps_path_clear (ps_path *path)
 Clear the path to empty. More...
 
PEXPORT ps_bool PICAPI ps_path_is_empty (const ps_path *path)
 Checks whether the path is empty. More...
 
PEXPORT unsigned int PICAPI ps_path_get_vertex_count (const ps_path *path)
 Return the count of vertices in the path. More...
 
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. More...
 
PEXPORT ps_bool PICAPI ps_path_bounding_rect (const ps_path *path, ps_rect *rect)
 Get the bounding rectangle of the path. More...
 
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. More...
 
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. More...
 
PEXPORT void PICAPI ps_path_add_line (ps_path *path, const ps_point *p1, const ps_point *p2)
 Add a line to the path. More...
 
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. More...
 
PEXPORT void PICAPI ps_path_add_rect (ps_path *path, const ps_rect *rect)
 Add a rectangle to the path. More...
 
PEXPORT void PICAPI ps_path_add_ellipse (ps_path *path, const ps_rect *rect)
 Add an ellipse to the path. More...
 
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. More...
 
PEXPORT void PICAPI ps_path_add_sub_path (ps_path *path, const ps_path *spath)
 Add an sub path to the path. More...
 
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. More...
 

Detailed Description

Author
Zhang Ji Peng oneco.nosp@m.olx@.nosp@m.gmail.nosp@m..com
Date
2014/6/16

This file includes all interfaces of Picasso

   Copyright (C) 2008 ~ 2024  Zhang Ji Peng

   All rights reserved.

   Picasso is a vector graphic library.

Definition in file picasso.h.