summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xfa/fwl/cfwl_edit.cpp2
-rw-r--r--xfa/fwl/theme/cfwl_listboxtp.cpp2
-rw-r--r--xfa/fwl/theme/cfwl_scrollbartp.cpp2
-rw-r--r--xfa/fxfa/cxfa_ffpushbutton.cpp2
-rw-r--r--xfa/fxfa/cxfa_fwltheme.cpp8
-rw-r--r--xfa/fxgraphics/cxfa_graphics.cpp50
-rw-r--r--xfa/fxgraphics/cxfa_graphics.h28
7 files changed, 46 insertions, 48 deletions
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index 6d14ad2e3c..184329fcac 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -188,7 +188,7 @@ void CFWL_Edit::DrawSpellCheck(CXFA_Graphics* pGraphics,
const CFX_Matrix* pMatrix) {
pGraphics->SaveGraphState();
if (pMatrix)
- pGraphics->ConcatMatrix(const_cast<CFX_Matrix*>(pMatrix));
+ pGraphics->ConcatMatrix(pMatrix);
CFWL_EventCheckWord checkWordEvent(this);
CFX_ByteString sLatinWord;
diff --git a/xfa/fwl/theme/cfwl_listboxtp.cpp b/xfa/fwl/theme/cfwl_listboxtp.cpp
index 8ea90198a3..deb7d6ff50 100644
--- a/xfa/fwl/theme/cfwl_listboxtp.cpp
+++ b/xfa/fwl/theme/cfwl_listboxtp.cpp
@@ -41,7 +41,7 @@ void CFWL_ListBoxTP::DrawBackground(CFWL_ThemeBackground* pParams) {
}
case CFWL_Part::Icon: {
pParams->m_pGraphics->StretchImage(pParams->m_pImage, pParams->m_rtPart,
- &pParams->m_matrix);
+ pParams->m_matrix);
break;
}
case CFWL_Part::Check: {
diff --git a/xfa/fwl/theme/cfwl_scrollbartp.cpp b/xfa/fwl/theme/cfwl_scrollbartp.cpp
index 5deec8d6d6..6b998a9641 100644
--- a/xfa/fwl/theme/cfwl_scrollbartp.cpp
+++ b/xfa/fwl/theme/cfwl_scrollbartp.cpp
@@ -141,7 +141,7 @@ void CFWL_ScrollBarTP::DrawPaw(CXFA_Graphics* pGraphics,
pGraphics->SetLineWidth(1);
pGraphics->SetStrokeColor(
CXFA_Color(m_pThemeData->clrPawColorLight[eState - 1]));
- pGraphics->StrokePath(&path);
+ pGraphics->StrokePath(&path, nullptr);
fX++;
path.Clear();
diff --git a/xfa/fxfa/cxfa_ffpushbutton.cpp b/xfa/fxfa/cxfa_ffpushbutton.cpp
index 91b6f3ff27..b6ba0f56b1 100644
--- a/xfa/fxfa/cxfa_ffpushbutton.cpp
+++ b/xfa/fxfa/cxfa_ffpushbutton.cpp
@@ -215,7 +215,7 @@ void CXFA_FFPushButton::OnDrawWidget(CXFA_Graphics* pGraphics,
CXFA_Path path;
path.AddRectangle(rtFill.left, rtFill.top, rtFill.width, rtFill.height);
pGraphics->SetFillColor(CXFA_Color(FXARGB_MAKE(128, 128, 255, 255)));
- pGraphics->FillPath(&path, FXFILL_WINDING, (CFX_Matrix*)pMatrix);
+ pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix);
}
return;
}
diff --git a/xfa/fxfa/cxfa_fwltheme.cpp b/xfa/fxfa/cxfa_fwltheme.cpp
index 85e48a5123..67258c1868 100644
--- a/xfa/fxfa/cxfa_fwltheme.cpp
+++ b/xfa/fxfa/cxfa_fwltheme.cpp
@@ -111,10 +111,10 @@ void CXFA_FWLTheme::DrawText(CFWL_ThemeText* pParams) {
return;
CFX_Matrix mtPart = pParams->m_matrix;
- CFX_Matrix* pMatrix = pGraphics->GetMatrix();
- if (pMatrix) {
+ const CFX_Matrix* pMatrix = pGraphics->GetMatrix();
+ if (pMatrix)
mtPart.Concat(*pMatrix);
- }
+
m_pTextOut->SetMatrix(mtPart);
m_pTextOut->DrawLogicText(pRenderDevice, pParams->m_wsText.c_str(),
pParams->m_wsText.GetLength(), pParams->m_rtPart);
@@ -136,7 +136,7 @@ void CXFA_FWLTheme::DrawText(CFWL_ThemeText* pParams) {
m_pTextOut->SetFontSize(pAcc->GetFontSize());
m_pTextOut->SetTextColor(pAcc->GetTextColor());
CFX_Matrix mtPart = pParams->m_matrix;
- CFX_Matrix* pMatrix = pGraphics->GetMatrix();
+ const CFX_Matrix* pMatrix = pGraphics->GetMatrix();
if (pMatrix)
mtPart.Concat(*pMatrix);
diff --git a/xfa/fxgraphics/cxfa_graphics.cpp b/xfa/fxgraphics/cxfa_graphics.cpp
index 4975a83251..7cad380802 100644
--- a/xfa/fxgraphics/cxfa_graphics.cpp
+++ b/xfa/fxgraphics/cxfa_graphics.cpp
@@ -178,7 +178,7 @@ void CXFA_Graphics::SetFillColor(const CXFA_Color& color) {
m_info.fillColor = color;
}
-void CXFA_Graphics::StrokePath(CXFA_Path* path, CFX_Matrix* matrix) {
+void CXFA_Graphics::StrokePath(CXFA_Path* path, const CFX_Matrix* matrix) {
if (!path)
return;
if (m_type == FX_CONTEXT_Device && m_renderDevice)
@@ -187,7 +187,7 @@ void CXFA_Graphics::StrokePath(CXFA_Path* path, CFX_Matrix* matrix) {
void CXFA_Graphics::FillPath(CXFA_Path* path,
FX_FillMode fillMode,
- CFX_Matrix* matrix) {
+ const CFX_Matrix* matrix) {
if (!path)
return;
if (m_type == FX_CONTEXT_Device && m_renderDevice)
@@ -196,7 +196,7 @@ void CXFA_Graphics::FillPath(CXFA_Path* path,
void CXFA_Graphics::StretchImage(const CFX_RetainPtr<CFX_DIBSource>& source,
const CFX_RectF& rect,
- CFX_Matrix* matrix) {
+ const CFX_Matrix& matrix) {
if (!source)
return;
if (m_type == FX_CONTEXT_Device && m_renderDevice)
@@ -211,7 +211,7 @@ void CXFA_Graphics::ConcatMatrix(const CFX_Matrix* matrix) {
}
}
-CFX_Matrix* CXFA_Graphics::GetMatrix() {
+const CFX_Matrix* CXFA_Graphics::GetMatrix() const {
if (m_type == FX_CONTEXT_Device && m_renderDevice)
return &m_info.CTM;
return nullptr;
@@ -268,8 +268,8 @@ void CXFA_Graphics::RenderDeviceSetLineDash(FX_DashStyle dashStyle) {
}
}
-void CXFA_Graphics::RenderDeviceStrokePath(CXFA_Path* path,
- CFX_Matrix* matrix) {
+void CXFA_Graphics::RenderDeviceStrokePath(const CXFA_Path* path,
+ const CFX_Matrix* matrix) {
if (m_info.strokeColor.GetType() != CXFA_Color::Solid)
return;
@@ -281,9 +281,9 @@ void CXFA_Graphics::RenderDeviceStrokePath(CXFA_Path* path,
m_info.strokeColor.GetArgb(), 0);
}
-void CXFA_Graphics::RenderDeviceFillPath(CXFA_Path* path,
+void CXFA_Graphics::RenderDeviceFillPath(const CXFA_Path* path,
FX_FillMode fillMode,
- CFX_Matrix* matrix) {
+ const CFX_Matrix* matrix) {
CFX_Matrix m = m_info.CTM;
if (matrix)
m.Concat(*matrix);
@@ -294,10 +294,10 @@ void CXFA_Graphics::RenderDeviceFillPath(CXFA_Path* path,
m_info.fillColor.GetArgb(), 0x0, fillMode);
return;
case CXFA_Color::Pattern:
- FillPathWithPattern(path, fillMode, &m);
+ FillPathWithPattern(path, fillMode, m);
return;
case CXFA_Color::Shading:
- FillPathWithShading(path, fillMode, &m);
+ FillPathWithShading(path, fillMode, m);
return;
default:
return;
@@ -307,12 +307,11 @@ void CXFA_Graphics::RenderDeviceFillPath(CXFA_Path* path,
void CXFA_Graphics::RenderDeviceStretchImage(
const CFX_RetainPtr<CFX_DIBSource>& source,
const CFX_RectF& rect,
- CFX_Matrix* matrix) {
+ const CFX_Matrix& matrix) {
CFX_Matrix m1(m_info.CTM.a, m_info.CTM.b, m_info.CTM.c, m_info.CTM.d,
m_info.CTM.e, m_info.CTM.f);
- if (matrix) {
- m1.Concat(*matrix);
- }
+ m1.Concat(matrix);
+
CFX_RetainPtr<CFX_DIBitmap> bmp1 =
source->StretchTo(static_cast<int32_t>(rect.Width()),
static_cast<int32_t>(rect.Height()), 0, nullptr);
@@ -330,9 +329,9 @@ void CXFA_Graphics::RenderDeviceStretchImage(
FXSYS_round(r.left - left), FXSYS_round(r.top - top));
}
-void CXFA_Graphics::FillPathWithPattern(CXFA_Path* path,
+void CXFA_Graphics::FillPathWithPattern(const CXFA_Path* path,
FX_FillMode fillMode,
- CFX_Matrix* matrix) {
+ const CFX_Matrix& matrix) {
CXFA_Pattern* pattern = m_info.fillColor.GetPattern();
CFX_RetainPtr<CFX_DIBitmap> bitmap = m_renderDevice->GetBitmap();
int32_t width = bitmap->GetWidth();
@@ -348,8 +347,7 @@ void CXFA_Graphics::FillPathWithPattern(CXFA_Path* path,
mask->Create(data.width, data.height, FXDIB_1bppMask);
memcpy(mask->GetBuffer(), data.maskBits, mask->GetPitch() * data.height);
CFX_FloatRect rectf = path->GetPathData()->GetBoundingBox();
- if (matrix)
- matrix->TransformRect(rectf);
+ matrix.TransformRect(rectf);
FX_RECT rect(FXSYS_round(rectf.left), FXSYS_round(rectf.top),
FXSYS_round(rectf.right), FXSYS_round(rectf.bottom));
@@ -361,13 +359,13 @@ void CXFA_Graphics::FillPathWithPattern(CXFA_Path* path,
device.SetBitMask(mask, i, j, m_info.fillColor.GetPattern()->m_foreArgb);
}
CFX_RenderDevice::StateRestorer restorer(m_renderDevice);
- m_renderDevice->SetClip_PathFill(path->GetPathData(), matrix, fillMode);
- SetDIBitsWithMatrix(bmp, &pattern->m_matrix);
+ m_renderDevice->SetClip_PathFill(path->GetPathData(), &matrix, fillMode);
+ SetDIBitsWithMatrix(bmp, pattern->m_matrix);
}
-void CXFA_Graphics::FillPathWithShading(CXFA_Path* path,
+void CXFA_Graphics::FillPathWithShading(const CXFA_Path* path,
FX_FillMode fillMode,
- CFX_Matrix* matrix) {
+ const CFX_Matrix& matrix) {
CFX_RetainPtr<CFX_DIBitmap> bitmap = m_renderDevice->GetBitmap();
int32_t width = bitmap->GetWidth();
int32_t height = bitmap->GetHeight();
@@ -478,20 +476,20 @@ void CXFA_Graphics::FillPathWithShading(CXFA_Path* path,
}
if (result) {
CFX_RenderDevice::StateRestorer restorer(m_renderDevice);
- m_renderDevice->SetClip_PathFill(path->GetPathData(), matrix, fillMode);
+ m_renderDevice->SetClip_PathFill(path->GetPathData(), &matrix, fillMode);
SetDIBitsWithMatrix(bmp, matrix);
}
}
void CXFA_Graphics::SetDIBitsWithMatrix(
const CFX_RetainPtr<CFX_DIBSource>& source,
- CFX_Matrix* matrix) {
- if (matrix->IsIdentity()) {
+ const CFX_Matrix& matrix) {
+ if (matrix.IsIdentity()) {
m_renderDevice->SetDIBits(source, 0, 0);
} else {
CFX_Matrix m((float)source->GetWidth(), 0, 0, (float)source->GetHeight(), 0,
0);
- m.Concat(*matrix);
+ m.Concat(matrix);
int32_t left;
int32_t top;
CFX_RetainPtr<CFX_DIBitmap> bmp1 = source->FlipImage(false, true);
diff --git a/xfa/fxgraphics/cxfa_graphics.h b/xfa/fxgraphics/cxfa_graphics.h
index 05f9640ca8..99f86870c3 100644
--- a/xfa/fxgraphics/cxfa_graphics.h
+++ b/xfa/fxgraphics/cxfa_graphics.h
@@ -50,7 +50,7 @@ class CXFA_Graphics {
void RestoreGraphState();
CFX_RectF GetClipRect() const;
- CFX_Matrix* GetMatrix();
+ const CFX_Matrix* GetMatrix() const;
CFX_RenderDevice* GetRenderDevice();
void SetLineCap(CFX_GraphStateData::LineCap lineCap);
@@ -61,13 +61,13 @@ class CXFA_Graphics {
void SetStrokeColor(const CXFA_Color& color);
void SetFillColor(const CXFA_Color& color);
void SetClipRect(const CFX_RectF& rect);
- void StrokePath(CXFA_Path* path, CFX_Matrix* matrix = nullptr);
+ void StrokePath(CXFA_Path* path, const CFX_Matrix* matrix);
void FillPath(CXFA_Path* path,
- FX_FillMode fillMode = FXFILL_WINDING,
- CFX_Matrix* matrix = nullptr);
+ FX_FillMode fillMode,
+ const CFX_Matrix* matrix);
void StretchImage(const CFX_RetainPtr<CFX_DIBSource>& source,
const CFX_RectF& rect,
- CFX_Matrix* matrix = nullptr);
+ const CFX_Matrix& matrix);
void ConcatMatrix(const CFX_Matrix* matrix);
protected:
@@ -87,23 +87,23 @@ class CXFA_Graphics {
} m_info;
void RenderDeviceSetLineDash(FX_DashStyle dashStyle);
- void RenderDeviceStrokePath(CXFA_Path* path, CFX_Matrix* matrix);
- void RenderDeviceFillPath(CXFA_Path* path,
+ void RenderDeviceStrokePath(const CXFA_Path* path, const CFX_Matrix* matrix);
+ void RenderDeviceFillPath(const CXFA_Path* path,
FX_FillMode fillMode,
- CFX_Matrix* matrix);
+ const CFX_Matrix* matrix);
void RenderDeviceStretchImage(const CFX_RetainPtr<CFX_DIBSource>& source,
const CFX_RectF& rect,
- CFX_Matrix* matrix);
+ const CFX_Matrix& matrix);
- void FillPathWithPattern(CXFA_Path* path,
+ void FillPathWithPattern(const CXFA_Path* path,
FX_FillMode fillMode,
- CFX_Matrix* matrix);
- void FillPathWithShading(CXFA_Path* path,
+ const CFX_Matrix& matrix);
+ void FillPathWithShading(const CXFA_Path* path,
FX_FillMode fillMode,
- CFX_Matrix* matrix);
+ const CFX_Matrix& matrix);
void SetDIBitsWithMatrix(const CFX_RetainPtr<CFX_DIBSource>& source,
- CFX_Matrix* matrix);
+ const CFX_Matrix& matrix);
CFX_RenderDevice* const m_renderDevice; // Not owned.
std::vector<std::unique_ptr<TInfo>> m_infoStack;