diff options
Diffstat (limited to 'xfa/src/fxgraphics')
-rw-r--r-- | xfa/src/fxgraphics/src/fx_graphics.cpp | 28 | ||||
-rw-r--r-- | xfa/src/fxgraphics/src/fx_path_generator.cpp | 24 | ||||
-rw-r--r-- | xfa/src/fxgraphics/src/pre.h | 7 |
3 files changed, 25 insertions, 34 deletions
diff --git a/xfa/src/fxgraphics/src/fx_graphics.cpp b/xfa/src/fxgraphics/src/fx_graphics.cpp index 03873398de..2ad7cd5d0c 100644 --- a/xfa/src/fxgraphics/src/fx_graphics.cpp +++ b/xfa/src/fxgraphics/src/fx_graphics.cpp @@ -971,16 +971,15 @@ FX_ERR CFX_Graphics::FillPathWithShading(CFX_Path* path, case FX_SHADING_Axial: { FX_FLOAT x_span = end_x - start_x; FX_FLOAT y_span = end_y - start_y; - FX_FLOAT axis_len_square = - FXSYS_Mul(x_span, x_span) + FXSYS_Mul(y_span, y_span); + FX_FLOAT axis_len_square = (x_span * x_span) + (y_span * y_span); for (int32_t row = 0; row < height; row++) { FX_DWORD* dib_buf = (FX_DWORD*)(bmp.GetBuffer() + row * pitch); for (int32_t column = 0; column < width; column++) { FX_FLOAT x = (FX_FLOAT)(column); FX_FLOAT y = (FX_FLOAT)(row); - FX_FLOAT scale = FXSYS_Div( - FXSYS_Mul(x - start_x, x_span) + FXSYS_Mul(y - start_y, y_span), - axis_len_square); + FX_FLOAT scale = + FXSYS_Div(((x - start_x) * x_span) + ((y - start_y) * y_span), + axis_len_square); if (scale < 0) { if (!_info._fillColor->_shading->_isExtendedBegin) { continue; @@ -1002,25 +1001,24 @@ FX_ERR CFX_Graphics::FillPathWithShading(CFX_Path* path, case FX_SHADING_Radial: { FX_FLOAT start_r = _info._fillColor->_shading->_beginRadius; FX_FLOAT end_r = _info._fillColor->_shading->_endRadius; - FX_FLOAT a = FXSYS_Mul(start_x - end_x, start_x - end_x) + - FXSYS_Mul(start_y - end_y, start_y - end_y) - - FXSYS_Mul(start_r - end_r, start_r - end_r); + FX_FLOAT a = ((start_x - end_x) * (start_x - end_x)) + + ((start_y - end_y) * (start_y - end_y)) - + ((start_r - end_r) * (start_r - end_r)); for (int32_t row = 0; row < height; row++) { FX_DWORD* dib_buf = (FX_DWORD*)(bmp.GetBuffer() + row * pitch); for (int32_t column = 0; column < width; column++) { FX_FLOAT x = (FX_FLOAT)(column); FX_FLOAT y = (FX_FLOAT)(row); - FX_FLOAT b = -2 * (FXSYS_Mul(x - start_x, end_x - start_x) + - FXSYS_Mul(y - start_y, end_y - start_y) + - FXSYS_Mul(start_r, end_r - start_r)); - FX_FLOAT c = FXSYS_Mul(x - start_x, x - start_x) + - FXSYS_Mul(y - start_y, y - start_y) - - FXSYS_Mul(start_r, start_r); + FX_FLOAT b = -2 * (((x - start_x) * (end_x - start_x)) + + ((y - start_y) * (end_y - start_y)) + + (start_r * (end_r - start_r))); + FX_FLOAT c = ((x - start_x) * (x - start_x)) + + ((y - start_y) * (y - start_y)) - (start_r * start_r); FX_FLOAT s; if (a == 0) { s = (FXSYS_Div(-c, b)); } else { - FX_FLOAT b2_4ac = FXSYS_Mul(b, b) - 4 * FXSYS_Mul(a, c); + FX_FLOAT b2_4ac = (b * b) - 4 * (a * c); if (b2_4ac < 0) { continue; } diff --git a/xfa/src/fxgraphics/src/fx_path_generator.cpp b/xfa/src/fxgraphics/src/fx_path_generator.cpp index 8d5030ac5b..c9e20b35d2 100644 --- a/xfa/src/fxgraphics/src/fx_path_generator.cpp +++ b/xfa/src/fxgraphics/src/fx_path_generator.cpp @@ -120,7 +120,7 @@ void CFX_PathGenerator::ArcTo(FX_FLOAT x, FX_FLOAT x0 = FXSYS_cos(sweep_angle / 2); FX_FLOAT y0 = FXSYS_sin(sweep_angle / 2); FX_FLOAT tx = FXSYS_Div((1.0f - x0) * 4, 3 * 1.0f); - FX_FLOAT ty = y0 - FXSYS_Div(FXSYS_Mul(tx, x0), y0); + FX_FLOAT ty = y0 - FXSYS_Div(tx * x0, y0); FX_FLOAT px[3], py[3]; px[0] = x0 + tx; py[0] = -ty; @@ -131,14 +131,14 @@ void CFX_PathGenerator::ArcTo(FX_FLOAT x, int old_count = m_pPathData->GetPointCount(); m_pPathData->AddPointCount(3); FX_FLOAT bezier_x, bezier_y; - bezier_x = x + FXSYS_Mul(width, FXSYS_Mul(px[0], cs) - FXSYS_Mul(py[0], sn)); - bezier_y = y + FXSYS_Mul(height, FXSYS_Mul(px[0], sn) + FXSYS_Mul(py[0], cs)); + bezier_x = x + (width * ((px[0] * cs) - (py[0] * sn))); + bezier_y = y + (height * ((px[0] * sn) + (py[0] * cs))); m_pPathData->SetPoint(old_count, bezier_x, bezier_y, FXPT_BEZIERTO); - bezier_x = x + FXSYS_Mul(width, FXSYS_Mul(px[1], cs) - FXSYS_Mul(py[1], sn)); - bezier_y = y + FXSYS_Mul(height, FXSYS_Mul(px[1], sn) + FXSYS_Mul(py[1], cs)); + bezier_x = x + (width * ((px[1] * cs) - (py[1] * sn))); + bezier_y = y + (height * ((px[1] * sn) + (py[1] * cs))); m_pPathData->SetPoint(old_count + 1, bezier_x, bezier_y, FXPT_BEZIERTO); - bezier_x = x + FXSYS_Mul(width, FXSYS_cos(start_angle + sweep_angle)), - bezier_y = y + FXSYS_Mul(height, FXSYS_sin(start_angle + sweep_angle)); + bezier_x = x + (width * FXSYS_cos(start_angle + sweep_angle)); + bezier_y = y + (height * FXSYS_sin(start_angle + sweep_angle)); m_pPathData->SetPoint(old_count + 2, bezier_x, bezier_y, FXPT_BEZIERTO); } void CFX_PathGenerator::AddArc(FX_FLOAT x, @@ -189,9 +189,8 @@ void CFX_PathGenerator::AddArc(FX_FLOAT x, } m_pPathData->AddPointCount(1); m_pPathData->SetPoint(m_pPathData->GetPointCount() - 1, - x + FXSYS_Mul(width, FXSYS_cos(start_angle)), - y + FXSYS_Mul(height, FXSYS_sin(start_angle)), - FXPT_MOVETO); + x + (width * FXSYS_cos(start_angle)), + y + (height * FXSYS_sin(start_angle)), FXPT_MOVETO); FX_FLOAT total_sweep = 0, local_sweep = 0, prev_sweep = 0; FX_BOOL done = FALSE; do { @@ -227,9 +226,8 @@ void CFX_PathGenerator::AddPie(FX_FLOAT x, int old_count = m_pPathData->GetPointCount(); m_pPathData->AddPointCount(2); m_pPathData->SetPoint(old_count, x, y, FXPT_MOVETO); - m_pPathData->SetPoint( - old_count + 1, x + FXSYS_Mul(width, FXSYS_cos(start_angle)), - y + FXSYS_Mul(height, FXSYS_sin(start_angle)), FXPT_LINETO); + m_pPathData->SetPoint(old_count + 1, x + (width * FXSYS_cos(start_angle)), + y + (height * FXSYS_sin(start_angle)), FXPT_LINETO); return; } AddArc(x, y, width, height, start_angle, sweep_angle); diff --git a/xfa/src/fxgraphics/src/pre.h b/xfa/src/fxgraphics/src/pre.h index 7341aa7e5c..1a1820551a 100644 --- a/xfa/src/fxgraphics/src/pre.h +++ b/xfa/src/fxgraphics/src/pre.h @@ -8,12 +8,7 @@ #define XFA_SRC_FXGRAPHICS_SRC_PRE_H_ #include "xfa/src/foxitlib.h" -#ifndef FXSYS_Mul -#define FXSYS_Mul(a, b) ((a) * (b)) -#define FXSYS_Div(a, b) ((a) / (b)) -#define FXSYS_MulDiv(a, b, c) ((a) * (b) / (c)) -#define FXSYS_sqrt2(a, b) (FX_FLOAT) FXSYS_sqrt((a) * (a) + (b) * (b)) -#endif + enum { FX_CONTEXT_None = 0, FX_CONTEXT_Device, |