summaryrefslogtreecommitdiff
path: root/core/fpdfapi
AgeCommit message (Collapse)Author
2016-12-06re-enable skia cachingchromium/2944caryclark
This permits consecutive path drawing or text drawing to combine if their graphics state matches. This speeds up rendering considerably when PDFium draws in many small parts. It also allows discarding changes to the clip state that have no effect from draw to draw. All corpus tests draw equivalently with caching enabled or disabled. Change the member order in CPDF_PageRenderContext so the device is flushed before the referencing annotation is deleted. Add more printf style debugging for test draws. R=dsinclair@chromium.org Review-Url: https://codereview.chromium.org/2546803003
2016-12-06Return unique_ptrs from CFX_DIBitmap::Clone().tsepez
Because that's what clone does. Perform immediate release in some spots to avoid disrupting too much at once. Review-Url: https://codereview.chromium.org/2534953004
2016-12-02Rename fpdf_render_image and fpdf_render_textchromium/2942chromium/2941chromium/2940npm
Review-Url: https://codereview.chromium.org/2551593002
2016-12-02Rename IFX_Stream to IFGAS_Stream.tsepez
It's a separate hierarchy unrelated to the IFX_*Stream classes. Also rename CFX_Stream to CFGAS_Stream, and so forth. Review-Url: https://codereview.chromium.org/2535723010
2016-12-02Tidy fx_stream.htsepez
Group related IFX_ classes. Move #defines to .cpp file that uses them. Replace loose function with static method. Review-Url: https://codereview.chromium.org/2548583004
2016-12-01Kill off fpdf_render_cache.cppchromium/2939npm
Review-Url: https://codereview.chromium.org/2550543002
2016-12-01Kill some friends in fpdfapi.tsepez
Review-Url: https://codereview.chromium.org/2546813002
2016-12-01Remove fpdf_render.cppNicolas Pena
Split the remaining code into files per class. Change-Id: Idb959dbf807223a509e16c76f9626e61856a886b Reviewed-on: https://pdfium-review.googlesource.com/2094 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Nicolás Peña <npm@chromium.org>
2016-12-01Make CPDF_ImageCacheEntry's private CFX_DIBSources unique_ptrsnpm
Review-Url: https://codereview.chromium.org/2541373002
2016-12-01Protect against unexpected library create/destroytsepez
Probably won't fix bug 669797 on its own, but nice to have. Remove unimplemented static method. Review-Url: https://codereview.chromium.org/2543833002
2016-11-30Fix initial kerning when there is a horzscale setchromium/2938npm
Reasoning: the pTextAdvanceX in CPDF_TextObject::CalcPositionData is being multiplied by horz_scale in CPDF_TextObject::CalcPositionData. Then, m_pCurStates->m_TextX is updated by this amount. So multiply by the scale also when updating with initial and final kerning and when nsegs = 0. BUG=528103 Review-Url: https://codereview.chromium.org/2542743002
2016-11-30Convert loose FX_Create* functions into static methodstsepez
Also remove a bool that is always false. Review-Url: https://codereview.chromium.org/2539203002
2016-11-30Remove unused methods from CPDF_FontNicolas Pena
Removed unused methods, and GetCharSize no longer overrides. Change-Id: I29384afb4d79cfd8e8b4ede4a0b52272020bfcd9 Reviewed-on: https://pdfium-review.googlesource.com/2031 Reviewed-by: ooo 11-24 -- 12-05 (dsinclair) <dsinclair@chromium.org>
2016-11-29Do not clone in CPDF_ImageCacheEntry::GetCachedBitmapnpm
Review-Url: https://codereview.chromium.org/2536903004
2016-11-28Make FDF document creation return unique_ptrstsepez
Review-Url: https://codereview.chromium.org/2538533003
2016-11-28Use CFX_MaybeOwned<> in fpdf_edit_create.cppchromium/2936tsepez
Fix missing second template parameter in cfx_maybe_owned.h Review-Url: https://codereview.chromium.org/2522313002
2016-11-28Add some methods in CPDF_ImageRenderernpm
Made a member private and added some methods to reduce code duplication Review-Url: https://codereview.chromium.org/2531643002
2016-11-28Merge CPDF_ImageLoader with its handlenpm
Review-Url: https://codereview.chromium.org/2524403002
2016-11-28Fix leak in cpdf_document_unittestnpm
Make GetPagesInDisorder be TEST_F instead of TEST for consistency... Call CPDF_ModuleMgr::Destroy() on TearDown to avoid leaks. Review-Url: https://codereview.chromium.org/2528093002
2016-11-23Use CFX_MaybeOwned<> in CPDF_Imagetsepez
Review-Url: https://codereview.chromium.org/2523093003
2016-11-23Add CFX_MaybeOwned<> template.tsepez
This will allow us to get rid of more .release()s of unique_ptrs, as shown by the changed cpdf_colorspace usage. Review-Url: https://codereview.chromium.org/2526903002
2016-11-23Remove some .release() calls in cpdf_renderstatustsepez
Propagates unique_ptr's back to callers. Review-Url: https://codereview.chromium.org/2518333003
2016-11-23Avoid cloning in CPDF_ImageCacheEntry::ContinueGetCachedBitmapnpm
We are always cloning when the bitmap size is bounded by some constant, and we are always cloning the mask. Instead, just assign pointers. BUG=pdfium:633 Review-Url: https://codereview.chromium.org/2518063005
2016-11-23Move CPDF_ImageRenderer from render_intnpm
Review-Url: https://codereview.chromium.org/2525833002
2016-11-22Use more unique_ptrs in CPDF_SyntaxParser and CPDF_Annotchromium/2929tsepez
Review-Url: https://codereview.chromium.org/2526543003
2016-11-22Ensure CPDF_CountedObjects only made from owned references.tsepez
Deletion of said object is still inflicted on the callers. But that's an issue for another day. Review-Url: https://codereview.chromium.org/2523743004
2016-11-22handle antialiased rendering as premultipliedcaryclark
Transparencies and bitmap patterns need to be unpremultiplied after Skia renders them so that PDFium can use its own compositing. Also added some linear (i.e. axial) gradient support, although its unclear if any of the test corpus uses this feature. R=dsinclair@chromium.org Review-Url: https://codereview.chromium.org/2520073003
2016-11-22Continue splitting pageint.h into per-class filestsepez
Add cpdf_streamparser.h and cpdf_contentparser.h since there are already corresponding .cpp files with the same name. Review-Url: https://codereview.chromium.org/2521123003
2016-11-21Avoid calls to WrapUnique in CPDF_streamparsertsepez
Review-Url: https://codereview.chromium.org/2520953004
2016-11-21Split fwl/core class pt II.dsinclair
Split classes in FWL to be single class per file. In the case of data providers which added no new methods, removed and used the IFWL_Widget::DataProvider directly. Review-Url: https://codereview.chromium.org/2520063002
2016-11-21Use more unique_ptrs in CPDF_Image.thestig
Do the same in CPDF_TextObject. Discover CPDF_PageObject::Clone() is unnecessary and remove it. Review-Url: https://codereview.chromium.org/2517163003
2016-11-21Remove some WrapUnique() calls by returing unique_ptrstsepez
Return these from underlying methods as appropriate. Review-Url: https://codereview.chromium.org/2520133002
2016-11-21Remove iCompress parameter to CPDF_Image::SetImage().thestig
It's always set to 0. Review-Url: https://codereview.chromium.org/2520123002
2016-11-21Make CPDF_ImageObject::m_Matrix private.thestig
Review-Url: https://codereview.chromium.org/2514263003
2016-11-21Remove some void* usage in fx_crypt.cpptsepez
Review-Url: https://codereview.chromium.org/2521693003
2016-11-21Check dimensions and content of bitmaps in EmbedderTests.chromium/2927thestig
Review-Url: https://codereview.chromium.org/2514173002
2016-11-21Make CPDF_Stream() take unique_ptr's to its dictionary.tsepez
Review-Url: https://codereview.chromium.org/2520493002
2016-11-21Add unit test for fdrm's MD5tsepez
Review-Url: https://codereview.chromium.org/2517153003
2016-11-21Fixup lint flags.Dan Sinclair
The -build/include setting was masking out build/include_what_you_use. This CL restores them, fixes any build errors, and adds NOLINT as needed. As well, the runtime/explicit and runtime/printf flags are aslo enabled and NOLINT'd. lint cleanups Change-Id: Ib013b3eb29c8d0e48cad74c5df9028684130719f Reviewed-on: https://pdfium-review.googlesource.com/2030 Reviewed-by: Tom Sepez <tsepez@chromium.org>
2016-11-21Fix CPDFImage::IsInline().thestig
Commit 137a344a changed its behavior. BUG=chromium:667012 Review-Url: https://codereview.chromium.org/2513273003
2016-11-21Continue splitting up render_intnpm
Moved CPDF_ImageLoader, CPDF_ImageLoaderHandle, and CPDF_TransferFunc Review-Url: https://codereview.chromium.org/2518553002
2016-11-21Clean up CPDF_PageContentGenerator.thestig
Review-Url: https://codereview.chromium.org/2513313002
2016-11-20Provide perfect-forwarding in CPDF_Object templates.tsepez
We'll hit this issue when we try to make CPDF_stream ctors take other unique pointers, for example. Review-Url: https://codereview.chromium.org/2513613003
2016-11-18Make CPDF_Dictionary use unique pointers.chromium/2926tsepez
Some changes were required to match underlying ctors as invoked by the templated methods. Many release() calls go away, a few WrapUniques() are introduced to avoid going deeper into other code. Review-Url: https://codereview.chromium.org/2510223002
2016-11-18Add unit test for CXFA_FileRead.tsepez
The FileRead's return convention is being modified at https://codereview.chromium.org/2430743003/, so first provide a test of the old behaviour. Fix some issues with null dictionaries as provided by the CPDF_Stream default ctor along the way. Review-Url: https://codereview.chromium.org/2517513003
2016-11-17fix corpus testscaryclark
All corpus tests draw reasonably well. There are pixel differences, but no missing features or large scale errors. This was verified by running run_corpus_tests.py on skiapaths and agg build dirs, then running the skdiff tool to generate a report of the pixel difference. For example, after running $ ninja -C out/skia skdiff $ ./out/skia/skdiff /repo/pdfium/out/agg/gen/pdfium/testing/corpus/ /repo/pdfium/out/skiapaths/gen/pdfium/testing/corpus/ ~/aggskiadiffs view the report in a browser at ~/aggskiadiffs/index.html R=dsinclair@chromium.org BUG=skia:5973 Review-Url: https://codereview.chromium.org/2504863003
2016-11-17Move CPDF_RenderStatus from render_intnpm
Moved CPDF_RenderStatus to its own class and removed unused methods. I only added some spaces and removed some {}s in cpdf_renderstatus.cpp. Will do cleanup of the file as a followup because it would be too hard to keep track of what's changed in this CL. Review-Url: https://codereview.chromium.org/2513693002
2016-11-17Move CPDF_DocRenderData from render_intnpm
First CL in an attempt to reduce the class cluttering in fpdf_render_text, fpdf_render_image, and fpdf_render. Review-Url: https://codereview.chromium.org/2507023006
2016-11-16Make CPDF_Object subclass constructors intern stringstsepez
Make CDPF_Arrays intern the object they create. Allow passing nullptr as a CFX_WeakPtr shortcut as well. Review-Url: https://codereview.chromium.org/2509123002
2016-11-16Move ByteStringPool from document to indirect object holder.tsepez
Since the indirect object holder is now in the object creation business, this will allow it to intern strings in a subsequent CL. Review-Url: https://codereview.chromium.org/2509773003