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

Side by Side Diff: xfa/fxgraphics/cfx_graphics.cpp

Issue 1830323006: Remove FX_DWORD from XFA. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 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 | « xfa/fxfa/parser/xfa_utils_imp.cpp ('k') | xfa/fxjse/context.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 "xfa/fxgraphics/include/cfx_graphics.h" 7 #include "xfa/fxgraphics/include/cfx_graphics.h"
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 return RenderDeviceShowText(point, text, matrix); 952 return RenderDeviceShowText(point, text, matrix);
953 return FX_ERR_Property_Invalid; 953 return FX_ERR_Property_Invalid;
954 } 954 }
955 955
956 FX_ERR CFX_Graphics::CalcTextRect(CFX_RectF& rect, 956 FX_ERR CFX_Graphics::CalcTextRect(CFX_RectF& rect,
957 const CFX_WideString& text, 957 const CFX_WideString& text,
958 FX_BOOL isMultiline, 958 FX_BOOL isMultiline,
959 CFX_Matrix* matrix) { 959 CFX_Matrix* matrix) {
960 if (m_type == FX_CONTEXT_Device && m_renderDevice) { 960 if (m_type == FX_CONTEXT_Device && m_renderDevice) {
961 int32_t length = text.GetLength(); 961 int32_t length = text.GetLength();
962 FX_DWORD* charCodes = FX_Alloc(FX_DWORD, length); 962 uint32_t* charCodes = FX_Alloc(uint32_t, length);
963 FXTEXT_CHARPOS* charPos = FX_Alloc(FXTEXT_CHARPOS, length); 963 FXTEXT_CHARPOS* charPos = FX_Alloc(FXTEXT_CHARPOS, length);
964 CalcTextInfo(text, charCodes, charPos, rect); 964 CalcTextInfo(text, charCodes, charPos, rect);
965 FX_Free(charPos); 965 FX_Free(charPos);
966 FX_Free(charCodes); 966 FX_Free(charCodes);
967 return FX_ERR_Succeeded; 967 return FX_ERR_Succeeded;
968 } 968 }
969 return FX_ERR_Property_Invalid; 969 return FX_ERR_Property_Invalid;
970 } 970 }
971 971
972 FX_ERR CFX_Graphics::Transfer(CFX_Graphics* graphics, 972 FX_ERR CFX_Graphics::Transfer(CFX_Graphics* graphics,
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
1275 FXSYS_round(r.top - top))) { 1275 FXSYS_round(r.top - top))) {
1276 return FX_ERR_Succeeded; 1276 return FX_ERR_Succeeded;
1277 } 1277 }
1278 return FX_ERR_Indefinite; 1278 return FX_ERR_Indefinite;
1279 } 1279 }
1280 1280
1281 FX_ERR CFX_Graphics::RenderDeviceShowText(const CFX_PointF& point, 1281 FX_ERR CFX_Graphics::RenderDeviceShowText(const CFX_PointF& point,
1282 const CFX_WideString& text, 1282 const CFX_WideString& text,
1283 CFX_Matrix* matrix) { 1283 CFX_Matrix* matrix) {
1284 int32_t length = text.GetLength(); 1284 int32_t length = text.GetLength();
1285 FX_DWORD* charCodes = FX_Alloc(FX_DWORD, length); 1285 uint32_t* charCodes = FX_Alloc(uint32_t, length);
1286 FXTEXT_CHARPOS* charPos = FX_Alloc(FXTEXT_CHARPOS, length); 1286 FXTEXT_CHARPOS* charPos = FX_Alloc(FXTEXT_CHARPOS, length);
1287 CFX_RectF rect; 1287 CFX_RectF rect;
1288 rect.Set(point.x, point.y, 0, 0); 1288 rect.Set(point.x, point.y, 0, 0);
1289 CalcTextInfo(text, charCodes, charPos, rect); 1289 CalcTextInfo(text, charCodes, charPos, rect);
1290 CFX_Matrix m; 1290 CFX_Matrix m;
1291 m.Set(m_info.CTM.a, m_info.CTM.b, m_info.CTM.c, m_info.CTM.d, m_info.CTM.e, 1291 m.Set(m_info.CTM.a, m_info.CTM.b, m_info.CTM.c, m_info.CTM.d, m_info.CTM.e,
1292 m_info.CTM.f); 1292 m_info.CTM.f);
1293 m.Translate(0, m_info.fontSize * m_info.fontHScale); 1293 m.Translate(0, m_info.fontSize * m_info.fontHScale);
1294 if (matrix) { 1294 if (matrix) {
1295 m.Concat(*matrix); 1295 m.Concat(*matrix);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1371 bmp.Create(width, height, FXDIB_Argb); 1371 bmp.Create(width, height, FXDIB_Argb);
1372 m_renderDevice->GetDIBits(&bmp, 0, 0); 1372 m_renderDevice->GetDIBits(&bmp, 0, 0);
1373 int32_t pitch = bmp.GetPitch(); 1373 int32_t pitch = bmp.GetPitch();
1374 FX_BOOL result = FALSE; 1374 FX_BOOL result = FALSE;
1375 switch (m_info.fillColor->m_shading->m_type) { 1375 switch (m_info.fillColor->m_shading->m_type) {
1376 case FX_SHADING_Axial: { 1376 case FX_SHADING_Axial: {
1377 FX_FLOAT x_span = end_x - start_x; 1377 FX_FLOAT x_span = end_x - start_x;
1378 FX_FLOAT y_span = end_y - start_y; 1378 FX_FLOAT y_span = end_y - start_y;
1379 FX_FLOAT axis_len_square = (x_span * x_span) + (y_span * y_span); 1379 FX_FLOAT axis_len_square = (x_span * x_span) + (y_span * y_span);
1380 for (int32_t row = 0; row < height; row++) { 1380 for (int32_t row = 0; row < height; row++) {
1381 FX_DWORD* dib_buf = (FX_DWORD*)(bmp.GetBuffer() + row * pitch); 1381 uint32_t* dib_buf = (uint32_t*)(bmp.GetBuffer() + row * pitch);
1382 for (int32_t column = 0; column < width; column++) { 1382 for (int32_t column = 0; column < width; column++) {
1383 FX_FLOAT x = (FX_FLOAT)(column); 1383 FX_FLOAT x = (FX_FLOAT)(column);
1384 FX_FLOAT y = (FX_FLOAT)(row); 1384 FX_FLOAT y = (FX_FLOAT)(row);
1385 FX_FLOAT scale = 1385 FX_FLOAT scale =
1386 (((x - start_x) * x_span) + ((y - start_y) * y_span)) / 1386 (((x - start_x) * x_span) + ((y - start_y) * y_span)) /
1387 axis_len_square; 1387 axis_len_square;
1388 if (scale < 0) { 1388 if (scale < 0) {
1389 if (!m_info.fillColor->m_shading->m_isExtendedBegin) { 1389 if (!m_info.fillColor->m_shading->m_isExtendedBegin) {
1390 continue; 1390 continue;
1391 } 1391 }
(...skipping 11 matching lines...) Expand all
1403 result = TRUE; 1403 result = TRUE;
1404 break; 1404 break;
1405 } 1405 }
1406 case FX_SHADING_Radial: { 1406 case FX_SHADING_Radial: {
1407 FX_FLOAT start_r = m_info.fillColor->m_shading->m_beginRadius; 1407 FX_FLOAT start_r = m_info.fillColor->m_shading->m_beginRadius;
1408 FX_FLOAT end_r = m_info.fillColor->m_shading->m_endRadius; 1408 FX_FLOAT end_r = m_info.fillColor->m_shading->m_endRadius;
1409 FX_FLOAT a = ((start_x - end_x) * (start_x - end_x)) + 1409 FX_FLOAT a = ((start_x - end_x) * (start_x - end_x)) +
1410 ((start_y - end_y) * (start_y - end_y)) - 1410 ((start_y - end_y) * (start_y - end_y)) -
1411 ((start_r - end_r) * (start_r - end_r)); 1411 ((start_r - end_r) * (start_r - end_r));
1412 for (int32_t row = 0; row < height; row++) { 1412 for (int32_t row = 0; row < height; row++) {
1413 FX_DWORD* dib_buf = (FX_DWORD*)(bmp.GetBuffer() + row * pitch); 1413 uint32_t* dib_buf = (uint32_t*)(bmp.GetBuffer() + row * pitch);
1414 for (int32_t column = 0; column < width; column++) { 1414 for (int32_t column = 0; column < width; column++) {
1415 FX_FLOAT x = (FX_FLOAT)(column); 1415 FX_FLOAT x = (FX_FLOAT)(column);
1416 FX_FLOAT y = (FX_FLOAT)(row); 1416 FX_FLOAT y = (FX_FLOAT)(row);
1417 FX_FLOAT b = -2 * (((x - start_x) * (end_x - start_x)) + 1417 FX_FLOAT b = -2 * (((x - start_x) * (end_x - start_x)) +
1418 ((y - start_y) * (end_y - start_y)) + 1418 ((y - start_y) * (end_y - start_y)) +
1419 (start_r * (end_r - start_r))); 1419 (start_r * (end_r - start_r)));
1420 FX_FLOAT c = ((x - start_x) * (x - start_x)) + 1420 FX_FLOAT c = ((x - start_x) * (x - start_x)) +
1421 ((y - start_y) * (y - start_y)) - (start_r * start_r); 1421 ((y - start_y) * (y - start_y)) - (start_r * start_r);
1422 FX_FLOAT s; 1422 FX_FLOAT s;
1423 if (a == 0) { 1423 if (a == 0) {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1488 int32_t left, top; 1488 int32_t left, top;
1489 std::unique_ptr<CFX_DIBitmap> bmp1(source->FlipImage(FALSE, TRUE)); 1489 std::unique_ptr<CFX_DIBitmap> bmp1(source->FlipImage(FALSE, TRUE));
1490 std::unique_ptr<CFX_DIBitmap> bmp2( 1490 std::unique_ptr<CFX_DIBitmap> bmp2(
1491 bmp1->TransformTo((CFX_Matrix*)&m, left, top)); 1491 bmp1->TransformTo((CFX_Matrix*)&m, left, top));
1492 m_renderDevice->SetDIBits(bmp2.get(), left, top); 1492 m_renderDevice->SetDIBits(bmp2.get(), left, top);
1493 } 1493 }
1494 return FX_ERR_Succeeded; 1494 return FX_ERR_Succeeded;
1495 } 1495 }
1496 1496
1497 FX_ERR CFX_Graphics::CalcTextInfo(const CFX_WideString& text, 1497 FX_ERR CFX_Graphics::CalcTextInfo(const CFX_WideString& text,
1498 FX_DWORD* charCodes, 1498 uint32_t* charCodes,
1499 FXTEXT_CHARPOS* charPos, 1499 FXTEXT_CHARPOS* charPos,
1500 CFX_RectF& rect) { 1500 CFX_RectF& rect) {
1501 std::unique_ptr<CFX_UnicodeEncoding> encoding( 1501 std::unique_ptr<CFX_UnicodeEncoding> encoding(
1502 new CFX_UnicodeEncoding(m_info.font)); 1502 new CFX_UnicodeEncoding(m_info.font));
1503 int32_t length = text.GetLength(); 1503 int32_t length = text.GetLength();
1504 FX_FLOAT penX = (FX_FLOAT)rect.left; 1504 FX_FLOAT penX = (FX_FLOAT)rect.left;
1505 FX_FLOAT penY = (FX_FLOAT)rect.top; 1505 FX_FLOAT penY = (FX_FLOAT)rect.top;
1506 FX_FLOAT left = (FX_FLOAT)(0); 1506 FX_FLOAT left = (FX_FLOAT)(0);
1507 FX_FLOAT top = (FX_FLOAT)(0); 1507 FX_FLOAT top = (FX_FLOAT)(0);
1508 charCodes[0] = text.GetAt(0); 1508 charCodes[0] = text.GetAt(0);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1559 CTM = other.CTM; 1559 CTM = other.CTM;
1560 isActOnDash = other.isActOnDash; 1560 isActOnDash = other.isActOnDash;
1561 strokeColor = other.strokeColor; 1561 strokeColor = other.strokeColor;
1562 fillColor = other.fillColor; 1562 fillColor = other.fillColor;
1563 font = other.font; 1563 font = other.font;
1564 fontSize = other.fontSize; 1564 fontSize = other.fontSize;
1565 fontHScale = other.fontHScale; 1565 fontHScale = other.fontHScale;
1566 fontSpacing = other.fontSpacing; 1566 fontSpacing = other.fontSpacing;
1567 return *this; 1567 return *this;
1568 } 1568 }
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/xfa_utils_imp.cpp ('k') | xfa/fxjse/context.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698