Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(334)

Side by Side Diff: core/src/fxge/ge/fx_ge_path.cpp

Issue 1729613003: Remove FXSYS_Mul. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/src/fxge/dib/fx_dib_engine.cpp ('k') | core/src/fxge/win32/fx_win32_gdipext.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "core/include/fxcrt/fx_system.h" 7 #include "core/include/fxcrt/fx_system.h"
8 #include "core/include/fxge/fx_ge.h" 8 #include "core/include/fxge/fx_ge.h"
9 #include "third_party/base/numerics/safe_math.h" 9 #include "third_party/base/numerics/safe_math.h"
10 10
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 FX_BOOL bEndVert = FXSYS_fabs(middle_x - end_x) < 1.0f / 20; 257 FX_BOOL bEndVert = FXSYS_fabs(middle_x - end_x) < 1.0f / 20;
258 if (bStartVert && bEndVert) { 258 if (bStartVert && bEndVert) {
259 int start_dir = middle_y > start_y ? 1 : -1; 259 int start_dir = middle_y > start_y ? 1 : -1;
260 FX_FLOAT point_y = middle_y + half_width * start_dir; 260 FX_FLOAT point_y = middle_y + half_width * start_dir;
261 rect.UpdateRect(middle_x + half_width, point_y); 261 rect.UpdateRect(middle_x + half_width, point_y);
262 rect.UpdateRect(middle_x - half_width, point_y); 262 rect.UpdateRect(middle_x - half_width, point_y);
263 return; 263 return;
264 } 264 }
265 if (!bStartVert) { 265 if (!bStartVert) {
266 start_k = FXSYS_Div(middle_y - start_y, middle_x - start_x); 266 start_k = FXSYS_Div(middle_y - start_y, middle_x - start_x);
267 start_c = middle_y - FXSYS_Mul(start_k, middle_x); 267 start_c = middle_y - (start_k * middle_x);
268 start_len = FXSYS_sqrt2(start_x - middle_x, start_y - middle_y); 268 start_len = FXSYS_sqrt2(start_x - middle_x, start_y - middle_y);
269 start_dc = (FX_FLOAT)FXSYS_fabs( 269 start_dc = (FX_FLOAT)FXSYS_fabs(
270 FXSYS_MulDiv(half_width, start_len, start_x - middle_x)); 270 FXSYS_MulDiv(half_width, start_len, start_x - middle_x));
271 } 271 }
272 if (!bEndVert) { 272 if (!bEndVert) {
273 end_k = FXSYS_Div(end_y - middle_y, end_x - middle_x); 273 end_k = FXSYS_Div(end_y - middle_y, end_x - middle_x);
274 end_c = middle_y - FXSYS_Mul(end_k, middle_x); 274 end_c = middle_y - (end_k * middle_x);
275 end_len = FXSYS_sqrt2(end_x - middle_x, end_y - middle_y); 275 end_len = FXSYS_sqrt2(end_x - middle_x, end_y - middle_y);
276 end_dc = (FX_FLOAT)FXSYS_fabs( 276 end_dc = (FX_FLOAT)FXSYS_fabs(
277 FXSYS_MulDiv(half_width, end_len, end_x - middle_x)); 277 FXSYS_MulDiv(half_width, end_len, end_x - middle_x));
278 } 278 }
279 if (bStartVert) { 279 if (bStartVert) {
280 FX_FLOAT outside_x = start_x; 280 FX_FLOAT outside_x = start_x;
281 if (end_x < start_x) { 281 if (end_x < start_x) {
282 outside_x += half_width; 282 outside_x += half_width;
283 } else { 283 } else {
284 outside_x -= half_width; 284 outside_x -= half_width;
285 } 285 }
286 FX_FLOAT outside_y; 286 FX_FLOAT outside_y;
287 if (start_y < FXSYS_Mul(end_k, start_x) + end_c) { 287 if (start_y < (end_k * start_x) + end_c) {
288 outside_y = FXSYS_Mul(end_k, outside_x) + end_c + end_dc; 288 outside_y = (end_k * outside_x) + end_c + end_dc;
289 } else { 289 } else {
290 outside_y = FXSYS_Mul(end_k, outside_x) + end_c - end_dc; 290 outside_y = (end_k * outside_x) + end_c - end_dc;
291 } 291 }
292 rect.UpdateRect(outside_x, outside_y); 292 rect.UpdateRect(outside_x, outside_y);
293 return; 293 return;
294 } 294 }
295 if (bEndVert) { 295 if (bEndVert) {
296 FX_FLOAT outside_x = end_x; 296 FX_FLOAT outside_x = end_x;
297 if (start_x < end_x) { 297 if (start_x < end_x) {
298 outside_x += half_width; 298 outside_x += half_width;
299 } else { 299 } else {
300 outside_x -= half_width; 300 outside_x -= half_width;
301 } 301 }
302 FX_FLOAT outside_y; 302 FX_FLOAT outside_y;
303 if (end_y < FXSYS_Mul(start_k, end_x) + start_c) { 303 if (end_y < (start_k * end_x) + start_c) {
304 outside_y = FXSYS_Mul(start_k, outside_x) + start_c + start_dc; 304 outside_y = (start_k * outside_x) + start_c + start_dc;
305 } else { 305 } else {
306 outside_y = FXSYS_Mul(start_k, outside_x) + start_c - start_dc; 306 outside_y = (start_k * outside_x) + start_c - start_dc;
307 } 307 }
308 rect.UpdateRect(outside_x, outside_y); 308 rect.UpdateRect(outside_x, outside_y);
309 return; 309 return;
310 } 310 }
311 if (FXSYS_fabs(start_k - end_k) < 1.0f / 20) { 311 if (FXSYS_fabs(start_k - end_k) < 1.0f / 20) {
312 int start_dir = middle_x > start_x ? 1 : -1; 312 int start_dir = middle_x > start_x ? 1 : -1;
313 int end_dir = end_x > middle_x ? 1 : -1; 313 int end_dir = end_x > middle_x ? 1 : -1;
314 if (start_dir == end_dir) { 314 if (start_dir == end_dir) {
315 _UpdateLineEndPoints(rect, middle_x, middle_y, end_x, end_y, half_width); 315 _UpdateLineEndPoints(rect, middle_x, middle_y, end_x, end_y, half_width);
316 } else { 316 } else {
317 _UpdateLineEndPoints(rect, start_x, start_y, middle_x, middle_y, 317 _UpdateLineEndPoints(rect, start_x, start_y, middle_x, middle_y,
318 half_width); 318 half_width);
319 } 319 }
320 return; 320 return;
321 } 321 }
322 FX_FLOAT start_outside_c = start_c; 322 FX_FLOAT start_outside_c = start_c;
323 if (end_y < FXSYS_Mul(start_k, end_x) + start_c) { 323 if (end_y < (start_k * end_x) + start_c) {
324 start_outside_c += start_dc; 324 start_outside_c += start_dc;
325 } else { 325 } else {
326 start_outside_c -= start_dc; 326 start_outside_c -= start_dc;
327 } 327 }
328 FX_FLOAT end_outside_c = end_c; 328 FX_FLOAT end_outside_c = end_c;
329 if (start_y < FXSYS_Mul(end_k, start_x) + end_c) { 329 if (start_y < (end_k * start_x) + end_c) {
330 end_outside_c += end_dc; 330 end_outside_c += end_dc;
331 } else { 331 } else {
332 end_outside_c -= end_dc; 332 end_outside_c -= end_dc;
333 } 333 }
334 FX_FLOAT join_x = FXSYS_Div(end_outside_c - start_outside_c, start_k - end_k); 334 FX_FLOAT join_x = FXSYS_Div(end_outside_c - start_outside_c, start_k - end_k);
335 FX_FLOAT join_y = FXSYS_Mul(start_k, join_x) + start_outside_c; 335 FX_FLOAT join_y = (start_k * join_x) + start_outside_c;
336 rect.UpdateRect(join_x, join_y); 336 rect.UpdateRect(join_x, join_y);
337 } 337 }
338 CFX_FloatRect CFX_PathData::GetBoundingBox(FX_FLOAT line_width, 338 CFX_FloatRect CFX_PathData::GetBoundingBox(FX_FLOAT line_width,
339 FX_FLOAT miter_limit) const { 339 FX_FLOAT miter_limit) const {
340 CFX_FloatRect rect(100000 * 1.0f, 100000 * 1.0f, -100000 * 1.0f, 340 CFX_FloatRect rect(100000 * 1.0f, 100000 * 1.0f, -100000 * 1.0f,
341 -100000 * 1.0f); 341 -100000 * 1.0f);
342 int iPoint = 0; 342 int iPoint = 0;
343 FX_FLOAT half_width = line_width; 343 FX_FLOAT half_width = line_width;
344 int iStartPoint, iEndPoint, iMiddlePoint; 344 int iStartPoint, iEndPoint, iMiddlePoint;
345 FX_BOOL bJoin; 345 FX_BOOL bJoin;
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 } 648 }
649 void CFX_GraphStateData::SetDashCount(int count) { 649 void CFX_GraphStateData::SetDashCount(int count) {
650 FX_Free(m_DashArray); 650 FX_Free(m_DashArray);
651 m_DashArray = NULL; 651 m_DashArray = NULL;
652 m_DashCount = count; 652 m_DashCount = count;
653 if (count == 0) { 653 if (count == 0) {
654 return; 654 return;
655 } 655 }
656 m_DashArray = FX_Alloc(FX_FLOAT, count); 656 m_DashArray = FX_Alloc(FX_FLOAT, count);
657 } 657 }
OLDNEW
« no previous file with comments | « core/src/fxge/dib/fx_dib_engine.cpp ('k') | core/src/fxge/win32/fx_win32_gdipext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698