summaryrefslogtreecommitdiff
path: root/src/pdf_bridge.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pdf_bridge.h')
-rw-r--r--src/pdf_bridge.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/pdf_bridge.h b/src/pdf_bridge.h
index e3514437..29d87bff 100644
--- a/src/pdf_bridge.h
+++ b/src/pdf_bridge.h
@@ -183,7 +183,10 @@ enum {
PARDES_PDF_MAX_OUTLINE_ITEMS = 8192,
PARDES_PDF_MAX_OUTLINE_DEPTH = 64,
PARDES_PDF_MAX_OUTLINE_BYTES = 4 * 1024 * 1024,
- PARDES_PDF_MAX_LINK_URI_BYTES = 64 * 1024
+ PARDES_PDF_MAX_LINK_URI_BYTES = 64 * 1024,
+
+ /* No page raster is taller than this, whatever it is shown at. */
+ PARDES_PDF_MAX_RASTER_ROWS = 1 << 20
};
pardes_pdf_document *pardes_pdf_open(const char *path, int *page_count);
@@ -199,7 +202,11 @@ int pardes_pdf_get_page_size(
/*
* Start at dpi, raise the uniform scale until both optional minimum pixel
- * dimensions are met, then clamp the page's longest side to max_dimension.
+ * dimensions are met, then clamp the page's width to max_dimension, and its
+ * height too unless that would draw it smaller than the optional display size
+ * (the width or height it is shown at): a tall page is then as tall as it is
+ * shown, and its owner renders it in bands. Every function below takes the
+ * same request and computes the same raster from it.
* Measuring may populate the page cache, but never advances adaptive display
* list promotion; only a successful render_into does that.
*/
@@ -210,6 +217,8 @@ int pardes_pdf_measure_render(
int minimum_width,
int minimum_height,
int max_dimension,
+ int display_width,
+ int display_height,
pardes_pdf_raster_layout *out
);
@@ -233,6 +242,8 @@ int pardes_pdf_render_into(
int minimum_width,
int minimum_height,
int max_dimension,
+ int display_width,
+ int display_height,
const pardes_pdf_highlight *highlights,
size_t highlight_count,
unsigned char *samples,
@@ -257,6 +268,8 @@ int pardes_pdf_paint_highlights(
int minimum_width,
int minimum_height,
int max_dimension,
+ int display_width,
+ int display_height,
const pardes_pdf_highlight *highlights,
size_t highlight_count,
unsigned char *samples,
@@ -280,6 +293,8 @@ int pardes_pdf_highlight_rows(
int minimum_width,
int minimum_height,
int max_dimension,
+ int display_width,
+ int display_height,
const pardes_pdf_highlight *highlights,
size_t highlight_count,
int *row_start,