diff options
author | Henrique Nakashima <hnakashima@chromium.org> | 2018-03-06 22:25:03 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-03-06 22:25:03 +0000 |
commit | 3f4befb2622487f3fe915ead4f78c7e3b940dec3 (patch) | |
tree | 769ece6b9acbc45b48c69a32e6e91e75621ea6d3 /xfa/fwl/theme/cfwl_scrollbartp.cpp | |
parent | f8af565a78ee1910b8c98a5bdfb9ab6b88442317 (diff) | |
download | pdfium-3f4befb2622487f3fe915ead4f78c7e3b940dec3.tar.xz |
Remove axial gradients from XFA widgets.
Most of the CPU time when moving around XFA forms is spent rendering
these gradients.
Bug: chromium:592748
Change-Id: I08c68c60996755a2be25243dfd2143b6cbb13af9
Reviewed-on: https://pdfium-review.googlesource.com/28090
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fwl/theme/cfwl_scrollbartp.cpp')
-rw-r--r-- | xfa/fwl/theme/cfwl_scrollbartp.cpp | 52 |
1 files changed, 17 insertions, 35 deletions
diff --git a/xfa/fwl/theme/cfwl_scrollbartp.cpp b/xfa/fwl/theme/cfwl_scrollbartp.cpp index d94eed0ebf..1e9ade8c76 100644 --- a/xfa/fwl/theme/cfwl_scrollbartp.cpp +++ b/xfa/fwl/theme/cfwl_scrollbartp.cpp @@ -80,39 +80,26 @@ void CFWL_ScrollBarTP::DrawThumbBtn(CXFA_Graphics* pGraphics, if (eState < FWLTHEME_STATE_Normal || eState > FWLTHEME_STATE_Disable) return; - CXFA_GEPath path; CFX_RectF rect(*pRect); - if (bVert) { + if (bVert) rect.Deflate(1, 0); - if (rect.IsEmpty(0.1f)) - return; - - path.AddRectangle(rect.left, rect.top, rect.width, rect.height); - DrawAxialShading(pGraphics, rect.left, rect.top, rect.right(), rect.top, - m_pThemeData->clrBtnBK[eState - 1][0], - m_pThemeData->clrBtnBK[eState - 1][1], &path, - FXFILL_WINDING, pMatrix); - pGraphics->SaveGraphState(); - pGraphics->SetStrokeColor( - CXFA_GEColor(m_pThemeData->clrBtnBorder[eState - 1])); - pGraphics->StrokePath(&path, pMatrix); - pGraphics->RestoreGraphState(); - } else { + else rect.Deflate(0, 1); - if (rect.IsEmpty(0.1f)) - return; - path.AddRectangle(rect.left, rect.top, rect.width, rect.height); - DrawAxialShading(pGraphics, rect.left, rect.top, rect.left, rect.bottom(), - m_pThemeData->clrBtnBK[eState - 1][0], - m_pThemeData->clrBtnBK[eState - 1][1], &path, - FXFILL_WINDING, pMatrix); - pGraphics->SaveGraphState(); - pGraphics->SetStrokeColor( - CXFA_GEColor(m_pThemeData->clrBtnBorder[eState - 1])); - pGraphics->StrokePath(&path, pMatrix); - pGraphics->RestoreGraphState(); - } + if (rect.IsEmpty(0.1f)) + return; + + FillSolidRect(pGraphics, m_pThemeData->clrBtnBK[eState - 1][1], &rect, + pMatrix); + + pGraphics->SaveGraphState(); + + CXFA_GEPath path; + path.AddRectangle(rect.left, rect.top, rect.width, rect.height); + pGraphics->SetStrokeColor( + CXFA_GEColor(m_pThemeData->clrBtnBorder[eState - 1])); + pGraphics->StrokePath(&path, pMatrix); + pGraphics->RestoreGraphState(); } void CFWL_ScrollBarTP::DrawPaw(CXFA_Graphics* pGraphics, @@ -223,13 +210,8 @@ void CFWL_ScrollBarTP::DrawTrack(CXFA_Graphics* pGraphics, path.Clear(); path.AddRectangle(pRect->left + 1, pRect->top, pRect->width - 2, pRect->height); - float x1 = bVert ? pRect->left + 1 : pRect->left; - float y1 = bVert ? pRect->top : pRect->top + 1; - float x2 = bVert ? fRight - 1 : pRect->left; - float y2 = bVert ? pRect->top : fBottom - 1; pGraphics->RestoreGraphState(); - DrawAxialShading(pGraphics, x1, y1, x2, y2, m_pThemeData->clrTrackBKStart, - m_pThemeData->clrTrackBKEnd, &path, FXFILL_WINDING, pMatrix); + FillSolidRect(pGraphics, m_pThemeData->clrTrackBKEnd, pRect, pMatrix); } void CFWL_ScrollBarTP::DrawMaxMinBtn(CXFA_Graphics* pGraphics, |