From dc2bb9ad21a10550fb451d7c842c63cbce98045b Mon Sep 17 00:00:00 2001 From: Henrique Nakashima Date: Tue, 21 Aug 2018 19:50:17 +0000 Subject: Optimize rendering of two dimensional barcodes: defer upscale. Defer upscaling as late as possible so that intermediary data structures are smaller. Made a couple of changes along the way to preserve the barcode correctness and fix some padding issues. For my example, this is a ~21x improvement in rendering time, down from ~190ms per barcode to ~9ms. Bug: 872907, pdfium:1135 Change-Id: If532e0f168f02fea9c31d473f34c0009da4f4612 Reviewed-on: https://pdfium-review.googlesource.com/40010 Reviewed-by: Lei Zhang Commit-Queue: Henrique Nakashima --- fxbarcode/BC_TwoDimWriter.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'fxbarcode/BC_TwoDimWriter.h') diff --git a/fxbarcode/BC_TwoDimWriter.h b/fxbarcode/BC_TwoDimWriter.h index e554805fcf..228a2e03e9 100644 --- a/fxbarcode/BC_TwoDimWriter.h +++ b/fxbarcode/BC_TwoDimWriter.h @@ -31,7 +31,17 @@ class CBC_TwoDimWriter : public CBC_Writer { protected: int32_t m_iCorrectLevel; bool m_bFixedSize; + + private: std::unique_ptr m_output; + int32_t m_multiX; + int32_t m_multiY; + int32_t m_leftPadding; + int32_t m_topPadding; + int32_t m_inputWidth; + int32_t m_inputHeight; + int32_t m_outputWidth; + int32_t m_outputHeight; }; #endif // FXBARCODE_BC_TWODIMWRITER_H_ -- cgit v1.2.3