43 lines
1.5 KiB
C
43 lines
1.5 KiB
C
#ifndef MUPDF_FITZ_DISPLAY_LIST_H
|
|
#define MUPDF_FITZ_DISPLAY_LIST_H
|
|
|
|
#include "mupdf/fitz/system.h"
|
|
#include "mupdf/fitz/context.h"
|
|
#include "mupdf/fitz/geometry.h"
|
|
#include "mupdf/fitz/device.h"
|
|
|
|
/*
|
|
Display list device -- record and play back device commands.
|
|
*/
|
|
|
|
/*
|
|
fz_display_list is a list containing drawing commands (text,
|
|
images, etc.). The intent is two-fold: as a caching-mechanism
|
|
to reduce parsing of a page, and to be used as a data
|
|
structure in multi-threading where one thread parses the page
|
|
and another renders pages.
|
|
|
|
Create a display list with fz_new_display_list, hand it over to
|
|
fz_new_list_device to have it populated, and later replay the
|
|
list (once or many times) by calling fz_run_display_list. When
|
|
the list is no longer needed drop it with fz_drop_display_list.
|
|
*/
|
|
typedef struct fz_display_list_s fz_display_list;
|
|
|
|
fz_display_list *fz_new_display_list(fz_context *ctx, fz_rect mediabox);
|
|
|
|
fz_device *fz_new_list_device(fz_context *ctx, fz_display_list *list);
|
|
|
|
void fz_run_display_list(fz_context *ctx, fz_display_list *list, fz_device *dev, fz_matrix ctm, fz_rect scissor, fz_cookie *cookie);
|
|
|
|
fz_display_list *fz_keep_display_list(fz_context *ctx, fz_display_list *list);
|
|
void fz_drop_display_list(fz_context *ctx, fz_display_list *list);
|
|
|
|
fz_rect fz_bound_display_list(fz_context *ctx, fz_display_list *list);
|
|
|
|
fz_image *fz_new_image_from_display_list(fz_context *ctx, float w, float h, fz_display_list *list);
|
|
|
|
int fz_display_list_is_empty(fz_context *ctx, const fz_display_list *list);
|
|
|
|
#endif
|