Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
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.
|
|
|
|
Updates the input point coordinates, and also returns a quad with
appropriate UI handles.
|
|
|
|
The Dingbats and Symbol fonts have not been changed.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
Remove the mutiff document type.
|
|
|
|
Import Source Han Serif 1.001.
Use serif fonts in preference for sans.
|
|
|
|
Return TTC subfont index from fz_lookup_noto_font.
|
|
|
|
|
|
Also support Vertical WMode.
|
|
|
|
|
|
Created with the 'scripts/runcmapdump.sh' script.
|
|
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.
|
|
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.
|
|
|
|
Force the face_flags to include TRICKY if we detect a DynaLab font
name instead of trying to force hinting ourselves.
|
|
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).
|
|
|
|
|
|
If Bitmap.lockPixels fails with an allocation error, scavenge in
the store.
|
|
|
|
|
|
_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.
|
|
Don't create a useless pdf_font_desc when writing font resources.
Simplify reference counting by using fewer intermediate variables.
|
|
|
|
|
|
|
|
Without this fix the stack may be resized and relocated and
then the scissor might point to stale memory.
|
|
|
|
Rather than looking at their individual scale factors, they
were looking at the global one.
|