Age | Commit message (Collapse) | Author |
|
This has knock on effects in the store.
fix
|
|
Calculations that involved non power of 2 bpps were going wrong.
|
|
When blanking pixmaps (or converting pixmap colors), watch out for
integer overflows.
|
|
|
|
|
|
Omitting the unlisted UTF-8 and UTF-32 CMaps saves ~1M.
Omitting the unlisted other CMaps saves ~200k.
Define CJK_CMAPS=0 to skip all CMaps.
Define EXTRA_CMAPS=1 to include the various other CMaps.
Define UTF8_CMAPS=1 and UTF32_CMAPS to include the UTF-8 and UTF-32 CMaps.
|
|
I had changed some code to *3 when creating the routine from the
4 bpp variant, but this particular multiplication should still
have been *4, as it was looking up in an int table.
|
|
In C we can't have a label as the only thing in a block.
|
|
clang only accepts the unified format - so use the unified syntax
everywhere, and add .syntax unified to tell the gnu assembler we're
using the unified syntax.
|
|
Lab colorspaces had been broken due to incorrect clipping of
color values introduced in an effort to fix Bug 696796.
|
|
Update the test device so it can be used 'wrapping' another
device.
In particular, it can be used to wrap the display list device
so that we can evaluate 'color or not' while building the
display list rather than having to rerun the display list
afterwards.
Also, give improved control over whether we test every pixel
of images/shadings.
|
|
|
|
We store an hb_font in every font, and currently have fz_drop_font
know to call harfbuzz to destroy it. This causes harfbuzz to be
included even in builds that never use it.
We improve this situation by storing both an hb_font, and a
function pointer to destroy it within fz_font. This costs us
an extra pointer per fz_font, but solves the problem.
|
|
Don't try to load SVG images if SVG support is disabled.
|
|
|
|
|
|
|
|
Introduce FZ_PLOTTER defines to set which defines we required.
Add FZ_ENABLE define to set which document handlers are built
by default.
|
|
|
|
Use do {} while(--w) rather than while(w--) {} as this safes a
test each time around the loop.
|
|
|
|
Again, mainly so profiling works nicely.
|
|
For the common cases, avoid the loop.
|
|
Profilers can't identify which of the switch arms we are in for
the inlined function calls, so rejig the code so that each of these
is a separate function.
In theory this code should be faster too, as the function 'lookup'
is only done one rather than once per line, but I don't expect this
to make a huge difference.
|
|
Use this for plotters so we can see which ones are being used
in any given build.
Build with -DTRACK_USAGE to enable.
|
|
|
|
|
|
PAM output was broken in the absence of alpha. Fixed now.
|
|
|
|
Converting a pixmap to an alpha only pixmap means "just keep
the alpha". If there IS no alpha, then a solid alpha is
assumed.
|
|
|
|
|
|
If we have alpha on the input, we preserve it. If we have no alpha
on the input, we have to create it in the output if the edges aren't
pixel aligned.
|
|
|
|
When no alpha present, we were omitting to decode the last
component.
|
|
In the absence of the source image having an alpha plane, we were
dropping the constant alpha during linear interpolated plotting.
|
|
Only do int to int copying if we have an int to copy from.
Also, when copying int to int, copy int32_t to int32_t to make
us more future proof.
|
|
|
|
|
|
|
|
Try and help C avoid pointer aliasing issues. Some of this may not
help at all. None of it should hurt though.
|
|
|
|
|
|
fz_pixmaps now have an explicit stride value. By default no change
from before, but code all copes with extra gaps at the end of the
line.
The alpha data in fz_pixmaps is no longer compulsory.
mudraw: use rgb not rgba (ppmraw), cmyk not cmyka (pkmraw).
Update halftone code to not expect alpha plane.
Update PNG writing to cope with alpha less input.
Also hide repeated params within the png output context.
ARM code needs updating.
|
|
When affine plotting with linear interpolation, we need to perform
different calculations for the texture and for the edge of the shape.
The edge of the shape needs to be calculated in exactly the same way
as for non-linear interpolated shapes.
The 'texture' position needs to be offset by 1/2 a texture unit in
each direction so that the 'pure' color is given in the middle of
the texture cells image, not in the top left corner.
To achieve these aims, we actually offset the u/v positions by 1/2
(32768, given the fixed point we are using) and adjust for this in
the boundary tests.
I have a test file that shows this working, which I will attach to
the bug, and add to the regression suite.
|
|
|
|
Add some paranoid checks to pdf_graft_object to prevent user
errors from crashing mupdf.
|
|
|
|
|
|
|