Age | Commit message (Collapse) | Author |
|
All of the ICodec_* interfaces had a single implementation. This CL removes
the interfaces and uses the concrete classes in their place.
BUG=pdfium:468
Review URL: https://codereview.chromium.org/1876023003
|
|
Attempting to open bug_434.pdf on my Linux box would fail with:
../../xfa/fxfa/app/xfa_fwltheme.cpp:96: virtual FWL_ERR
CXFA_FWLTheme::Initialize(): Assertion `__null != m_pCalendarFont' failed.
I tracked the regression back to [1].
The issue seems to be in CFX_FontManager::AddInstalledFont we will only add
one font for a given Charset. In my case I end up loading 6 charsets, but the
fonts are all strange ones. When I open the PDF, it fails to find 'Arial'
because I've registered these other fonts.
To fix this I changed the m_FaceArray into a struct of {name, chraset}. Then
we record all fonts into this list and search over that list for the charset
when needed. This allows bug_434.pdf to open and the test to pass successfully.
1- https://pdfium.googlesource.com/pdfium/+/fe73e7849b8b4ce49408d2f52f3fc29b370b82b5
Review URL: https://codereview.chromium.org/1874433002
|
|
Using these webpages as guides
http://www.globelegislators.org/pdfjs/test/pdfs/alphatrans.pdf
http://www.antennahouse.com/antenna1/wp-content/uploads/2015/07/background-image-gradient-1.pdf
flesh out the gradient shaders to include the PostScript Type 0
sampling function and to include radial gradients. This CL makes
rendering these pages agree with Adobe Reader output.
Some of these examples use an Extend array to clip the gradient.
Skia does not currently support this natively, so construct the
clip manually for now.
Other PDF pages may construct gradients using alternate mechanisms
-- this code will continue to be refactored as those come to light.
In particular, this CL sets up the clip and matrix differently for
axial gradients and radial gradients -- while it makes sense to do
it one way only, I prefer to defer until I have more examples to
work with.
R=dsinclair@chromium.org,tsepez@chromium.org
Review URL: https://codereview.chromium.org/1870463002
|
|
- Using |-skew| to get positive index, which doesn't work when skew is
INT_MIN
- Incorrect logic when determining when to use |-skew| as an index.
R=tsepez@chromium.org,weili@chromium.org
BUG=chromium:601362
Review URL: https://codereview.chromium.org/1875673004
|
|
Neither are implemented. Removed.
BUG=pdfium:468
Review URL: https://codereview.chromium.org/1872463002
|
|
BUG=
Review URL: https://codereview.chromium.org/1868293002
|
|
The naming is redundant given the base type, and will stand
in the way of consolidating Byte and Wide code.
BUG=
Review URL: https://codereview.chromium.org/1862123003
|
|
Shuffled the order of methods in fx_basic_wstring.cpp to
match those in fx_basic_bstring.cpp. The way to review
this patch is to diff those two files against each other.
They are beginning to converge.
Re-ordered some parameters in Concat() so that the string
comes before its length. It feels wrong otherwise.
Review URL: https://codereview.chromium.org/1846793002
|
|
Interface is never implemented.
BUG=pdfium:468
Review URL: https://codereview.chromium.org/1864893003
|
|
Review URL: https://codereview.chromium.org/1864153002
|
|
This CL is a straight move of the fxge includes into core/fxge/include.
Review URL: https://codereview.chromium.org/1868533002
|
|
Copy code from the agg driver so that the Skia
driver is no longer dependent on it.
The copied code doesn't in turn call
agg; it was in the agg driver for convenience.
Much of the copied code will eventually be replaced
by native Skia code, so there's not much point
in rewriting it to make it more efficient or
maintainable.
R=dsinclair@chromium.org,tsepez@chromium.org
Review URL: https://codereview.chromium.org/1865883002
|
|
This CL updates CFX_ByteStringC to use the more common c_str
and raw_str instead of GetCStr and GetPtr.
Review URL: https://codereview.chromium.org/1857713003
|
|
Having this happen implicitly can be dangerous because the lifetime
has to be considered; we should have caught the "red bots" in
https://codereview.chromium.org/1847333004/#ps60001 at compile time.
Review URL: https://codereview.chromium.org/1853233002
|
|
One bit bitmaps may be black and white or may be alpha masks.
Treat alpha masks as transparent/opaque instead of black/white.
R=dsinclair@chromium.org
Review URL: https://codereview.chromium.org/1858613003
|
|
Reuse the Skia typeface on sucessive text draw calls.
This reduces the SKP size by 100x for some documents.
Note that this does not use a smart pointer for the
Skia typeface object. The downside of doing so is that
it requires all clients that include fx_font.h to also
have access to Skia.
In this specific case, it is preferable to have a
forward declared class to isolate Skia from the rest of PDFium.
R=dsinclair,tsepez@chromium.org
Review URL: https://codereview.chromium.org/1837113004
|
|
The code is changed or had been changed to no longer generate these
warnings. It is safe to re-enabled these warnings.
In this code change, we fixed some code which generates warnings 4018
(signed/unsigned mismatch) and 4146 (unary minus operator applied to
unsigned type, result still unsigned).
Warning 4333 (right shift by too large amount, data loss) and 4345
(an object of POD type constructed with an initializer of the form ()
will be default-initialized) are no longer generated.
The same setting is applied and verified for GN build as well.
BUG=pdfium:29
Review URL: https://codereview.chromium.org/1849443003
|
|
This makes pdfium code on Linux and Mac sign-compare warning free.
The warning flag will be re-enabled after checking on windows clang build.
BUG=pdfium:29
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1841643002 .
|
|
Remove unimplemented/unused class, and other cleanup
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1834063002 .
|
|
The warnings generated by Clang. This is part 1 for some simple cases.
BUG=pdfium:29
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1840483003 .
|
|
Review URL: https://codereview.chromium.org/1832173003
|
|
To draw paths that are stroked and filled with a pair of colors,
reduce the fill by the width of the stroke. This is implemented
with path ops subtracting the resolved stroke shape from the
fill shape. This permits rendering the result without requiring
an offscreen bitmap.
The implementation for stroke+fill requires a new entry into
the graphics engine, so a bit was added to device caps for that.
Extract the gradient information out of the axial gradient
function descriptions, and when possible, use Skia to draw
the linear gradient directly. This requires making the function
descriptions non-opaque, and adding a bit to device caps for
another entry into the graphics engine.
BUG=
Review URL: https://codereview.chromium.org/1828283002
|
|
This CL removes _FPDFAPI_GetInternalFontData which is not implemented,
FWL_PostMessageToMainRoop which has no body and the PostMessage which was
the only caller.
FWL_ShowCaret is moved to the only place where it's used.
BUG=pdfium:112
Review URL: https://codereview.chromium.org/1827343003
|
|
Patch by forshaw.
This patch adds bounds checking to the names buffer passed to GetNameFromTT.
There are observed crashes in this function where data is read outside of
the bounds allocated and passed to GetNameFromTT. There's no reason that
this function should ever try and read outside of the allocated bounds.
BUG=583037
TBR=forshaw@chromium.org
patch from issue 1829013002 at patchset 40001 (http://crrev.com/1829013002#ps40001)
Review URL: https://codereview.chromium.org/1830243003 .
|
|
Compilers have good inline memcmp nowadays, so we don't
have to resort to old tricks.
Remove FXDWORD_FROM_LSBFIRST and FXDWORD_FROM_MSBFIRST
while we're at it. MSBFIRST was technically wrong due
to promotion to int.
R=dsinclair@chromium.org
Review URL: https://codereview.chromium.org/1834553002 .
|
|
Use FreeType instead of Direct Write on Windows. Since PDFium
currently uses the graphics engine to draw but not to measure,
the graphics engine needs to always use FreeType to get
consistent metrics.
Add a translation from PDF's blend modes to Skia's xfer modes.
Turn on subpixel positioning for text to get more precise
glyph placement.
Pass the alpha through to get proper bitmap transparency.
Address earlier nits.
R=dsinclair@chromium.org, tsepez@chromium.org, dsinclair
Review URL: https://codereview.chromium.org/1812263002 .
|
|
This CL moves the fxcrt code into the core/fxcrt directory. The only exception
was fx_bidi.h which was moved into core/fxcrt as it is not used outside of
core/.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1825953002 .
|
|
BUG=pdfium:29
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1821423002 .
|
|
It isn't buying us anthing, and it looks strange in
a struct when other uint types are already present.
R=dsinclair@chromium.org
Review URL: https://codereview.chromium.org/1821043003 .
|
|
The only one that is ever used is FXDIB_PALETTE_loc, so remove
the option entirely. In turn, this allows deleting about 2KB
of unused constant tables.
R=ochang@chromium.org
Review URL: https://codereview.chromium.org/1809943007 .
|
|
Re-enable the following warnings:
4245: signed/unsigned conversion mismatch;
4310: cast may truncate data;
4389: operator on signed/unsigned mismatch;
4701: use potentially uninitialized local variable;
4706: assignment within conditional expression
Clean up the code to avoid those warnings.
BUG=pdfium:29
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1801383002 .
|
|
More Skia driver cleanup.
Fix the GN build for Skia.
Remove unused functions from header.
Remove agg setup that is not required.
Change path construction to use the SkCanvas matrix to position the path
rather than converting the points directly.
Draw stroked paths using Skia rather than generated the filled path.
Pin the minimum stroke width to 1 px in device space to mimic PDF's stroke
dropout control.
Factor out flipped and non-flipped matrices.
Add some debugging code.
Set the bitmap filter quality to high. This helps a lot with 1 bit sources.
R=dsinclair@chromium.org, dsinclair, tsepez
Review URL: https://codereview.chromium.org/1806843002 .
|
|
This CL adds the necessary pieces so you can add pdf_use_skia=1 to GYP_DEFINES
and do a standalone build.
R=caryclark@google.com
Review URL: https://codereview.chromium.org/1812563002 .
|
|
Fix warnings in win32_int.h
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1809473002 .
|
|
This Cl moves a bunch of the files from core/include/fpdfapi to their correct
location outside the core/include tree.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1805603002 .
|
|
BUG=pdfium:29
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1800793002 .
|
|
This is a first-cut at supporting bitmaps.
Also added a --skp option to pdfium_test to generate
a Skia picture file. The picture file can be loaded
in Skia's SampleApp, debugger, or skiaserver to
examine the generated picture.
(This also includes fixes suggested in the prior Skia CL.
My apologies for fat-fingers abandoning that one.)
R=dsinclair@chromium.org, tsepez@chromium.org, dsinclair
Review URL: https://codereview.chromium.org/1776313002 .
|
|
This CL adds the needed DEPS files to make checkdeps pass correctly. The
checkdeps PRESUBMIT method has been copied from Chromium and is enabled on
CL upload.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1801923002 .
|
|
This CL moves the core/src/ files up to core/ and fixes up the include guards,
includes and build files.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1800523005 .
|