Index: xfa/fxfa/app/xfa_ffwidget.cpp |
diff --git a/xfa/fxfa/app/xfa_ffwidget.cpp b/xfa/fxfa/app/xfa_ffwidget.cpp |
index 3af84a6bbe255fbb55c6dbf72c78da1aa39a5659..8ce583a7827aabe6541349d25cad9d34861c4abe 100644 |
--- a/xfa/fxfa/app/xfa_ffwidget.cpp |
+++ b/xfa/fxfa/app/xfa_ffwidget.cpp |
@@ -270,12 +270,13 @@ void CXFA_FFWidget::Rotate2Normal(FX_FLOAT& fx, FX_FLOAT& fy) { |
} |
static void XFA_GetMatrix(CFX_Matrix& m, |
int32_t iRotate, |
- int32_t at, |
+ XFA_ATTRIBUTEENUM at, |
const CFX_RectF& rt) { |
if (!iRotate) { |
return; |
} |
- FX_FLOAT fAnchorX, fAnchorY; |
+ FX_FLOAT fAnchorX = 0; |
+ FX_FLOAT fAnchorY = 0; |
switch (at) { |
case XFA_ATTRIBUTEENUM_TopLeft: |
fAnchorX = rt.left, fAnchorY = rt.top; |
@@ -305,6 +306,8 @@ static void XFA_GetMatrix(CFX_Matrix& m, |
case XFA_ATTRIBUTEENUM_BottomRight: |
fAnchorX = rt.right(), fAnchorY = rt.bottom(); |
break; |
+ default: |
+ break; |
} |
switch (iRotate) { |
case 90: |
@@ -1157,20 +1160,15 @@ static void XFA_BOX_GetPath(CXFA_Box box, |
FX_BOOL bStart, |
FX_BOOL bCorner) { |
ASSERT(nIndex >= 0 && nIndex < 8); |
- FX_BOOL bInverted, bRound; |
- FX_FLOAT fRadius1, fRadius2, sx, sy, vx, vy, nx, ny, offsetY, offsetX, |
- offsetEX, offsetEY; |
- CFX_PointF cpStart, cp, cp1, cp2; |
- CFX_RectF rtRadius; |
int32_t n = (nIndex & 1) ? nIndex - 1 : nIndex; |
CXFA_Corner corner1(strokes[n].GetNode()); |
CXFA_Corner corner2(strokes[(n + 2) % 8].GetNode()); |
- fRadius1 = bCorner ? corner1.GetRadius() : 0; |
- fRadius2 = bCorner ? corner2.GetRadius() : 0; |
- bInverted = corner1.IsInverted(); |
- offsetY = 0.0f; |
- offsetX = 0.0f; |
- bRound = corner1.GetJoinType() == XFA_ATTRIBUTEENUM_Round; |
+ FX_FLOAT fRadius1 = bCorner ? corner1.GetRadius() : 0.0f; |
+ FX_FLOAT fRadius2 = bCorner ? corner2.GetRadius() : 0.0f; |
+ FX_BOOL bInverted = corner1.IsInverted(); |
+ FX_FLOAT offsetY = 0.0f; |
+ FX_FLOAT offsetX = 0.0f; |
+ FX_BOOL bRound = corner1.GetJoinType() == XFA_ATTRIBUTEENUM_Round; |
FX_FLOAT halfAfter = 0.0f; |
FX_FLOAT halfBefore = 0.0f; |
CXFA_Stroke stroke = strokes[nIndex]; |
@@ -1189,12 +1187,21 @@ static void XFA_BOX_GetPath(CXFA_Box box, |
CXFA_Stroke edgeBefore = strokes[(nIndex + 8 - 2) % 8]; |
CXFA_Stroke edgeAfter = strokes[(nIndex + 2) % 8]; |
if (!bRound && !bInverted) { |
- { halfBefore = edgeBefore.GetThickness() / 2; } |
- { halfAfter = edgeAfter.GetThickness() / 2; } |
+ halfBefore = edgeBefore.GetThickness() / 2; |
+ halfAfter = edgeAfter.GetThickness() / 2; |
} |
} |
- offsetEX = 0.0f; |
- offsetEY = 0.0f; |
+ FX_FLOAT offsetEX = 0.0f; |
+ FX_FLOAT offsetEY = 0.0f; |
+ FX_FLOAT sx = 0.0f; |
+ FX_FLOAT sy = 0.0f; |
+ FX_FLOAT vx = 1.0f; |
+ FX_FLOAT vy = 1.0f; |
+ FX_FLOAT nx = 1.0f; |
+ FX_FLOAT ny = 1.0f; |
+ CFX_PointF cpStart; |
+ CFX_PointF cp1; |
+ CFX_PointF cp2; |
if (bRound) { |
sy = FX_PI / 2; |
} |
@@ -1291,6 +1298,7 @@ static void XFA_BOX_GetPath(CXFA_Box box, |
if (bInverted) { |
sy *= -1; |
} |
+ CFX_RectF rtRadius; |
rtRadius.Set(cp1.x + offsetX * 2, cp1.y + offsetY * 2, |
fRadius1 * 2 * vx - offsetX * 2, |
fRadius1 * 2 * vy - offsetY * 2); |
@@ -1301,6 +1309,7 @@ static void XFA_BOX_GetPath(CXFA_Box box, |
path.ArcTo(rtRadius.left, rtRadius.top, rtRadius.width, rtRadius.height, sx, |
sy); |
} else { |
+ CFX_PointF cp; |
if (bInverted) { |
cp.x = cp1.x + fRadius1 * vx, cp.y = cp1.y + fRadius1 * vy; |
} else { |
@@ -1369,17 +1378,21 @@ static void XFA_BOX_GetFillPath(CXFA_Box box, |
rtWidget.height); |
return; |
} |
- FX_BOOL bInverted, bRound; |
- FX_FLOAT fRadius1, fRadius2, sx, sy, vx, vy, nx, ny; |
- CFX_PointF cp, cp1, cp2; |
- CFX_RectF rtRadius; |
+ |
for (int32_t i = 0; i < 8; i += 2) { |
+ FX_FLOAT sx = 0.0f; |
+ FX_FLOAT sy = 0.0f; |
+ FX_FLOAT vx = 1.0f; |
+ FX_FLOAT vy = 1.0f; |
+ FX_FLOAT nx = 1.0f; |
+ FX_FLOAT ny = 1.0f; |
+ CFX_PointF cp1, cp2; |
CXFA_Corner corner1(strokes[i].GetNode()); |
CXFA_Corner corner2(strokes[(i + 2) % 8].GetNode()); |
- fRadius1 = corner1.GetRadius(); |
- fRadius2 = corner2.GetRadius(); |
- bInverted = corner1.IsInverted(); |
- bRound = corner1.GetJoinType() == XFA_ATTRIBUTEENUM_Round; |
+ FX_FLOAT fRadius1 = corner1.GetRadius(); |
+ FX_FLOAT fRadius2 = corner2.GetRadius(); |
+ FX_BOOL bInverted = corner1.IsInverted(); |
+ FX_BOOL bRound = corner1.GetJoinType() == XFA_ATTRIBUTEENUM_Round; |
if (bRound) { |
sy = FX_PI / 2; |
} |
@@ -1439,6 +1452,7 @@ static void XFA_BOX_GetFillPath(CXFA_Box box, |
if (bInverted) { |
sy *= -1; |
} |
+ CFX_RectF rtRadius; |
rtRadius.Set(cp1.x, cp1.y, fRadius1 * 2 * vx, fRadius1 * 2 * vy); |
rtRadius.Normalize(); |
if (bInverted) { |
@@ -1447,6 +1461,7 @@ static void XFA_BOX_GetFillPath(CXFA_Box box, |
fillPath.ArcTo(rtRadius.left, rtRadius.top, rtRadius.width, |
rtRadius.height, sx, sy); |
} else { |
+ CFX_PointF cp; |
if (bInverted) { |
cp.x = cp1.x + fRadius1 * vx, cp.y = cp1.y + fRadius1 * vy; |
} else { |