diff options
author | Henrique Nakashima <hnakashima@chromium.org> | 2018-08-17 18:38:19 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-08-17 18:38:19 +0000 |
commit | 0a2328e0eff7a11aa49b7da8f013e658153a7b1a (patch) | |
tree | 83f87275e98eaa7ca86d22ab458c03212a7f7dc8 | |
parent | 1f867bb6e2c7b42e529c907053e0b9aecdd219ac (diff) | |
download | pdfium-0a2328e0eff7a11aa49b7da8f013e658153a7b1a.tar.xz |
Optimize rendering of 2D barcodes: create Rect only on black regions.
This is a ~2x improvement in rendering time, taking my example
down from ~390ms per barcode to ~190ms.
Bug: 872907
Change-Id: Iecddc30edf92ad943765d4382b332e00d493c320
Reviewed-on: https://pdfium-review.googlesource.com/40533
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
-rw-r--r-- | fxbarcode/BC_TwoDimWriter.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fxbarcode/BC_TwoDimWriter.cpp b/fxbarcode/BC_TwoDimWriter.cpp index 6852fee35c..09f39c2443 100644 --- a/fxbarcode/BC_TwoDimWriter.cpp +++ b/fxbarcode/BC_TwoDimWriter.cpp @@ -42,11 +42,11 @@ void CBC_TwoDimWriter::RenderDeviceResult(CFX_RenderDevice* device, } for (int32_t x = 0; x < m_output->GetWidth(); x++) { for (int32_t y = 0; y < m_output->GetHeight(); y++) { - CFX_PathData rect; - rect.AppendRect((float)leftPos + x, (float)topPos + y, - (float)(leftPos + x + 1), (float)(topPos + y + 1)); if (m_output->Get(x, y)) { CFX_GraphStateData data; + CFX_PathData rect; + rect.AppendRect((float)leftPos + x, (float)topPos + y, + (float)(leftPos + x + 1), (float)(topPos + y + 1)); device->DrawPath(&rect, &matri, &data, m_barColor, 0, FXFILL_WINDING); } } |