# hpgs.h File Reference

The public interfaces. More...

`#include <stdio.h>`
`#include <stdarg.h>`
`#include <stdlib.h>`

Go to the source code of this file.

## Data Structures
struct | hpgs_point_st
| A 2D point. More...
struct | hpgs_color_st
| An application level RGB color. More...
struct | hpgs_palette_color_st
| A screen RGB color as stored in a palette. More...
struct | hpgs_paint_color_st
| An image RGB color with an optional palette index. More...
struct | hpgs_bbox_st
| A bounding box. More...
struct | hpgs_matrix_st
| A transformation matrix for 2D points. More...
struct | hpgs_istream_vtable_st
| A table of virtual function implementing `hpgs_istream`. More...
struct | hpgs_istream_st
| A virtual input stream for the HPGL reader. More...
struct | hpgs_ostream_vtable_st
| A table of virtual function implementing `hpgs_istream`. More...
struct | hpgs_ostream_st
| A virtual output stream for the HPGL reader. More...
struct | hpgs_gstate_st
| The vector graphics state. More...
struct | hpgs_device_vtable_st
| A table of virtual function implementing `hpgs_device`. More...
struct | hpgs_device_st
| A virtual vector graphics device for the HPGL reader. More...
struct | hpgs_image_vtable_st
| A table of virtual function implementing `hpgs_image`. More...
struct | hpgs_image_st
| An abstract pixel image. More...
struct | hpgs_path_point_st
| A point in a stored path. More...
struct | hpgs_paint_path_st
| A stored vector path. More...
## Defines
#define | __inline__ inline
#define | HPGS_PRINTF_API(i) HPGS_API
#define | HPGS_I18N_API HPGS_API
#define | HPGS_I18N_N_API HPGS_API
#define | HPGS_INTERNAL_PRINTF_API(i) HPGS_INTERNAL_API
#define | HPGS_PRINTF1_API HPGS_PRINTF_API(1)
#define | HPGS_PRINTF2_API HPGS_PRINTF_API(2)
#define | HPGS_INTERNAL_PRINTF1_API HPGS_INTERNAL_PRINTF_API(1)
#define | HPGS_INTERNAL_PRINTF2_API HPGS_INTERNAL_PRINTF_API(2)
#define | HPGS_SIZE_T_FMT "%zu"
#define | HPGS_STRINGIFYIFY(i) #i
#define | HPGS_STRINGIFY(i) HPGS_STRINGIFYIFY(i)
#define | HPGS_MAJOR_VERSION 1
#define | HPGS_MINOR_VERSION 1
#define | HPGS_PATCH_VERSION 5
#define | HPGS_EXTRA_VERSION
#define | HPGS_VERSION HPGS_STRINGIFY(HPGS_MAJOR_VERSION) "." HPGS_STRINGIFY(HPGS_MINOR_VERSION) "." HPGS_STRINGIFY(HPGS_PATCH_VERSION) HPGS_STRINGIFY(HPGS_EXTRA_VERSION)
#define | HPGS_ESC '\033'
#define | HPGS_MAX_LABEL_SIZE 256
#define | hpgs_alloca(sz) alloca(sz)
#define | HPGS_TRUE 1
#define | HPGS_FALSE 0
#define | HPGS_MIN(a, b) ((a)<(b)?(a):(b))
#define | HPGS_MAX(a, b) ((a)>(b)?(a):(b))
#define | HPGS_INIT_ARRAY(st, type, pmemb, nmemb, szmemb, insz) (st->szmemb=insz,st->nmemb=0,(st->pmemb=(type*)malloc(sizeof(type)*insz))?0:-1)
#define | HPGS_GROW_ARRAY_FOR_PUSH(st, type, pmemb, nmemb, szmemb) ((st->nmemb >= st->szmemb)?hpgs_array_safe_resize(sizeof(type),(void **)(&st->pmemb),&st->szmemb,st->szmemb*2):(0))
#define | HPGS_GROW_ARRAY_MIN_SIZE(st, type, pmemb, nmemb, szmemb, msz) ((st->nmemb>=st->szmemb||st->szmemb<msz)?hpgs_array_safe_resize(sizeof(type),(void **)(&st->pmemb),&st->szmemb,HPGS_MAX(st->szmemb*2,msz)):(0))
#define | HPGS_PATH_SEPARATOR '/'
#define | HPGS_DEVICE_CAP_RASTER (1<<0)
| This device is a raster device.
#define | HPGS_DEVICE_CAP_ANTIALIAS (1<<1)
| This device supports anitaliasing.
#define | HPGS_DEVICE_CAP_VECTOR (1<<2)
| This device is a true vector device.
#define | HPGS_DEVICE_CAP_MULTIPAGE (1<<3)
| This device supports multiple pages.
#define | HPGS_DEVICE_CAP_PAGECOLLATION (1<<4)
| This device is able to write multiple pages to a single file.
#define | HPGS_DEVICE_CAP_MULTISIZE (1<<5)
| This device is able to cope with distinct sizes per page.
#define | HPGS_DEVICE_CAP_DRAWIMAGE (1<<6)
| The device may draw an image.
#define | HPGS_DEVICE_CAP_NULLIMAGE (1<<7)
| The device accepts a null image in drawimage.
#define | HPGS_DEVICE_CAP_PLOTSIZE (1<<8)
| This device is a plotsize device.
#define | HPGS_DEVICE_CAP_ROP3 (1<<9)
| This device supports rop3 operations.
#define | HPGS_BASE_CLASS(d) (&(d->inherited))
#define | HPGS_POINT_ROLE_MASK 0xF
| A mask for retrieving the role of a point in the path.
#define | HPGS_POINT_UNDEFINED 0x0
| point is undefined
#define | HPGS_POINT_LINE 0x1
| start of line
#define | HPGS_POINT_BEZIER 0x2
| start of bezier curve
#define | HPGS_POINT_CONTROL 0x3
| bezier control point
#define | HPGS_POINT_FILL_LINE 0x4
| line fill only (implicit closepath)
#define | HPGS_POINT_DOT 0x8
| indicates a moveto/lineto with the same coordinates at the start of a subpath.
#define | HPGS_POINT_SUBPATH_START 0x10
| a subpath starts at this point
#define | HPGS_POINT_SUBPATH_END 0x20
| a subpath ends at this point
#define | HPGS_POINT_SUBPATH_CLOSE 0x40
| indicates an explicit closepath at the end of a subpath
## Typedefs
typedef int | hpgs_bool
typedef void(* | hpgs_logger_func_t )(const char *fmt, va_list ap)
typedef struct hpgs_point_st | hpgs_point
| A 2D point.
typedef struct hpgs_color_st | hpgs_color
| An application level RGB color.
typedef struct hpgs_palette_color_st | hpgs_palette_color
typedef void(* | hpgs_rop3_func_t )(unsigned char *, unsigned char, unsigned char)
typedef unsigned(* | hpgs_xrop3_func_t )(unsigned char, unsigned char)
typedef struct hpgs_paint_color_st | hpgs_paint_color
typedef struct hpgs_bbox_st | hpgs_bbox
typedef struct hpgs_matrix_st | hpgs_matrix
typedef struct hpgs_istream_st | hpgs_istream
typedef struct hpgs_istream_vtable_st | hpgs_istream_vtable
typedef int(* | hpgs_istream_getc_func_t )(void *)
typedef int(* | hpgs_istream_ungetc_func_t )(int, void *)
typedef int(* | hpgs_istream_close_func_t )(void *)
typedef int(* | hpgs_istream_iseof_func_t )(void *)
typedef int(* | hpgs_istream_iserror_func_t )(void *)
typedef int(* | hpgs_istream_seek_func_t )(void *, size_t)
typedef int(* | hpgs_istream_tell_func_t )(void *, size_t *)
typedef size_t(* | hpgs_istream_read_func_t )(void *, size_t, size_t, void *)
typedef int(* | hpgs_istream_seekend_func_t )(void *, size_t)
typedef struct hpgs_ostream_st | hpgs_ostream
typedef struct hpgs_ostream_vtable_st | hpgs_ostream_vtable
typedef int(* | hpgs_ostream_putc_func_t )(int, void *)
typedef size_t(* | hpgs_ostream_write_func_t )(const void *, size_t, size_t, void *)
typedef int(* | hpgs_ostream_vprintf_func_t )(void *, const char *, va_list)
typedef int(* | hpgs_ostream_flush_func_t )(void *)
typedef int(* | hpgs_ostream_close_func_t )(void *)
typedef int(* | hpgs_ostream_iserror_func_t )(void *)
typedef hpgs_istream *(* | hpgs_ostream_getbuf_func_t )(void *)
typedef int(* | hpgs_ostream_tell_func_t )(void *, int layer, size_t *)
typedef int(* | hpgs_ostream_seek_func_t )(void *, size_t)
typedef struct hpgs_device_st | hpgs_device
typedef struct hpgs_plotsize_device_st | hpgs_plotsize_device
typedef struct hpgs_eps_device_st | hpgs_eps_device
typedef struct hpgs_gs_device_st | hpgs_gs_device
typedef struct hpgs_device_vtable_st | hpgs_device_vtable
typedef struct hpgs_image_st | hpgs_image
typedef struct hpgs_image_vtable_st | hpgs_image_vtable
typedef struct hpgs_png_image_st | hpgs_png_image
typedef struct hpgs_paint_device_st | hpgs_paint_device
typedef struct hpgs_gstate_st | hpgs_gstate
typedef struct hpgs_font_st | hpgs_font
typedef int(* | hpgs_reader_asset_func_t )(void *, hpgs_device *, const hpgs_matrix *, const hpgs_matrix *, const hpgs_bbox *, int)
typedef struct hpgs_reader_st | hpgs_reader
typedef int(* | hpgs_moveto_func_t )(void *ctxt, const hpgs_point *p)
typedef int(* | hpgs_lineto_func_t )(void *ctxt, const hpgs_point *p)
typedef int(* | hpgs_curveto_func_t )(void *ctxt, const hpgs_point *p1, const hpgs_point *p2, const hpgs_point *p3)
typedef int(* | hpgs_fill_func_t )(void *ctxt, hpgs_bool winding)
typedef struct hpgs_path_point_st | hpgs_path_point
typedef struct hpgs_paint_path_st | hpgs_paint_path
## Enumerations
enum | hpgs_line_cap { hpgs_cap_butt = 0, hpgs_cap_round = 1, hpgs_cap_square = 2 }
enum | hpgs_line_join { hpgs_join_miter = 0, hpgs_join_round = 1, hpgs_join_bevel = 2 }
## Functions
HPGS_API int | hpgs_array_safe_resize (size_t itemsz, void **pptr, size_t *psz, size_t nsz)
HPGS_API void | hpgs_init (const char *prefix)
HPGS_API const char * | hpgs_get_prefix ()
HPGS_API void | hpgs_cleanup (void)
HPGS_API char * | hpgs_share_filename (const char *rel_filename)
HPGS_API char * | hpgs_vsprintf_malloc (const char *fmt, va_list ap)
HPGS_PRINTF1_API char * | hpgs_sprintf_malloc (const char *fmt,...)
HPGS_PRINTF1_API int | hpgs_set_error (const char *fmt,...)
HPGS_PRINTF1_API int | hpgs_error_ctxt (const char *fmt,...)
HPGS_API int | hpgs_set_verror (const char *fmt, va_list ap)
HPGS_API int | hpgs_verror_ctxt (const char *fmt, va_list ap)
HPGS_API const char * | hpgs_get_error ()
HPGS_API hpgs_bool | hpgs_have_error ()
HPGS_API void | hpgs_clear_error ()
HPGS_API int | hpgs_next_utf8 (const char **p)
HPGS_API int | hpgs_utf8_strlen (const char *p, int n)
HPGS_I18N_API const char * | hpgs_i18n (const char *msg)
HPGS_I18N_N_API const char * | hpgs_i18n_n (const char *msg, const char *msg_plural, unsigned long n)
HPGS_API void | hpgs_set_logger (hpgs_logger_func_t func)
HPGS_PRINTF1_API void | hpgs_log (const char *fmt,...)
HPGS_API void | hpgs_vlog (const char *fmt, va_list ap)
HPGS_API hpgs_bool | hpgs_get_arg_value (const char *opt, const char *argv[], const char **value, int *narg)
HPGS_API hpgs_rop3_func_t | hpgs_rop3_func (int rop3, hpgs_bool src_transparency, hpgs_bool pattern_transparency)
HPGS_API hpgs_xrop3_func_t | hpgs_xrop3_func (int rop3, hpgs_bool src_transparency, hpgs_bool pattern_transparency)
HPGS_API hpgs_bool | hpgs_bbox_isequal (const hpgs_bbox *bb1, const hpgs_bbox *bb2)
HPGS_API hpgs_bool | hpgs_bbox_isnull (const hpgs_bbox *bb)
HPGS_API hpgs_bool | hpgs_bbox_isempty (const hpgs_bbox *bb)
HPGS_API void | hpgs_bbox_distance (hpgs_point *d, const hpgs_bbox *bb1, const hpgs_bbox *bb2)
HPGS_API void | hpgs_bbox_null (hpgs_bbox *bb)
HPGS_API void | hpgs_bbox_expand (hpgs_bbox *bb1, const hpgs_bbox *bb2)
HPGS_API void | hpgs_bbox_intersect (hpgs_bbox *bb1, const hpgs_bbox *bb2)
static void | hpgs_bbox_addborder (hpgs_bbox *bb, double border)
static void | hpgs_bbox_add (hpgs_bbox *bb, const hpgs_point *p)
HPGS_API void | hpgs_matrix_set_identity (hpgs_matrix *m)
HPGS_API void | hpgs_matrix_xform (hpgs_point *res, const hpgs_matrix *m, const hpgs_point *p)
HPGS_API void | hpgs_matrix_ixform (hpgs_point *res, const hpgs_point *p, const hpgs_matrix *m)
HPGS_API void | hpgs_matrix_scale (hpgs_point *res, const hpgs_matrix *m, const hpgs_point *p)
HPGS_API void | hpgs_matrix_iscale (hpgs_point *res, const hpgs_point *p, const hpgs_matrix *m)
HPGS_API void | hpgs_matrix_concat (hpgs_matrix *res, const hpgs_matrix *a, const hpgs_matrix *b)
HPGS_API void | hpgs_matrix_invert (hpgs_matrix *res, const hpgs_matrix *m)
HPGS_API void | hpgs_matrix_xform_bbox (hpgs_bbox *res, const hpgs_matrix *m, const hpgs_bbox *bb)
HPGS_API void | hpgs_matrix_ixform_bbox (hpgs_bbox *res, const hpgs_bbox *bb, const hpgs_matrix *m)
HPGS_API hpgs_istream * | hpgs_new_file_istream (const char *fn)
HPGS_API hpgs_istream * | hpgs_new_mem_istream (const unsigned char *data, size_t data_size, hpgs_bool dup)
static int | hpgs_getc (hpgs_istream *_this)
static int | hpgs_ungetc (int c, hpgs_istream *_this)
static int | hpgs_istream_close (hpgs_istream *_this)
static int | hpgs_istream_iseof (hpgs_istream *_this)
static int | hpgs_istream_iserror (hpgs_istream *_this)
static int | hpgs_istream_seek (hpgs_istream *_this, size_t pos)
static int | hpgs_istream_seekend (hpgs_istream *_this, size_t pos)
static int | hpgs_istream_tell (hpgs_istream *_this, size_t *pos)
static size_t | hpgs_istream_read (void *ptr, size_t size, size_t nmemb, hpgs_istream *_this)
HPGS_API hpgs_ostream * | hpgs_new_file_ostream (const char *fn)
HPGS_API hpgs_ostream * | hpgs_new_mem_ostream (size_t data_reserve)
HPGS_API hpgs_ostream * | hpgs_new_z_ostream (hpgs_ostream *base, int compression, hpgs_bool take_base)
HPGS_API int | hpgs_copy_streams (hpgs_ostream *out, hpgs_istream *in)
HPGS_PRINTF2_API int | hpgs_ostream_printf (hpgs_ostream *_this, const char *msg,...)
HPGS_API int | hpgs_ostream_vprintf (hpgs_ostream *_this, const char *msg, va_list ap)
static int | hpgs_ostream_putc (int c, hpgs_ostream *_this)
static size_t | hpgs_ostream_write (const void *ptr, size_t size, size_t nmemb, hpgs_ostream *_this)
static int | hpgs_ostream_flush (hpgs_ostream *_this)
static int | hpgs_ostream_close (hpgs_ostream *_this)
static int | hpgs_ostream_iserror (hpgs_ostream *_this)
static hpgs_istream * | hpgs_ostream_getbuf (hpgs_ostream *_this)
static int | hpgs_ostream_tell (hpgs_ostream *_this, int layer, size_t *pos)
static int | hpgs_ostream_seek (hpgs_ostream *_this, size_t pos)
HPGS_API int | hpgs_parse_papersize (const char *str, double *pt_width, double *pt_height)
HPGS_API int | hpgs_parse_length (const char *str, double *pt_length)
HPGS_API hpgs_gstate * | hpgs_new_gstate (void)
HPGS_API void | hpgs_gstate_destroy (hpgs_gstate *gstate)
HPGS_API int | hpgs_gstate_setdash (hpgs_gstate *gstate, const float *, unsigned, double)
HPGS_API hpgs_plotsize_device * | hpgs_new_plotsize_device (hpgs_bool ignore_ps, hpgs_bool do_linewidth)
HPGS_API hpgs_eps_device * | hpgs_new_eps_device (const char *filename, const hpgs_bbox *bb, hpgs_bool do_rop3)
HPGS_API hpgs_eps_device * | hpgs_new_ps_device (const char *filename, const hpgs_bbox *bb, hpgs_bool do_rop3)
HPGS_API int | hpgs_new_plugin_device (hpgs_device **device, void **page_asset_ctxt, hpgs_reader_asset_func_t *page_asset_func, void **frame_asset_ctxt, hpgs_reader_asset_func_t *frame_asset_func, const char *dev_name, const char *filename, const hpgs_bbox *bb, double xres, double yres, hpgs_bool do_rop3, int argc, const char *argv[])
HPGS_API const char * | hpgs_device_rtti (hpgs_device *_this)
static int | hpgs_moveto (hpgs_device *_this, const hpgs_point *p)
static int | hpgs_lineto (hpgs_device *_this, const hpgs_point *p)
static int | hpgs_curveto (hpgs_device *_this, const hpgs_point *p1, const hpgs_point *p2, const hpgs_point *p3)
static int | hpgs_closepath (hpgs_device *_this)
static int | hpgs_newpath (hpgs_device *_this)
static int | hpgs_stroke (hpgs_device *_this)
static int | hpgs_fill (hpgs_device *_this, hpgs_bool winding)
static int | hpgs_clip (hpgs_device *_this, hpgs_bool winding)
static int | hpgs_clipsave (hpgs_device *_this)
static int | hpgs_cliprestore (hpgs_device *_this)
static int | hpgs_setrgbcolor (hpgs_device *_this, const hpgs_color *rgb)
static int | hpgs_setdash (hpgs_device *_this, const float *d, unsigned nd, double s)
static int | hpgs_setlinewidth (hpgs_device *_this, double w)
static int | hpgs_setlinecap (hpgs_device *_this, hpgs_line_cap c)
static int | hpgs_setlinejoin (hpgs_device *_this, hpgs_line_join j)
static int | hpgs_setmiterlimit (hpgs_device *_this, double l)
static int | hpgs_device_capabilities (hpgs_device *_this)
HPGS_API int | hpgs_setrop3 (hpgs_device *_this, int rop, hpgs_bool src_transparency, hpgs_bool pattern_transparency)
HPGS_API int | hpgs_setpatcol (hpgs_device *_this, const hpgs_color *rgb)
HPGS_API int | hpgs_drawimage (hpgs_device *_this, const hpgs_image *img, const hpgs_point *ll, const hpgs_point *lr, const hpgs_point *ur)
HPGS_API int | hpgs_setplotsize (hpgs_device *_this, const hpgs_bbox *bb)
HPGS_API int | hpgs_getplotsize (hpgs_device *_this, int i, hpgs_bbox *bb)
HPGS_API int | hpgs_showpage (hpgs_device *_this, int i)
HPGS_API int | hpgs_device_finish (hpgs_device *_this)
HPGS_API void | hpgs_device_destroy (hpgs_device *_this)
HPGS_API hpgs_reader * | hpgs_new_reader (hpgs_istream *in, hpgs_device *dev, hpgs_bool multipage, int v)
HPGS_API void | hpgs_reader_set_lw_factor (hpgs_reader *reader, double lw_factor)
HPGS_API void | hpgs_reader_set_fixed_page (hpgs_reader *reader, hpgs_bbox *bbox, double page_width, double page_height, double border, double angle)
HPGS_API void | hpgs_reader_set_dynamic_page (hpgs_reader *reader, hpgs_bbox *bbox, double max_page_width, double max_page_height, double border, double angle)
HPGS_API void | hpgs_reader_set_page_asset_func (hpgs_reader *reader, void *ctxt, hpgs_reader_asset_func_t func)
HPGS_API void | hpgs_reader_set_frame_asset_func (hpgs_reader *reader, void *ctxt, hpgs_reader_asset_func_t func)
HPGS_API void | hpgs_reader_interrupt (hpgs_reader *reader)
HPGS_API int | hpgs_reader_get_current_pen (hpgs_reader *reader)
HPGS_API int | hpgs_reader_imbue (hpgs_reader *reader, hpgs_device *dev)
HPGS_API int | hpgs_reader_attach (hpgs_reader *reader, hpgs_istream *in)
HPGS_API int | hpgs_reader_stamp (hpgs_reader *reader, const hpgs_bbox *bb, const char *stamp, const char *encoding, double stamp_size)
HPGS_API int | hpgs_device_stamp (hpgs_device *dev, const hpgs_bbox *bb, const char *stamp, const char *encoding, double stamp_size)
HPGS_API int | hpgs_reader_set_png_dump (hpgs_reader *reader, const char *filename)
HPGS_API int | hpgs_read (hpgs_reader *reader, hpgs_bool finish)
HPGS_API void | hpgs_destroy_reader (hpgs_reader *reader)
HPGS_API hpgs_font * | hpgs_find_font (const char *name)
HPGS_API void | hpgs_destroy_font (hpgs_font *font)
HPGS_API double | hpgs_font_get_ascent (hpgs_font *font)
HPGS_API double | hpgs_font_get_descent (hpgs_font *font)
HPGS_API double | hpgs_font_get_line_gap (hpgs_font *font)
HPGS_API double | hpgs_font_get_cap_height (hpgs_font *font)
HPGS_API unsigned | hpgs_font_get_glyph_count (hpgs_font *font)
HPGS_API unsigned | hpgs_font_get_glyph_id (hpgs_font *font, int uc)
HPGS_API const char * | hpgs_font_get_glyph_name (hpgs_font *font, unsigned gid)
HPGS_API int | hpgs_font_get_glyph_bbox (hpgs_font *font, hpgs_bbox *bb, unsigned gid)
HPGS_API int | hpgs_font_get_glyph_metrics (hpgs_font *font, hpgs_point *m, unsigned gid)
HPGS_API int | hpgs_font_get_kern_metrics (hpgs_font *font, hpgs_point *m, unsigned gid_l, unsigned gid_r)
HPGS_API int | hpgs_font_get_utf8_metrics (hpgs_font *font, hpgs_point *m, const char *str, int strlen)
HPGS_API int | hpgs_font_decompose_glyph (hpgs_font *font, void *ctxt, hpgs_moveto_func_t moveto_func, hpgs_lineto_func_t lineto_func, hpgs_curveto_func_t curveto_func, const hpgs_matrix *m, unsigned gid)
HPGS_API int | hpgs_font_draw_glyph (hpgs_font *font, hpgs_device *device, const hpgs_matrix *m, unsigned gid)
HPGS_API int | hpgs_font_decompose_utf8 (hpgs_font *font, void *ctxt, hpgs_moveto_func_t moveto_func, hpgs_lineto_func_t lineto_func, hpgs_curveto_func_t curveto_func, hpgs_fill_func_t fill_func, const hpgs_matrix *m, const char *str, int strlen)
HPGS_API int | hpgs_font_draw_utf8 (hpgs_font *font, hpgs_device *device, const hpgs_matrix *m, const char *str, int strlen)
HPGS_API int | hpgs_image_define_color_func (hpgs_image *image, hpgs_paint_color *c)
static int | hpgs_image_define_color (hpgs_image *image, hpgs_paint_color *c)
HPGS_API int | hpgs_image_set_palette (hpgs_image *image, hpgs_palette_color *p, int np)
HPGS_API hpgs_png_image * | hpgs_new_png_image (int width, int height, int depth, hpgs_bool palette, hpgs_bool do_rop3)
HPGS_API int | hpgs_png_image_set_compression (hpgs_png_image *pim, int compression)
HPGS_API int | hpgs_image_set_resolution (hpgs_image *pim, double x_dpi, double y_dpi)
HPGS_API int | hpgs_image_get_data (hpgs_image *_this, unsigned char **data, int *stride, int *depth)
static int | hpgs_image_get_pixel (const hpgs_image *_this, int x, int y, hpgs_paint_color *c, double *alpha)
static int | hpgs_image_put_pixel (hpgs_image *_this, int x, int y, const hpgs_paint_color *c, double alpha)
static int | hpgs_image_put_chunk (hpgs_image *_this, int x1, int x2, int y, const hpgs_paint_color *c)
static int | hpgs_image_rop3_pixel (hpgs_image *_this, int x, int y, const hpgs_paint_color *c, double alpha)
static int | hpgs_image_rop3_chunk (hpgs_image *_this, int x1, int x2, int y, const hpgs_paint_color *c)
HPGS_API int | hpgs_image_resize (hpgs_image *_this, int w, int h)
HPGS_API int | hpgs_image_clear (hpgs_image *_this)
HPGS_API int | hpgs_image_write (hpgs_image *_this, const char *filename)
HPGS_API int | hpgs_image_setrop3 (hpgs_image *_this, hpgs_rop3_func_t rop3)
HPGS_API int | hpgs_image_setpatcol (hpgs_image *_this, const hpgs_palette_color *p)
HPGS_API void | hpgs_image_destroy (hpgs_image *_this)
HPGS_API int | hpgs_image_rop3_clip (hpgs_device *device, hpgs_palette_color *data, const hpgs_image *img, const hpgs_point *ll, const hpgs_point *lr, const hpgs_point *ur, const hpgs_palette_color *p, hpgs_xrop3_func_t xrop3)
HPGS_API hpgs_paint_path * | hpgs_new_paint_path (void)
HPGS_API void | hpgs_paint_path_destroy (hpgs_paint_path *_this)
HPGS_API void | hpgs_paint_path_truncate (hpgs_paint_path *_this)
HPGS_API int | hpgs_paint_path_moveto (hpgs_paint_path *_this, const hpgs_point *p)
HPGS_API int | hpgs_paint_path_lineto (hpgs_paint_path *_this, const hpgs_point *p)
HPGS_API int | hpgs_paint_path_curveto (hpgs_paint_path *_this, const hpgs_point *p1, const hpgs_point *p2, const hpgs_point *p3)
HPGS_API int | hpgs_paint_path_closepath (hpgs_paint_path *_this)
HPGS_API int | hpgs_paint_path_buldgeto (hpgs_paint_path *_this, const hpgs_point *p, double buldge)
HPGS_API hpgs_paint_path * | hpgs_paint_path_stroke_path (const hpgs_paint_path *_this, const hpgs_gstate *gstate)
HPGS_API hpgs_paint_path * | hpgs_paint_path_decompose_dashes (const hpgs_paint_path *_this, const hpgs_gstate *gstate)
HPGS_API double | hpgs_bezier_path_x (const hpgs_paint_path *path, int i, double t)
HPGS_API double | hpgs_bezier_path_y (const hpgs_paint_path *path, int i, double t)
HPGS_API double | hpgs_bezier_path_delta_x (const hpgs_paint_path *path, int i, double t)
HPGS_API double | hpgs_bezier_path_delta_y (const hpgs_paint_path *path, int i, double t)
HPGS_API double | hpgs_bezier_path_xmin (const hpgs_paint_path *path, int i)
HPGS_API double | hpgs_bezier_path_xmax (const hpgs_paint_path *path, int i)
HPGS_API double | hpgs_bezier_path_ymin (const hpgs_paint_path *path, int i)
HPGS_API double | hpgs_bezier_path_ymax (const hpgs_paint_path *path, int i)
HPGS_API void | hpgs_bezier_path_point (const hpgs_paint_path *path, int i, double t, hpgs_point *p)
HPGS_API void | hpgs_bezier_path_delta (const hpgs_paint_path *path, int i, double t, hpgs_point *p)
HPGS_API void | hpgs_bezier_path_tangent (const hpgs_paint_path *path, int i, double t, int orientation, double ytol, hpgs_point *p)
HPGS_API void | hpgs_bezier_path_singularities (const hpgs_paint_path *path, int i, double t0, double t1, int *nx, double *tx)
HPGS_API void | hpgs_bezier_path_to_quadratic (const hpgs_paint_path *path, int i, double t0, double t1, int *nx, hpgs_point *points)
HPGS_API hpgs_paint_device * | hpgs_new_paint_device (hpgs_image *image, const char *filename, const hpgs_bbox *bb, hpgs_bool antialias)
HPGS_API void | hpgs_paint_device_set_image_interpolation (hpgs_paint_device *pdv, int i)
HPGS_API void | hpgs_paint_device_set_thin_alpha (hpgs_paint_device *pdv, double a)

## Detailed Description

The public interfaces.

A header file, which declares the public structures and functions provided by the hpgs library. The API declared in this header file remains stable across the whole series of release with the same major ans minor number.