Simplify parameters in CFX_AggRenderer composite scanline methods
Extract common code from the composite scanline methods and put them in
the caller. Then the composite scanline methods only need 2 parameters
for the calculation results, instead of 4 parameters to do the
calculation.
Change-Id: I5c5b7f14be02b4f6be8cfc9b56d40f851d18b7b6
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/123153
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@google.com>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxge/agg/cfx_agg_devicedriver.cpp b/core/fxge/agg/cfx_agg_devicedriver.cpp
index ec86ba1..f84996b 100644
--- a/core/fxge/agg/cfx_agg_devicedriver.cpp
+++ b/core/fxge/agg/cfx_agg_devicedriver.cpp
@@ -375,46 +375,36 @@
int,
int,
const uint8_t*,
- int,
- int,
const uint8_t*);
void CompositeSpan(uint8_t* dest_scan,
const uint8_t* backdrop_scan,
int Bpp,
bool bDestAlpha,
- int span_left,
- int span_len,
+ int col_start,
+ int col_end,
const uint8_t* cover_scan,
- int clip_left,
- int clip_right,
const uint8_t* clip_scan);
void CompositeSpanGray(uint8_t* dest_scan,
int Bpp,
- int span_left,
- int span_len,
+ int col_start,
+ int col_end,
const uint8_t* cover_scan,
- int clip_left,
- int clip_right,
const uint8_t* clip_scan);
void CompositeSpanARGB(uint8_t* dest_scan,
int Bpp,
- int span_left,
- int span_len,
+ int col_start,
+ int col_end,
const uint8_t* cover_scan,
- int clip_left,
- int clip_right,
const uint8_t* clip_scan);
void CompositeSpanRGB(uint8_t* dest_scan,
int Bpp,
- int span_left,
- int span_len,
+ int col_start,
+ int col_end,
const uint8_t* cover_scan,
- int clip_left,
- int clip_right,
const uint8_t* clip_scan);
static CompositeSpanFunc GetCompositeSpanFunc(
@@ -443,11 +433,11 @@
: m_Alpha * cover_scan[col] / 255);
}
- inline int GetColStart(int span_left, int clip_left) const {
+ static int GetColStart(int span_left, int clip_left) {
return span_left < clip_left ? clip_left - span_left : 0;
}
- inline int GetColEnd(int span_left, int span_len, int clip_right) const {
+ static int GetColEnd(int span_left, int span_len, int clip_right) {
return span_left + span_len < clip_right ? span_len
: clip_right - span_left;
}
@@ -474,15 +464,11 @@
const uint8_t* backdrop_scan,
int Bpp,
bool bDestAlpha,
- int span_left,
- int span_len,
+ int col_start,
+ int col_end,
const uint8_t* cover_scan,
- int clip_left,
- int clip_right,
const uint8_t* clip_scan) {
CHECK(Bpp);
- int col_start = GetColStart(span_left, clip_left);
- int col_end = GetColEnd(span_left, span_len, clip_right);
const auto& bgr = GetBGR();
UNSAFE_TODO({
dest_scan += col_start * Bpp;
@@ -614,15 +600,11 @@
void CFX_AggRenderer::CompositeSpanGray(uint8_t* dest_scan,
int Bpp,
- int span_left,
- int span_len,
+ int col_start,
+ int col_end,
const uint8_t* cover_scan,
- int clip_left,
- int clip_right,
const uint8_t* clip_scan) {
DCHECK(!m_bRgbByteOrder);
- int col_start = GetColStart(span_left, clip_left);
- int col_end = GetColEnd(span_left, span_len, clip_right);
const int gray = GetGray();
UNSAFE_TODO({
dest_scan += col_start;
@@ -642,14 +624,10 @@
void CFX_AggRenderer::CompositeSpanARGB(uint8_t* dest_scan,
int Bpp,
- int span_left,
- int span_len,
+ int col_start,
+ int col_end,
const uint8_t* cover_scan,
- int clip_left,
- int clip_right,
const uint8_t* clip_scan) {
- int col_start = GetColStart(span_left, clip_left);
- int col_end = GetColEnd(span_left, span_len, clip_right);
const auto& bgr = GetBGR();
UNSAFE_TODO({
dest_scan += col_start * Bpp;
@@ -714,14 +692,10 @@
void CFX_AggRenderer::CompositeSpanRGB(uint8_t* dest_scan,
int Bpp,
- int span_left,
- int span_len,
+ int col_start,
+ int col_end,
const uint8_t* cover_scan,
- int clip_left,
- int clip_right,
const uint8_t* clip_scan) {
- int col_start = GetColStart(span_left, clip_left);
- int col_end = GetColEnd(span_left, span_len, clip_right);
const auto& bgr = GetBGR();
UNSAFE_TODO({
dest_scan += col_start * Bpp;
@@ -846,12 +820,14 @@
(y - m_ClipBox.top) * m_pClipMask->GetPitch() + x -
m_ClipBox.left;
}
+ const int col_start = GetColStart(x, m_ClipBox.left);
+ const int col_end = GetColEnd(x, span->len, m_ClipBox.right);
if (backdrop_pos) {
- CompositeSpan(dest_pos, backdrop_pos, Bpp, bDestAlpha, x, span->len,
- span->covers, m_ClipBox.left, m_ClipBox.right, clip_pos);
+ CompositeSpan(dest_pos, backdrop_pos, Bpp, bDestAlpha, col_start,
+ col_end, span->covers, clip_pos);
} else {
- (this->*m_CompositeSpanFunc)(dest_pos, Bpp, x, span->len, span->covers,
- m_ClipBox.left, m_ClipBox.right, clip_pos);
+ (this->*m_CompositeSpanFunc)(dest_pos, Bpp, col_start, col_end,
+ span->covers, clip_pos);
}
if (--num_spans == 0) {
break;