Age | Commit message (Collapse) | Author |
|
This code has several disadvantages over a more modern graphics engine:
- no SIMD support
- no GPU support
- limited quality
Further, calling this code locks in the perceived resolution, so that
the output cannot be scaled without additional loss.
By directing all bitmap drawing through
CFX_SkiaDeviceDriver::StartDIBits, Skia can handle all appropriate
bitmap optimizations.
To that end, SetDIBits and StretchDIBits now call StartDIBits.
Other changes:
Skia's bitmaps are premultiplied. PDF contains bitmaps that are
unpremultiplied. PDFium appears to use premultiplied bitmaps sometimes,
and unpremultiplied bitmaps elsewhere. Add a debug check for
unpremultiplied bits in Skia's driver, and add a utility to premultiply
PDFium's bitmaps' bits.
PDFium supports a 24 bit RGB bitmap padded to a 32 bit word. Set the
high byte so that Skia can treat this as an ARGB bitmap.
Defer the application of the alpha value to the draw call rather than
calling MultiplyAlpha where possible.
Allow the destination bitmap to be alpha 8 or argb 32.
Review-Url: https://codereview.chromium.org/2025043002
|
|
Shorter and easier to remember.
Review-Url: https://codereview.chromium.org/2029043002
|
|
So everyone can avoid doing Byte to WideString conversions.
Also remove CFX_GEFont::GetPsName() and deduplicate a couple of
GetPsName() calls.
Review-Url: https://codereview.chromium.org/2019173002
|
|
Cleanup ::Min, ::Mod, ::Round, ::Date2Num, ::DateFmt and ::ISoTime2Num.
Review-Url: https://codereview.chromium.org/2028063002
|
|
These strings are not used anywhere, remove the defines and the strings. For the remaining strings, cleanup the contents.
Review-Url: https://codereview.chromium.org/2020353004
|
|
Remove the 'Impl entirely, and put the details into the class itself.
Review-Url: https://codereview.chromium.org/2036513002
|
|
Also, don't invent an enum that has one possible value that is
always set.
Review-Url: https://codereview.chromium.org/2028343002
|
|
Mainly clean up Script_NodeClass_Xxx() functions. There are no behavior
or API changes. The clean up mainly includes moving static functions into
namespace, remove unnecessary conditions or braces, changing
NULL->nullptr and local FX_BOOL->bool.
Review-Url: https://codereview.chromium.org/2018733002
|
|
Fix the asymmetry between creating only some isolates and
releasing all of them, even the shared ones, by being more
careful not to trash those we didn't create.
Review-Url: https://codereview.chromium.org/2025193002
|
|
Some shading types do not use these fields.
Review-Url: https://codereview.chromium.org/2027053002
|
|
BUG=616248
Review-Url: https://codereview.chromium.org/2020183004
|
|
The entire code base is single-threaded, hence the lockers
ought not be required.
Review-Url: https://codereview.chromium.org/2026933002
|
|
Looks like this causes compile warnings on ARM where wchar_t is unsigned.
Review-Url: https://codereview.chromium.org/2023173002
|
|
This CL updates the GN files so the Skia port will build on Windows. This does
not mean the functionaly is correct, just that the binaries link.
Review-Url: https://codereview.chromium.org/2032553002
|
|
This CL removes XFA_HFM2JSCONTEXT and the supporting code. XFA_HFM2JSCONTEXT
was replaced by CXFA_FM2JSContext. The translate method was moved to
CXFA_FM2JSContext.
Review-Url: https://codereview.chromium.org/2024833003
|
|
BUG=616246
Review-Url: https://codereview.chromium.org/2022263003
|
|
Reformat along the way, and mark unimplemented methods as delete.
Review-Url: https://codereview.chromium.org/2024283002
|
|
This will avoid a re-occurrence of BUG 613607 should someone
again optimize away CXFA_Object's virtual dtor.
Review-Url: https://codereview.chromium.org/2019333006
|
|
Need the tools/memory directory in order for asan to find the blacklist during
compilation.
Review-Url: https://codereview.chromium.org/2028603003
|
|
BUG=none
Review-Url: https://codereview.chromium.org/2022793002
|
|
Cleanup ::Max, ::Floor, ::Count, ::Ceil, ::Avg and ::Abs. Remove unneeded
strings from reservesForDecode (saves 4k when building pdfium_test).
Review-Url: https://codereview.chromium.org/2024133002
|
|
R=thestig@chromium.org
BUG=
Review-Url: https://codereview.chromium.org/2019383002
|
|
Review-Url: https://codereview.chromium.org/2025723002
|
|
In most cases, the destroy calls were removed and the object wrapped in a
unique_ptr.
Review-Url: https://codereview.chromium.org/2014323003
|
|
Review-Url: https://codereview.chromium.org/2024713002
|
|
TBR=tsepez@chromium.org
Review URL: https://codereview.chromium.org/2017293002 .
|
|
For GN build:
Enable chromium_code compilation config for XFA code;
Remove sign-compare suppression;
Limit the strict-overflow warning suppression only to xfa target;
For GYP build:
Remove warning suppression 4800 from GYP non third-party code;
After this, all the warning flags and levels for GN and GYP
builds should match.
BUG=pdfium:29, pdfium:475
Review-Url: https://codereview.chromium.org/2011303003
|
|
This is just a crock to get things working until we fix the
underlying issue.
When there's single-inheritance, it may often work in practice
to C-style (reinterpret) cast a Derived* ptr to void* and then
back to a Base* ptr. One place where this blows up is if
Derived has virtual functions but Base does not, in which case
the world will be offset by the size of a vtable ptr.
Because of the use of void* types in FXJSE, the above was happening
when setting a CXFA_ThisProxy (Derived, virtual) to be a global
object (void*). This would then be cast back to a CFXA_Object
(Base, non-virtual) and chaos is ensured.
Not sure how far back this goes.
Along the way, pick up some tidying which was necessary for
simplicity while tracking this down.
BUG=613607
Review-Url: https://codereview.chromium.org/2015143005
|
|
FX_WCHAR* casts were hiding a number of misuses of narrow strings in
pdfium, which /analyze identified. Now that those are fixed I did a
search for other instances of (FX_WCHAR*) to see if any other bugs
were lurking. No bugs were found but one unnecessary cast and one
that should be a const_cast were identified. This change fixes
those. No behavioral change.
Review-Url: https://codereview.chromium.org/2024463002
|
|
Review-Url: https://codereview.chromium.org/2004313007
|
|
The first one is about bitwise AND on zero, the result would always
be zero. The second one is about using wrong bitmasks, the result would cause branches never get executed.
BUG=chromium:613623, chromium:427616
Review-Url: https://codereview.chromium.org/2016243003
|
|
The warning was only shown and asked not to be treated as an error.
However, some recent flag change of chromeos toolchain has some
interference with the warning. To avoid future problem, disable the
warning for GCC.
BUG=chromium:615424
Review-Url: https://codereview.chromium.org/2013163003
|
|
This is the last use of CFX_PrivateData, which is now removed.
Review-Url: https://codereview.chromium.org/2016743002
|
|
BUG=chromium:614962
Review-Url: https://codereview.chromium.org/2017803002
|
|
TBR=weili@chromium.org
Review-Url: https://codereview.chromium.org/2017863002
|
|
Remove unused dithering code.
Review-Url: https://codereview.chromium.org/2010813003
|
|
When the condition is "status == FXCODEC_STATUS_DECODE_TOBECONTINUE"
while |status| never gets updated in the loop, it would enter infinite
loop.
Also, since Start_decode_MMR() never returns
FXCODEC_STATUS_DECODE_TOBECONTINUE, there is no point to check on the
return value for that.
Review-Url: https://codereview.chromium.org/2013263002
|
|
This avoids another use of CFX_PrivateData. Note that in the old
code, we'd be calling through a m_pImpl onto the same underlying
object as we passed as the "key" argument when setting the value,
which explains why the get calls, happening one object lower, pass
the same argument as which they are being inovked against.
Review-Url: https://codereview.chromium.org/2010923002
|
|
Review-Url: https://codereview.chromium.org/2011563006
|
|
Fix some nits in CPDF_Parser::LoadCrossRefV5() and other callers.
Review-Url: https://codereview.chromium.org/2019443002
|
|
Fix 2/4/8 bits per pixel bitmaps
that PDFium transposes into 8 bpp
indexed.
R=tsepez@chromium.org,dsinclair@chromium.org,reed@google.com
Review-Url: https://codereview.chromium.org/2011153002
|
|
Also, no need to track these in the contexts since they are global.
Review-Url: https://codereview.chromium.org/2014363002
|
|
Review-Url: https://codereview.chromium.org/2010183002
|
|
BUG=
Review-Url: https://codereview.chromium.org/2010013003
|
|
Clean up the left code which causes warnings. Enable using chromium_code
for XFA compilation, also re-enable all the msvs warning flags except
4267 (same as the main pdfium code).
BUG=pdfium:29,pdfium:475
Review-Url: https://codereview.chromium.org/2009813004
|
|
- Remove dead code
- Remove default arguments
- Move code into anonymous namespace
Review-Url: https://codereview.chromium.org/2013023002
|
|
Interestingly, callers don't take different action based on
the specific code, but that's a matter for another day.
Review-Url: https://codereview.chromium.org/2010973003
|
|
This CL replaces FXJSE_HOBJECT and FXJSE_HVALUE with the concrete CFXJSE_Value*
type. All variables are renamed to match.
Review-Url: https://codereview.chromium.org/2012253002
|
|
Review-Url: https://codereview.chromium.org/2011943004
|
|
Review-Url: https://codereview.chromium.org/2009803003
|