summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-08-17 18:38:19 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-08-17 18:38:19 +0000
commit0a2328e0eff7a11aa49b7da8f013e658153a7b1a (patch)
tree83f87275e98eaa7ca86d22ab458c03212a7f7dc8
parent1f867bb6e2c7b42e529c907053e0b9aecdd219ac (diff)
downloadpdfium-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.cpp6
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);
}
}