23#ifndef MUPDF_FITZ_DEVICE_H
24#define MUPDF_FITZ_DEVICE_H
134#define fz_new_derived_function(CTX,TYPE,SIZE,M,N,EVAL,DROP) \
135 ((TYPE*)Memento_label(fz_new_function_of_size(CTX,sizeof(TYPE),SIZE,M,N,EVAL,DROP), #TYPE))
389#define fz_new_derived_device(CTX, TYPE) \
390 ((TYPE *)Memento_label(fz_new_device_of_size(ctx,sizeof(TYPE)),#TYPE))
403#define fz_new_derived_passthrough_device(CTX, PASSTHRU, TYPE) \
404 ((TYPE *)Memento_label(fz_new_passthrough_device_of_size(ctx,PASSTHRU,sizeof(TYPE)),#TYPE))
@ FZ_MAX_COLORS
Definition color.h:102
fz_device * fz_new_draw_device(fz_context *ctx, fz_matrix transform, fz_pixmap *dest)
void fz_init_draw_options(fz_context *ctx, fz_draw_options *draw_options)
fz_function * fz_new_function_of_size(fz_context *ctx, int size, size_t size2, int m, int n, fz_function_eval_fn *eval, fz_store_drop_fn *drop)
void fz_end_layer(fz_context *ctx, fz_device *dev)
fz_rect fz_device_current_scissor(fz_context *ctx, fz_device *dev)
fz_structure fz_structure_from_string(const char *str)
void fz_clip_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, const fz_stroke_state *stroke, fz_matrix ctm, fz_rect scissor)
fz_device * fz_new_draw_device_with_proof(fz_context *ctx, fz_matrix transform, fz_pixmap *dest, fz_colorspace *proof_cs)
void fz_close_device(fz_context *ctx, fz_device *dev)
void fz_end_metatext(fz_context *ctx, fz_device *dev)
FZ_DATA const char * fz_draw_options_usage
int fz_lookup_blendmode(const char *name)
fz_device * fz_new_draw_device_with_options(fz_context *ctx, const fz_draw_options *options, fz_rect mediabox, fz_pixmap **pixmap)
void fz_clip_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, fz_matrix ctm, fz_rect scissor)
fz_structure
Definition device.h:194
@ FZ_STRUCTURE_EM
Definition device.h:255
@ FZ_STRUCTURE_P
Definition device.h:221
@ FZ_STRUCTURE_DIV
Definition device.h:202
@ FZ_STRUCTURE_LABEL
Definition device.h:233
@ FZ_STRUCTURE_RP
Definition device.h:262
@ FZ_STRUCTURE_REFERENCE
Definition device.h:249
@ FZ_STRUCTURE_H6
Definition device.h:228
@ FZ_STRUCTURE_LISTBODY
Definition device.h:234
@ FZ_STRUCTURE_DOCUMENTFRAGMENT
Definition device.h:211
@ FZ_STRUCTURE_SPAN
Definition device.h:246
@ FZ_STRUCTURE_CODE
Definition device.h:251
@ FZ_STRUCTURE_WARICHU
Definition device.h:265
@ FZ_STRUCTURE_TD
Definition device.h:240
@ FZ_STRUCTURE_PRIVATE
Definition device.h:209
@ FZ_STRUCTURE_H3
Definition device.h:225
@ FZ_STRUCTURE_TOC
Definition device.h:205
@ FZ_STRUCTURE_FORM
Definition device.h:272
@ FZ_STRUCTURE_BIBENTRY
Definition device.h:250
@ FZ_STRUCTURE_SUB
Definition device.h:218
@ FZ_STRUCTURE_WP
Definition device.h:267
@ FZ_STRUCTURE_INDEX
Definition device.h:207
@ FZ_STRUCTURE_TITLE
Definition device.h:215
@ FZ_STRUCTURE_RT
Definition device.h:261
@ FZ_STRUCTURE_LINK
Definition device.h:252
@ FZ_STRUCTURE_STRONG
Definition device.h:256
@ FZ_STRUCTURE_RUBY
Definition device.h:259
@ FZ_STRUCTURE_NONSTRUCT
Definition device.h:208
@ FZ_STRUCTURE_TOCI
Definition device.h:206
@ FZ_STRUCTURE_H4
Definition device.h:226
@ FZ_STRUCTURE_THEAD
Definition device.h:241
@ FZ_STRUCTURE_DOCUMENT
Definition device.h:198
@ FZ_STRUCTURE_H5
Definition device.h:227
@ FZ_STRUCTURE_TBODY
Definition device.h:242
@ FZ_STRUCTURE_BLOCKQUOTE
Definition device.h:203
@ FZ_STRUCTURE_ANNOT
Definition device.h:253
@ FZ_STRUCTURE_SECT
Definition device.h:201
@ FZ_STRUCTURE_QUOTE
Definition device.h:247
@ FZ_STRUCTURE_TR
Definition device.h:238
@ FZ_STRUCTURE_PART
Definition device.h:199
@ FZ_STRUCTURE_H1
Definition device.h:223
@ FZ_STRUCTURE_INVALID
Definition device.h:195
@ FZ_STRUCTURE_ASIDE
Definition device.h:213
@ FZ_STRUCTURE_H2
Definition device.h:224
@ FZ_STRUCTURE_LIST
Definition device.h:231
@ FZ_STRUCTURE_CAPTION
Definition device.h:204
@ FZ_STRUCTURE_FIGURE
Definition device.h:270
@ FZ_STRUCTURE_TFOOT
Definition device.h:243
@ FZ_STRUCTURE_H
Definition device.h:222
@ FZ_STRUCTURE_RB
Definition device.h:260
@ FZ_STRUCTURE_FORMULA
Definition device.h:271
@ FZ_STRUCTURE_WT
Definition device.h:266
@ FZ_STRUCTURE_ARTIFACT
Definition device.h:275
@ FZ_STRUCTURE_LISTITEM
Definition device.h:232
@ FZ_STRUCTURE_TH
Definition device.h:239
@ FZ_STRUCTURE_FENOTE
Definition device.h:216
@ FZ_STRUCTURE_ART
Definition device.h:200
@ FZ_STRUCTURE_NOTE
Definition device.h:248
@ FZ_STRUCTURE_TABLE
Definition device.h:237
fz_metatext
Definition device.h:282
@ FZ_METATEXT_ABBREVIATION
Definition device.h:285
@ FZ_METATEXT_ALT
Definition device.h:284
@ FZ_METATEXT_ACTUALTEXT
Definition device.h:283
@ FZ_METATEXT_TITLE
Definition device.h:286
@ FZ_DEVFLAG_FILLCOLOR_UNDEFINED
Definition device.h:54
@ FZ_DEVFLAG_LINEJOIN_UNDEFINED
Definition device.h:59
@ FZ_DEVFLAG_DASHCAP_UNDEFINED
Definition device.h:57
@ FZ_DEVFLAG_BBOX_DEFINED
Definition device.h:62
@ FZ_DEVFLAG_MITERLIMIT_UNDEFINED
Definition device.h:60
@ FZ_DEVFLAG_STROKECOLOR_UNDEFINED
Definition device.h:55
@ FZ_DEVFLAG_STARTCAP_UNDEFINED
Definition device.h:56
@ FZ_DEVFLAG_COLOR
Definition device.h:52
@ FZ_DEVFLAG_MASK
Definition device.h:51
@ FZ_DEVFLAG_DASH_PATTERN_UNDEFINED
Definition device.h:64
@ FZ_DEVFLAG_LINEWIDTH_UNDEFINED
Definition device.h:61
@ FZ_DEVFLAG_UNCACHEABLE
Definition device.h:53
@ FZ_DEVFLAG_GRIDFIT_AS_TILED
Definition device.h:63
@ FZ_DEVFLAG_ENDCAP_UNDEFINED
Definition device.h:58
void fz_begin_structure(fz_context *ctx, fz_device *dev, fz_structure standard, const char *raw, int idx)
fz_device * fz_new_device_of_size(fz_context *ctx, int size)
void fz_end_structure(fz_context *ctx, fz_device *dev)
void fz_end_mask(fz_context *ctx, fz_device *dev)
fz_device * fz_new_trace_device(fz_context *ctx, fz_output *out)
@ FZ_FUNCTION_MAX_N
Definition device.h:118
@ FZ_FUNCTION_MAX_M
Definition device.h:119
void fz_enable_device_hints(fz_context *ctx, fz_device *dev, int hints)
fz_device * fz_new_bbox_device(fz_context *ctx, fz_rect *rectp)
void fz_begin_group(fz_context *ctx, fz_device *dev, fz_rect area, fz_colorspace *cs, int isolated, int knockout, int blendmode, float alpha)
void fz_function_eval_fn(fz_context *, fz_function *, const float *, float *)
Definition device.h:114
void fz_set_default_colorspaces(fz_context *ctx, fz_device *dev, fz_default_colorspaces *default_cs)
const char * fz_blendmode_name(int blendmode)
void fz_disable_device_hints(fz_context *ctx, fz_device *dev, int hints)
fz_draw_options * fz_parse_draw_options(fz_context *ctx, fz_draw_options *draw_options, const char *string)
void fz_apply_draw_options(fz_context *ctx, fz_draw_options *draw_options, fz_options *options)
int fz_begin_tile_id(fz_context *ctx, fz_device *dev, fz_rect area, fz_rect view, float xstep, float ystep, fz_matrix ctm, int id)
fz_device * fz_new_xmltext_device(fz_context *ctx, fz_output *out)
void fz_drop_function(fz_context *ctx, fz_function *func)
fz_device * fz_new_culling_device_with_rects(fz_context *ctx, fz_device *passthrough, int n, const fz_rect *rects)
void fz_fill_text(fz_context *ctx, fz_device *dev, const fz_text *text, fz_matrix ctm, fz_colorspace *colorspace, const float *color, float alpha, fz_color_params color_params)
void fz_begin_tile(fz_context *ctx, fz_device *dev, fz_rect area, fz_rect view, float xstep, float ystep, fz_matrix ctm)
void fz_pop_clip(fz_context *ctx, fz_device *dev)
fz_device * fz_keep_device(fz_context *ctx, fz_device *dev)
fz_device * fz_new_draw_device_type3(fz_context *ctx, fz_matrix transform, fz_pixmap *dest)
fz_device * fz_new_culling_device(fz_context *ctx, fz_device *passthrough, const fz_culling_options *opts)
fz_function * fz_keep_function(fz_context *ctx, fz_function *func)
@ fz_device_container_stack_is_tile
Definition device.h:189
@ fz_device_container_stack_is_mask
Definition device.h:187
@ fz_device_container_stack_is_group
Definition device.h:188
@ fz_device_container_stack_is_clip
Definition device.h:186
void fz_stroke_path(fz_context *ctx, fz_device *dev, const fz_path *path, const fz_stroke_state *stroke, fz_matrix ctm, fz_colorspace *colorspace, const float *color, float alpha, fz_color_params color_params)
@ FZ_BLEND_SOFT_LIGHT
Definition device.h:79
@ FZ_BLEND_MODEMASK
Definition device.h:90
@ FZ_BLEND_SATURATION
Definition device.h:85
@ FZ_BLEND_LUMINOSITY
Definition device.h:87
@ FZ_BLEND_HUE
Definition device.h:84
@ FZ_BLEND_ISOLATED
Definition device.h:91
@ FZ_BLEND_EXCLUSION
Definition device.h:81
@ FZ_BLEND_KNOCKOUT
Definition device.h:92
@ FZ_BLEND_DARKEN
Definition device.h:74
@ FZ_BLEND_NORMAL
Definition device.h:70
@ FZ_BLEND_MULTIPLY
Definition device.h:71
@ FZ_BLEND_COLOR_BURN
Definition device.h:77
@ FZ_BLEND_HARD_LIGHT
Definition device.h:78
@ FZ_BLEND_SCREEN
Definition device.h:72
@ FZ_BLEND_COLOR_DODGE
Definition device.h:76
@ FZ_BLEND_COLOR
Definition device.h:86
@ FZ_BLEND_LIGHTEN
Definition device.h:75
@ FZ_BLEND_OVERLAY
Definition device.h:73
@ FZ_BLEND_DIFFERENCE
Definition device.h:80
const char * fz_structure_to_string(fz_structure type)
void fz_fill_image_mask(fz_context *ctx, fz_device *dev, fz_image *image, fz_matrix ctm, fz_colorspace *colorspace, const float *color, float alpha, fz_color_params color_params)
fz_device * fz_new_passthrough_device_of_size(fz_context *ctx, fz_device *passthrough, int size)
void fz_fill_shade(fz_context *ctx, fz_device *dev, fz_shade *shade, fz_matrix ctm, float alpha, fz_color_params color_params)
void fz_begin_mask(fz_context *ctx, fz_device *dev, fz_rect area, int luminosity, fz_colorspace *colorspace, const float *bc, fz_color_params color_params)
void fz_ignore_text(fz_context *ctx, fz_device *dev, const fz_text *text, fz_matrix ctm)
void fz_clip_image_mask(fz_context *ctx, fz_device *dev, fz_image *image, fz_matrix ctm, fz_rect scissor)
fz_device * fz_new_test_device(fz_context *ctx, int *is_color, float threshold, int options, fz_device *passthrough)
fz_device * fz_new_draw_device_with_bbox(fz_context *ctx, fz_matrix transform, fz_pixmap *dest, const fz_irect *clip)
void fz_render_flags(fz_context *ctx, fz_device *dev, int set, int clear)
void fz_fill_path(fz_context *ctx, fz_device *dev, const fz_path *path, int even_odd, fz_matrix ctm, fz_colorspace *colorspace, const float *color, float alpha, fz_color_params color_params)
void fz_end_mask_tr(fz_context *ctx, fz_device *dev, fz_function *fn)
@ FZ_TEST_OPT_SHADINGS
Definition device.h:562
@ FZ_TEST_OPT_IMAGES
Definition device.h:558
void fz_begin_layer(fz_context *ctx, fz_device *dev, const char *layer_name)
void fz_fill_image(fz_context *ctx, fz_device *dev, fz_image *image, fz_matrix ctm, float alpha, fz_color_params color_params)
size_t fz_function_size(fz_context *ctx, fz_function *func)
void fz_stroke_text(fz_context *ctx, fz_device *dev, const fz_text *text, const fz_stroke_state *stroke, fz_matrix ctm, fz_colorspace *colorspace, const float *color, float alpha, fz_color_params color_params)
@ FZ_DONT_INTERPOLATE_IMAGES
Definition device.h:449
@ FZ_NO_TILING
Definition device.h:452
@ FZ_NO_CACHE
Definition device.h:450
@ FZ_DONT_DECODE_IMAGES
Definition device.h:451
int fz_begin_tile_tid(fz_context *ctx, fz_device *dev, fz_rect area, fz_rect view, float xstep, float ystep, fz_matrix ctm, int id, int doc_id)
void fz_clip_stroke_text(fz_context *ctx, fz_device *dev, const fz_text *text, const fz_stroke_state *stroke, fz_matrix ctm, fz_rect scissor)
void fz_end_tile(fz_context *ctx, fz_device *dev)
void fz_end_group(fz_context *ctx, fz_device *dev)
void fz_clip_text(fz_context *ctx, fz_device *dev, const fz_text *text, fz_matrix ctm, fz_rect scissor)
fz_device * fz_new_draw_device_with_bbox_proof(fz_context *ctx, fz_matrix transform, fz_pixmap *dest, const fz_irect *clip, fz_colorspace *cs)
void fz_drop_device(fz_context *ctx, fz_device *dev)
void fz_begin_metatext(fz_context *ctx, fz_device *dev, fz_metatext meta, const char *text)
void fz_eval_function(fz_context *ctx, fz_function *func, const float *in, int inlen, float *out, int outlen)
#define FZ_DATA
Definition export.h:49
struct fz_path fz_path
Definition path.h:39
void fz_store_drop_fn(fz_context *, fz_storable *)
Definition store.h:61
int progress
Definition device.h:501
size_t progress_max
Definition device.h:502
int incomplete
Definition device.h:504
int errors
Definition device.h:503
int abort
Definition device.h:500
int(* cull_fill_path)(fz_context *ctx, void *opaque, const fz_path *path, int even_odd, fz_matrix ctm, fz_colorspace *cs, const float *color, float alpha)
Definition device.h:579
int(* cull_stroke_path)(fz_context *ctx, void *opaque, const fz_path *path, const fz_stroke_state *state, fz_matrix ctm, fz_colorspace *cs, const float *color, float alpha)
Definition device.h:580
void * opaque
Definition device.h:576
int(* cull_glyph)(fz_context *ctx, void *opaque, fz_rect rect)
Definition device.h:578
void(* drop)(fz_context *ctx, void *opaque)
Definition device.h:582
int user
Definition device.h:181
fz_rect scissor
Definition device.h:179
int type
Definition device.h:180
void(* end_metatext)(fz_context *, fz_device *)
Definition device.h:334
void(* clip_stroke_text)(fz_context *, fz_device *, const fz_text *, const fz_stroke_state *, fz_matrix, fz_rect scissor)
Definition device.h:306
void(* fill_text)(fz_context *, fz_device *, const fz_text *, fz_matrix, fz_colorspace *, const float *color, float alpha, fz_color_params)
Definition device.h:303
void(* stroke_path)(fz_context *, fz_device *, const fz_path *, const fz_stroke_state *, fz_matrix, fz_colorspace *, const float *color, float alpha, fz_color_params)
Definition device.h:299
fz_device * passthrough
Definition device.h:343
void(* stroke_text)(fz_context *, fz_device *, const fz_text *, const fz_stroke_state *, fz_matrix, fz_colorspace *, const float *color, float alpha, fz_color_params)
Definition device.h:304
void(* clip_path)(fz_context *, fz_device *, const fz_path *, int even_odd, fz_matrix, fz_rect scissor)
Definition device.h:300
int container_cap
Definition device.h:339
int hints
Definition device.h:292
int flags
Definition device.h:293
void(* clip_image_mask)(fz_context *, fz_device *, fz_image *img, fz_matrix ctm, fz_rect scissor)
Definition device.h:312
void(* begin_mask)(fz_context *, fz_device *, fz_rect area, int luminosity, fz_colorspace *, const float *bc, fz_color_params)
Definition device.h:316
int(* begin_tile)(fz_context *, fz_device *, fz_rect area, fz_rect view, float xstep, float ystep, fz_matrix ctm, int id, int doc_id)
Definition device.h:321
void(* fill_shade)(fz_context *, fz_device *, fz_shade *shd, fz_matrix ctm, float alpha, fz_color_params color_params)
Definition device.h:309
void(* ignore_text)(fz_context *, fz_device *, const fz_text *, fz_matrix)
Definition device.h:307
fz_device_container_stack * container
Definition device.h:340
void(* end_layer)(fz_context *, fz_device *)
Definition device.h:328
void(* end_group)(fz_context *, fz_device *)
Definition device.h:319
int container_len
Definition device.h:338
void(* pop_clip)(fz_context *, fz_device *)
Definition device.h:314
void(* end_structure)(fz_context *, fz_device *)
Definition device.h:331
void(* drop_device)(fz_context *, fz_device *)
Definition device.h:296
int refs
Definition device.h:291
void(* fill_path)(fz_context *, fz_device *, const fz_path *, int even_odd, fz_matrix, fz_colorspace *, const float *color, float alpha, fz_color_params)
Definition device.h:298
void(* fill_image)(fz_context *, fz_device *, fz_image *img, fz_matrix ctm, float alpha, fz_color_params color_params)
Definition device.h:310
void(* fill_image_mask)(fz_context *, fz_device *, fz_image *img, fz_matrix ctm, fz_colorspace *, const float *color, float alpha, fz_color_params color_params)
Definition device.h:311
void(* close_device)(fz_context *, fz_device *)
Definition device.h:295
void(* set_default_colorspaces)(fz_context *, fz_device *, fz_default_colorspaces *)
Definition device.h:325
void(* begin_layer)(fz_context *, fz_device *, const char *layer_name)
Definition device.h:327
void(* begin_metatext)(fz_context *, fz_device *, fz_metatext meta, const char *text)
Definition device.h:333
void(* render_flags)(fz_context *, fz_device *, int set, int clear)
Definition device.h:324
void(* clip_stroke_path)(fz_context *, fz_device *, const fz_path *, const fz_stroke_state *, fz_matrix, fz_rect scissor)
Definition device.h:301
void(* begin_structure)(fz_context *, fz_device *, fz_structure standard, const char *raw, int idx)
Definition device.h:330
void(* end_tile)(fz_context *, fz_device *)
Definition device.h:322
void(* clip_text)(fz_context *, fz_device *, const fz_text *, fz_matrix, fz_rect scissor)
Definition device.h:305
fz_rect d1_rect
Definition device.h:336
void(* end_mask)(fz_context *, fz_device *, fz_function *fn)
Definition device.h:317
void(* begin_group)(fz_context *, fz_device *, fz_rect area, fz_colorspace *cs, int isolated, int knockout, int blendmode, float alpha)
Definition device.h:318
int height
Definition device.h:687
int text
Definition device.h:691
int y_resolution
Definition device.h:685
int x_resolution
Definition device.h:684
int alpha
Definition device.h:689
int graphics
Definition device.h:690
fz_colorspace * colorspace
Definition device.h:688
int rotate
Definition device.h:683
int width
Definition device.h:686
int n
Definition device.h:127
int m
Definition device.h:126
fz_storable storable
Definition device.h:124
size_t size
Definition device.h:125
fz_function_eval_fn * eval
Definition device.h:129
Definition geometry.h:248
Definition geometry.h:388
Definition geometry.h:231