summaryrefslogtreecommitdiff
path: root/source/fitz
AgeCommit message (Collapse)Author
2018-07-05Silence warning.Tor Andersson
2018-07-05Pass rects by value: device and document interface.Tor Andersson
2018-07-05Pass matrices by value: device and document interface.Tor Andersson
2018-07-05Pass rect and matrix by value in geometry functions.Tor Andersson
Several things irk me about passing values as const pointers: * They can be NULL, which is not a valid value. * They require explicit temporary variables for storage. * They don't compose easily in a legible manner, requiring weird pointer passing semantics where the variable being assigned is hidden as an argument in the innermost function call. * We can't change the value through the pointer, requiring yet more local variables to hold copies of the input value. In the device interface where we pass a matrix to a function, we often find ourselves making a local copy of the matrix so we can concatenate other transforms to it. This copying is a lot of unnecessary busywork that I hope to eventually avoid by laying the groundwork with this commit. This is a rather large API change, so I apologize for the inconvenience, but I hope the end result and gain in legibility will be worth the pain.
2018-07-04Clean up some incomprehensible code.Tor Andersson
2018-07-04Add fz_snap_selection function to snap selection to chars/words/lines.Tor Andersson
Updates the input point coordinates, and also returns a quad with appropriate UI handles.
2018-07-04Add fz_is_point_inside_rect utility function.Tor Andersson
2018-06-22Update base 14 fonts to URW++ release from 2017-07-27.Tor Andersson
The Dingbats and Symbol fonts have not been changed.
2018-06-22Don't pollute namespace with our 'restrict' macro. Use FZ_RESTRICT instead.Tor Andersson
2018-06-22Use fz_quad type in structured text and selection/highlighting.Tor Andersson
2018-06-22Add fz_quad type.Tor Andersson
2018-06-22Remember the md5 digest in the fz_font struct.Tor Andersson
2018-06-22Cache base14 and CJK fonts.Tor Andersson
Do not cache PDF fonts, since they have custom metrics and encodings that cannot be shared. This is primarily to speed up font loading for EPUB, PDF appearance synthesis, and any other uses of default metrics and unicode encoded fonts.
2018-06-22Check pointer for NULL in fz_free before locking.Tor Andersson
2018-06-11Use bin2coff to generate font data blobs object files.Tor Andersson
This is the windows equivalent of objcopy or ld -r binary. We need different bin2coff font object files for 32 and 64 bit builds, so put the font object files in AdditionalDependencies. Revamp Windows builds to use bin2coff. Fix bin2coff to not use '-' in symbol names. Add a new project file to make bin2coff. Add a .rules file to tell MSVC how to call the built version of bin2coff. Update libresources build to use this rules file. Update noto.c to correctly find the symbols we make.
2018-06-02Add a fz_strnlen function (strnlen is not standard C).Tor Andersson
2018-05-16Keep JBIG2 image data compressed in fz_compressed_buffer.Tor Andersson
2018-05-16Purge unused functions.Tor Andersson
2018-05-16Restore Emoji font.Tor Andersson
The Noto symbol font has been split into two. The second symbol font only contains a subset of the emojis, so reinstate the real emoji font and add both symbol fonts to the fallback chain.
2018-05-10Use fz_malloc_no_throw() in JPEG/DCT decoder.Sebastian Rasmussen
Suppose an application that uses MuPDF implements its own allocator that limits the amount of memory that may be allocated. When that condition occurs fz_malloc() will throw an exception, this exception would then be thrown right back to MuPDF without allowing for libjpeg to free any of the memory it has allocated. After this commit fz_malloc_no_throw() is called, which under the same conditions would simply return NULL. allowing for libjpeg to free what ever allocations it has done, and return to MuPDF with an error just like before.
2018-05-07pnm: Remember to always initialize variable.Sebastian Rasmussen
2018-04-27Handle multi-page image formats in muimg document driver.Tor Andersson
Remove the mutiff document type.
2018-04-27Support multipage pnm images.Sebastian Rasmussen
2018-04-25Update Noto fonts.Tor Andersson
Import Source Han Serif 1.001. Use serif fonts in preference for sans.
2018-04-25Update UCDN.Tor Andersson
2018-04-25Don't use WMode as part of CJK font lookup.Tor Andersson
Return TTC subfont index from fz_lookup_noto_font.
2018-04-25Default CJK language to traditional chinese.Tor Andersson
2018-04-25Try other CJK languages to find missing characters.Tor Andersson
2018-04-25Support creating both serif and sans-serif CJK fonts in mutool create.Tor Andersson
Also support Vertical WMode.
2018-04-25Use objcopy to compile font resources.Tor Andersson
2018-04-25Check in generated ICC profiles.Tor Andersson
2018-04-25Check in generated CMap source.Tor Andersson
Created with the 'scripts/runcmapdump.sh' script.
2018-04-23Avoid SEGV when mudrawing to SVG.Robin Watts
Belt and braces: 1) Don't attempt to close a NULL output stream. 2) If an output stream is NULL when we do close it, don't SEGV.
2018-04-19Support CalRGB (and CalGray) as destination color spacesMichael Vrhel
I did not foresee the case where a transparency groups color space could be a Cal color space. I had always thought of them as only be source color spaces not destination color spaces. This commit makes sure that we have the equivalent ICC profile when the destination is a Cal space.
2018-04-11Remove needless #defines in load-jpx.cTor Andersson
2018-04-11Rework how we handle DynaLab tricky fonts in freetype.Tor Andersson
Force the face_flags to include TRICKY if we detect a DynaLab font name instead of trying to force hinting ourselves.
2018-04-06Fix store multi-threading problem.Robin Watts
While running 'ensure_space', we can drop and retake the alloc lock. This can enable other threads to perform store operations, which can trigger reaps. When reaps happen, fz_item's are discarded. This is particularly bad when ensure_space happens to be holding onto a pointer to one (prev). The fix, implemented here, is to move items out of the store list (and hash table), and put them onto a local 'to_be_freed' list. Once on this local list we can be sure that they won't be found by other threads doing store operations, and they can be safely freed from there (dropping/retaking the lock as required).
2018-04-03Don't implicitly drop in fz_open_* chained filters.Tor Andersson
2018-04-03Fix error message in tar archive code.Tor Andersson
2018-04-03Android: Scavenge on Bitmap.lockPixels() failure.Robin Watts
If Bitmap.lockPixels fails with an allocation error, scavenge in the store.
2018-03-22Add fz_output encoding filters.Tor Andersson
2018-03-22Fall back to PDF document handler if no handler is found.Tor Andersson
2018-03-22Clean up windows ifdefs.Tor Andersson
_WIN32 is always defined on windows (it means the WinAPI is available). _WIN64 is also defined on 64-bit targets. This means the test for defined(_WIN32) || defined(_WIN64) is redundant, since if _WIN64 is defined, then _WIN32 is always also defined. MSC_VER is only defined for MSVC, so split the ifdef sections in include/fitz/system.h into separate MSVC and WIN32 parts so that we can build with MinGW and other non-MSVC compilers on windows.
2018-03-16Simplify PDF font creation code.Tor Andersson
Don't create a useless pdf_font_desc when writing font resources. Simplify reference counting by using fewer intermediate variables.
2018-03-16Add simple functions to create the built-in fonts by name.Tor Andersson
2018-03-16Don't extract text from annotations by default.Tor Andersson
2018-03-16Don't throw when fz_is_directory is called on a non-existent path.Tor Andersson
2018-03-16Fix 699087: Get scissor from stack after new entry pushed.Sebastian Rasmussen
Without this fix the stack may be resized and relocated and then the scissor might point to stale memory.
2018-03-16Fix 699086: Handle freetype not returning glyph advance.Sebastian Rasmussen
2018-03-14Bug 699110: Fix Antialiased renderer to look at correct scale factor.Robin Watts
Rather than looking at their individual scale factors, they were looking at the global one.