summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2013-07-19Initial work on progressive loadingRobin Watts
We are testing this using a new -p flag to mupdf that sets a bitrate at which data will appear to arrive progressively as time goes on. For example: mupdf -p 102400 pdf_reference17.pdf Details of the scheme used here are presented in docs/progressive.txt
2013-07-11Implement dynamic page tree lookups.Tor Andersson
No more caching a flattened page tree in doc->page_objs/refs. No more flattening of page resources, rotation and boxes. Smart page number lookup by following Parent links. Naive implementation of insert and delet page that doesn't rebalance the trees. Requires existing page tree to hook into, cannot be used to create a page tree from scratch.
2013-07-04Update pdf_write_document to support incremental updatePaul Gardiner
2013-07-03Avoid fz_throw/message on every annotation without appearance.Robin Watts
Annotations can sometimes not have appearance streams (such as Links). Avoid spewing messages to the console about this. Also avoids overhead of throw/catch each time.
2013-07-03Rename pdf_set_objects_parent_num to pdf_set_obj_parentRobin Watts
2013-07-03Avoid spurious, broken-annotation warning when appearance stream missingPaul Gardiner
2013-07-01Bug 694382: Fix use-after-free due to type3 fonts.Robin Watts
Thanks to zeniko for spotting the problem here. Type 3 fonts contain a reference to the resources objects required to render the glyphs. Traditionally these have been freed when the font is freed. Unfortunately, after recent changes, freeing a PDF object requires the pdf_document concerned to still exist. While in most cases the type 3 resources are not used after we have converted the type3 glyphs to display lists, this is not always the case. For uncachable Type 3 glyphs (such as those that do not completely define elements in the graphics state that they use, such as color or line width), we end up running the glyphs at interpretation time. [ Interpretation time = when doing a direct render on the main thread, or when creating a display list - so also on the main thread. No multi-threading issues with file access here. ] The fix implemented here is for each pdf document to keep a list of the type3 fonts it has created, and to 'decouple' them from the document when the document is destroyed. The sole effect of this decoupling is to remove the resources (and the PDF operator buffers) from the font. These are only ever used during interpretation, and no further interpretations are possible without the document being alive anyway, so this should have no net effect on operation, other than allowing cleanup to proceed cleanly later on.
2013-06-28Add array_insert_drop and array_delete functions.Tor Andersson
Also add index argument to array_insert.
2013-06-28Ensure altered objects are moved to the incremental xref sectionPaul Gardiner
2013-06-28Modify FZ_NORETURN to work on MSVC too.Robin Watts
We need to have it as a prefix, not a postfix now, but it should work on both gcc and MSVC now.
2013-06-27Move to using a flags bit rather than "Dirty" dict entries.Robin Watts
Correct the naming scheme for pdf_obj_xxx functions.
2013-06-26Silence compiler warnings.Tor Andersson
2013-06-25Rework storing internal flags in PDF objects.Robin Watts
Before we render a page we need to evaluate whether we need transparency or not. To establish this, we recursively walk the resources looking for certain markers (blend modes, alpha levels, smasks etc). To avoid doing this repeatedly we'd like to stash the results somewhere. Currently we write a '.useBM' entry into the top level dictionary object, but with the recent changes to support incremental update this is not ideal - it has the effect of forcing all resources into the new section of the xref. So we avoid that horrible hack and use a different one; we make use of the new flags word in the pdf_obj structure. 1 bit is used to indicate whether we have stashed a (boolean) value here, and another bit is used to indicate what that value was.
2013-06-25Rid the world of "pdf_document *xref".Robin Watts
For historical reasons lots of the code uses "xref" when talking about a pdf document. Now pdf_xref is a separate type this has become confusing, so replace 'xref' with 'doc' for clarity.
2013-06-25Update pdf_obj's to have a pdf_document field.Robin Watts
Remove the fz_context field to avoid the structure growing.
2013-06-24Update annotation handling in preparation for incremental updatePaul Gardiner
When incremental update is in place, functions that alter one structure may have the side-effect of altering another: i.e., updating an annotation may require the Annots array or even the page to be cloned. This commit makes the existing annotation code hardy to this eventuallity. It also cleans up a slight mess of the past where not all annotation-altering functions had access to the pdf_annot struture, instead having to work with just the pdf object.
2013-06-21Initial PDF editing/page creation commitRobin Watts
2013-06-21Fix Android builds.Robin Watts
Had to rejig the thumb entry/exit veneers to allow for NDK_PROFILER operation, but this seems to have negated the need for Core2.mk, so removed that here.
2013-06-20Rename fz_image_to_pixmap to fz_new_pixmap_from_image.Tor Andersson
Match our naming conventions.
2013-06-20Update source, makefiles and win32 projects.Tor Andersson
2013-06-20Comment fixes (rename fz_ to pdf_ was missed)Robin Watts
2013-06-19Exception handling changesRobin Watts
In preparation for work on progressive loading, update the exception handling scheme slightly. Until now, exceptions (as thrown with fz_throw, and caught with fz_try/fz_catch) have merely had an informative string. They have never had anything that can be compared to see if an error is of a particular type. We now introduce error codes; when we fz_throw, we now always give an error code, and can optionally (using fz_throw_message) give both an error code and an informative string. When we fz_rethrow from within a fz_catch, both the error code and the error message is maintained. Using fz_rethrow_message we can 'improve' the error message, but the code is maintained. The error message can be read out using fz_caught_message() and the error code can be read as fz_caught(). Currently we only define a 'generic' error. This will expand in future versions to include other error types that may be tested for.
2013-06-18Move fz_write_pixmap wrapper into pdfextract (its only user).Tor Andersson
2013-06-18Split pdf.h into subheaders.Tor Andersson
2013-06-18Add explicit #include for header file interdependencies.Tor Andersson
2013-06-18Split fitz.h into subheaders.Tor Andersson
2013-06-18Fix win32 project files.Tor Andersson
2013-06-18Merge common and internal headers into one.Tor Andersson
2013-06-18Move header files into separate include directory.Tor Andersson
2009-02-28Merge and move header files into the source directories.Tor Andersson
2009-02-28Move cmapdump and fontdump tools inside mupdf directory.Tor Andersson
2009-02-28Pre-compile the standard CMaps into c-structs instead of parsing them at ↵Tor Andersson
runtime.
2009-02-27Use compiled in CMaps instead of looking for them in $CMAPDIR.Tor Andersson
2009-02-27Enable hinting hack for dynalab fonts.Tor Andersson
2009-02-23Refactor fz_font and pdf_font mess into fz_font and pdf_fontdesc with more ↵Tor Andersson
font logic on the PDF side and freetype rendering on the fitz side.
2008-12-06Add interface to retrieve page object reference.Sebastian Rasmussen
2008-10-01Const-ify the arc4 interface.Ralph Giles
Allow passing const data into the api without generating warnings.
2008-10-16Put buffer->eof handling in filter struct, not in individual process functions.Tor Andersson
2008-09-29const-ify md5 interface.Ralph Giles
Allow passing const data into the api without generating warnings. This requires propagating the const into the underlying implementation.
2008-09-29Removed signed/unsigned char pointer warnings.Tor Andersson
2008-09-05Put back the NEED_STRLCPY, NEED_STRSEP and NEED_GETOPT flags.Tor Andersson
2008-09-05Simplify sysdep stuff to support only c99 and msvc.Tor Andersson
2008-09-03Revamp build system to compile in windows under both MSVC and MinGW.Tor Andersson
2008-09-02Use unsigned char type for coverage calculations to keep the value inside ↵Tor Andersson
the ring 0..255. This fixes a leaking pixel bug when drawing alpha blended paths.
2008-08-15Simplify (and possibly reduce performance) of fz_readall().Tor Andersson
2008-08-15Update static instances of fz_error objects to the new non-refcounted form.Tor Andersson
2008-08-14Remove unused type and struct member for link annotations.Tor Andersson
2008-08-14Remove unneccesary reference counting in the error objects.Tor Andersson
2008-08-14vs 2008 compatibility (kjk)Tor Andersson
2008-08-14add names for permission flags (kjk)Tor Andersson