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

Side by Side Diff: core/fpdfapi/fpdf_render/fpdf_render_pattern.cpp

Issue 1832173003: Remove FX_DWORD from core/ and delete definition (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
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/fpdfapi/fpdf_render/render_int.h" 7 #include "core/fpdfapi/fpdf_render/render_int.h"
8 8
9 #include "core/fpdfapi/fpdf_page/cpdf_graphicstates.h" 9 #include "core/fpdfapi/fpdf_page/cpdf_graphicstates.h"
10 #include "core/fpdfapi/fpdf_page/cpdf_meshstream.h" 10 #include "core/fpdfapi/fpdf_page/cpdf_meshstream.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 if (pFuncs[j]) { 63 if (pFuncs[j]) {
64 total_results += pFuncs[j]->CountOutputs(); 64 total_results += pFuncs[j]->CountOutputs();
65 } 65 }
66 } 66 }
67 if (pCS->CountComponents() > total_results) { 67 if (pCS->CountComponents() > total_results) {
68 total_results = pCS->CountComponents(); 68 total_results = pCS->CountComponents();
69 } 69 }
70 CFX_FixedBufGrow<FX_FLOAT, 16> result_array(total_results); 70 CFX_FixedBufGrow<FX_FLOAT, 16> result_array(total_results);
71 FX_FLOAT* pResults = result_array; 71 FX_FLOAT* pResults = result_array;
72 FXSYS_memset(pResults, 0, total_results * sizeof(FX_FLOAT)); 72 FXSYS_memset(pResults, 0, total_results * sizeof(FX_FLOAT));
73 FX_DWORD rgb_array[SHADING_STEPS]; 73 uint32_t rgb_array[SHADING_STEPS];
74 for (int i = 0; i < SHADING_STEPS; i++) { 74 for (int i = 0; i < SHADING_STEPS; i++) {
75 FX_FLOAT input = (t_max - t_min) * i / SHADING_STEPS + t_min; 75 FX_FLOAT input = (t_max - t_min) * i / SHADING_STEPS + t_min;
76 int offset = 0; 76 int offset = 0;
77 for (int j = 0; j < nFuncs; j++) { 77 for (int j = 0; j < nFuncs; j++) {
78 if (pFuncs[j]) { 78 if (pFuncs[j]) {
79 int nresults = 0; 79 int nresults = 0;
80 if (pFuncs[j]->Call(&input, 1, pResults + offset, nresults)) { 80 if (pFuncs[j]->Call(&input, 1, pResults + offset, nresults)) {
81 offset += nresults; 81 offset += nresults;
82 } 82 }
83 } 83 }
84 } 84 }
85 FX_FLOAT R = 0.0f, G = 0.0f, B = 0.0f; 85 FX_FLOAT R = 0.0f, G = 0.0f, B = 0.0f;
86 pCS->GetRGB(pResults, R, G, B); 86 pCS->GetRGB(pResults, R, G, B);
87 rgb_array[i] = 87 rgb_array[i] =
88 FXARGB_TODIB(FXARGB_MAKE(alpha, FXSYS_round(R * 255), 88 FXARGB_TODIB(FXARGB_MAKE(alpha, FXSYS_round(R * 255),
89 FXSYS_round(G * 255), FXSYS_round(B * 255))); 89 FXSYS_round(G * 255), FXSYS_round(B * 255)));
90 } 90 }
91 int pitch = pBitmap->GetPitch(); 91 int pitch = pBitmap->GetPitch();
92 for (int row = 0; row < height; row++) { 92 for (int row = 0; row < height; row++) {
93 FX_DWORD* dib_buf = (FX_DWORD*)(pBitmap->GetBuffer() + row * pitch); 93 uint32_t* dib_buf = (uint32_t*)(pBitmap->GetBuffer() + row * pitch);
94 for (int column = 0; column < width; column++) { 94 for (int column = 0; column < width; column++) {
95 FX_FLOAT x = (FX_FLOAT)column, y = (FX_FLOAT)row; 95 FX_FLOAT x = (FX_FLOAT)column, y = (FX_FLOAT)row;
96 matrix.Transform(x, y); 96 matrix.Transform(x, y);
97 FX_FLOAT scale = (((x - start_x) * x_span) + ((y - start_y) * y_span)) / 97 FX_FLOAT scale = (((x - start_x) * x_span) + ((y - start_y) * y_span)) /
98 axis_len_square; 98 axis_len_square;
99 int index = (int32_t)(scale * (SHADING_STEPS - 1)); 99 int index = (int32_t)(scale * (SHADING_STEPS - 1));
100 if (index < 0) { 100 if (index < 0) {
101 if (!bStartExtend) { 101 if (!bStartExtend) {
102 continue; 102 continue;
103 } 103 }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 if (pFuncs[j]) { 149 if (pFuncs[j]) {
150 total_results += pFuncs[j]->CountOutputs(); 150 total_results += pFuncs[j]->CountOutputs();
151 } 151 }
152 } 152 }
153 if (pCS->CountComponents() > total_results) { 153 if (pCS->CountComponents() > total_results) {
154 total_results = pCS->CountComponents(); 154 total_results = pCS->CountComponents();
155 } 155 }
156 CFX_FixedBufGrow<FX_FLOAT, 16> result_array(total_results); 156 CFX_FixedBufGrow<FX_FLOAT, 16> result_array(total_results);
157 FX_FLOAT* pResults = result_array; 157 FX_FLOAT* pResults = result_array;
158 FXSYS_memset(pResults, 0, total_results * sizeof(FX_FLOAT)); 158 FXSYS_memset(pResults, 0, total_results * sizeof(FX_FLOAT));
159 FX_DWORD rgb_array[SHADING_STEPS]; 159 uint32_t rgb_array[SHADING_STEPS];
160 for (int i = 0; i < SHADING_STEPS; i++) { 160 for (int i = 0; i < SHADING_STEPS; i++) {
161 FX_FLOAT input = (t_max - t_min) * i / SHADING_STEPS + t_min; 161 FX_FLOAT input = (t_max - t_min) * i / SHADING_STEPS + t_min;
162 int offset = 0; 162 int offset = 0;
163 for (int j = 0; j < nFuncs; j++) { 163 for (int j = 0; j < nFuncs; j++) {
164 if (pFuncs[j]) { 164 if (pFuncs[j]) {
165 int nresults; 165 int nresults;
166 if (pFuncs[j]->Call(&input, 1, pResults + offset, nresults)) { 166 if (pFuncs[j]->Call(&input, 1, pResults + offset, nresults)) {
167 offset += nresults; 167 offset += nresults;
168 } 168 }
169 } 169 }
(...skipping 12 matching lines...) Expand all
182 int pitch = pBitmap->GetPitch(); 182 int pitch = pBitmap->GetPitch();
183 FX_BOOL bDecreasing = FALSE; 183 FX_BOOL bDecreasing = FALSE;
184 if (start_r > end_r) { 184 if (start_r > end_r) {
185 int length = (int)FXSYS_sqrt((((start_x - end_x) * (start_x - end_x)) + 185 int length = (int)FXSYS_sqrt((((start_x - end_x) * (start_x - end_x)) +
186 ((start_y - end_y) * (start_y - end_y)))); 186 ((start_y - end_y) * (start_y - end_y))));
187 if (length < start_r - end_r) { 187 if (length < start_r - end_r) {
188 bDecreasing = TRUE; 188 bDecreasing = TRUE;
189 } 189 }
190 } 190 }
191 for (int row = 0; row < height; row++) { 191 for (int row = 0; row < height; row++) {
192 FX_DWORD* dib_buf = (FX_DWORD*)(pBitmap->GetBuffer() + row * pitch); 192 uint32_t* dib_buf = (uint32_t*)(pBitmap->GetBuffer() + row * pitch);
193 for (int column = 0; column < width; column++) { 193 for (int column = 0; column < width; column++) {
194 FX_FLOAT x = (FX_FLOAT)column, y = (FX_FLOAT)row; 194 FX_FLOAT x = (FX_FLOAT)column, y = (FX_FLOAT)row;
195 matrix.Transform(x, y); 195 matrix.Transform(x, y);
196 FX_FLOAT b = -2 * (((x - start_x) * (end_x - start_x)) + 196 FX_FLOAT b = -2 * (((x - start_x) * (end_x - start_x)) +
197 ((y - start_y) * (end_y - start_y)) + 197 ((y - start_y) * (end_y - start_y)) +
198 (start_r * (end_r - start_r))); 198 (start_r * (end_r - start_r)));
199 FX_FLOAT c = ((x - start_x) * (x - start_x)) + 199 FX_FLOAT c = ((x - start_x) * (x - start_x)) +
200 ((y - start_y) * (y - start_y)) - (start_r * start_r); 200 ((y - start_y) * (y - start_y)) - (start_r * start_r);
201 FX_FLOAT s; 201 FX_FLOAT s;
202 if (a == 0) { 202 if (a == 0) {
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 total_results += pFuncs[j]->CountOutputs(); 279 total_results += pFuncs[j]->CountOutputs();
280 } 280 }
281 } 281 }
282 if (pCS->CountComponents() > total_results) { 282 if (pCS->CountComponents() > total_results) {
283 total_results = pCS->CountComponents(); 283 total_results = pCS->CountComponents();
284 } 284 }
285 CFX_FixedBufGrow<FX_FLOAT, 16> result_array(total_results); 285 CFX_FixedBufGrow<FX_FLOAT, 16> result_array(total_results);
286 FX_FLOAT* pResults = result_array; 286 FX_FLOAT* pResults = result_array;
287 FXSYS_memset(pResults, 0, total_results * sizeof(FX_FLOAT)); 287 FXSYS_memset(pResults, 0, total_results * sizeof(FX_FLOAT));
288 for (int row = 0; row < height; row++) { 288 for (int row = 0; row < height; row++) {
289 FX_DWORD* dib_buf = (FX_DWORD*)(pBitmap->GetBuffer() + row * pitch); 289 uint32_t* dib_buf = (uint32_t*)(pBitmap->GetBuffer() + row * pitch);
290 for (int column = 0; column < width; column++) { 290 for (int column = 0; column < width; column++) {
291 FX_FLOAT x = (FX_FLOAT)column, y = (FX_FLOAT)row; 291 FX_FLOAT x = (FX_FLOAT)column, y = (FX_FLOAT)row;
292 matrix.Transform(x, y); 292 matrix.Transform(x, y);
293 if (x < xmin || x > xmax || y < ymin || y > ymax) { 293 if (x < xmin || x > xmax || y < ymin || y > ymax) {
294 continue; 294 continue;
295 } 295 }
296 FX_FLOAT input[2]; 296 FX_FLOAT input[2];
297 int offset = 0; 297 int offset = 0;
298 input[0] = x; 298 input[0] = x;
299 input[1] = y; 299 input[1] = y;
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 425
426 CPDF_MeshStream stream; 426 CPDF_MeshStream stream;
427 if (!stream.Load(pShadingStream, pFuncs, nFuncs, pCS)) 427 if (!stream.Load(pShadingStream, pFuncs, nFuncs, pCS))
428 return; 428 return;
429 429
430 CPDF_MeshVertex triangle[3]; 430 CPDF_MeshVertex triangle[3];
431 FXSYS_memset(triangle, 0, sizeof(triangle)); 431 FXSYS_memset(triangle, 0, sizeof(triangle));
432 432
433 while (!stream.m_BitStream.IsEOF()) { 433 while (!stream.m_BitStream.IsEOF()) {
434 CPDF_MeshVertex vertex; 434 CPDF_MeshVertex vertex;
435 FX_DWORD flag = stream.GetVertex(vertex, pObject2Bitmap); 435 uint32_t flag = stream.GetVertex(vertex, pObject2Bitmap);
436 if (flag == 0) { 436 if (flag == 0) {
437 triangle[0] = vertex; 437 triangle[0] = vertex;
438 for (int j = 1; j < 3; j++) { 438 for (int j = 1; j < 3; j++) {
439 stream.GetVertex(triangle[j], pObject2Bitmap); 439 stream.GetVertex(triangle[j], pObject2Bitmap);
440 } 440 }
441 } else { 441 } else {
442 if (flag == 1) { 442 if (flag == 1) {
443 triangle[0] = triangle[1]; 443 triangle[0] = triangle[1];
444 } 444 }
445 triangle[1] = triangle[2]; 445 triangle[1] = triangle[2];
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 patch.fill_mode = fill_mode; 775 patch.fill_mode = fill_mode;
776 patch.path.SetPointCount(13); 776 patch.path.SetPointCount(13);
777 FX_PATHPOINT* pPoints = patch.path.GetPoints(); 777 FX_PATHPOINT* pPoints = patch.path.GetPoints();
778 pPoints[0].m_Flag = FXPT_MOVETO; 778 pPoints[0].m_Flag = FXPT_MOVETO;
779 for (int i = 1; i < 13; i++) { 779 for (int i = 1; i < 13; i++) {
780 pPoints[i].m_Flag = FXPT_BEZIERTO; 780 pPoints[i].m_Flag = FXPT_BEZIERTO;
781 } 781 }
782 CFX_PointF coords[16]; 782 CFX_PointF coords[16];
783 int point_count = bTensor ? 16 : 12; 783 int point_count = bTensor ? 16 : 12;
784 while (!stream.m_BitStream.IsEOF()) { 784 while (!stream.m_BitStream.IsEOF()) {
785 FX_DWORD flag = stream.GetFlag(); 785 uint32_t flag = stream.GetFlag();
786 int iStartPoint = 0, iStartColor = 0, i = 0; 786 int iStartPoint = 0, iStartColor = 0, i = 0;
787 if (flag) { 787 if (flag) {
788 iStartPoint = 4; 788 iStartPoint = 4;
789 iStartColor = 2; 789 iStartColor = 2;
790 CFX_PointF tempCoords[4]; 790 CFX_PointF tempCoords[4];
791 for (i = 0; i < 4; i++) { 791 for (i = 0; i < 4; i++) {
792 tempCoords[i] = coords[(flag * 3 + i) % 12]; 792 tempCoords[i] = coords[(flag * 3 + i) % 12];
793 } 793 }
794 FXSYS_memcpy(coords, tempCoords, sizeof(tempCoords)); 794 FXSYS_memcpy(coords, tempCoords, sizeof(tempCoords));
795 Coon_Color tempColors[2]; 795 Coon_Color tempColors[2];
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
1134 m_Options.m_BackColor); 1134 m_Options.m_BackColor);
1135 } 1135 }
1136 FX_ARGB fill_argb = GetFillArgb(pPageObj); 1136 FX_ARGB fill_argb = GetFillArgb(pPageObj);
1137 int clip_width = clip_box.right - clip_box.left; 1137 int clip_width = clip_box.right - clip_box.left;
1138 int clip_height = clip_box.bottom - clip_box.top; 1138 int clip_height = clip_box.bottom - clip_box.top;
1139 CFX_DIBitmap screen; 1139 CFX_DIBitmap screen;
1140 if (!screen.Create(clip_width, clip_height, FXDIB_Argb)) { 1140 if (!screen.Create(clip_width, clip_height, FXDIB_Argb)) {
1141 return; 1141 return;
1142 } 1142 }
1143 screen.Clear(0); 1143 screen.Clear(0);
1144 FX_DWORD* src_buf = (FX_DWORD*)pPatternBitmap->GetBuffer(); 1144 uint32_t* src_buf = (uint32_t*)pPatternBitmap->GetBuffer();
1145 for (int col = min_col; col <= max_col; col++) { 1145 for (int col = min_col; col <= max_col; col++) {
1146 for (int row = min_row; row <= max_row; row++) { 1146 for (int row = min_row; row <= max_row; row++) {
1147 int start_x, start_y; 1147 int start_x, start_y;
1148 if (bAligned) { 1148 if (bAligned) {
1149 start_x = FXSYS_round(mtPattern2Device.e) + col * width - clip_box.left; 1149 start_x = FXSYS_round(mtPattern2Device.e) + col * width - clip_box.left;
1150 start_y = FXSYS_round(mtPattern2Device.f) + row * height - clip_box.top; 1150 start_y = FXSYS_round(mtPattern2Device.f) + row * height - clip_box.top;
1151 } else { 1151 } else {
1152 FX_FLOAT orig_x = col * pPattern->m_XStep; 1152 FX_FLOAT orig_x = col * pPattern->m_XStep;
1153 FX_FLOAT orig_y = row * pPattern->m_YStep; 1153 FX_FLOAT orig_y = row * pPattern->m_YStep;
1154 mtPattern2Device.Transform(orig_x, orig_y); 1154 mtPattern2Device.Transform(orig_x, orig_y);
1155 start_x = FXSYS_round(orig_x + left_offset) - clip_box.left; 1155 start_x = FXSYS_round(orig_x + left_offset) - clip_box.left;
1156 start_y = FXSYS_round(orig_y + top_offset) - clip_box.top; 1156 start_y = FXSYS_round(orig_y + top_offset) - clip_box.top;
1157 } 1157 }
1158 if (width == 1 && height == 1) { 1158 if (width == 1 && height == 1) {
1159 if (start_x < 0 || start_x >= clip_box.Width() || start_y < 0 || 1159 if (start_x < 0 || start_x >= clip_box.Width() || start_y < 0 ||
1160 start_y >= clip_box.Height()) { 1160 start_y >= clip_box.Height()) {
1161 continue; 1161 continue;
1162 } 1162 }
1163 FX_DWORD* dest_buf = 1163 uint32_t* dest_buf =
1164 (FX_DWORD*)(screen.GetBuffer() + screen.GetPitch() * start_y + 1164 (uint32_t*)(screen.GetBuffer() + screen.GetPitch() * start_y +
1165 start_x * 4); 1165 start_x * 4);
1166 if (pPattern->m_bColored) { 1166 if (pPattern->m_bColored) {
1167 *dest_buf = *src_buf; 1167 *dest_buf = *src_buf;
1168 } else { 1168 } else {
1169 *dest_buf = (*(uint8_t*)src_buf << 24) | (fill_argb & 0xffffff); 1169 *dest_buf = (*(uint8_t*)src_buf << 24) | (fill_argb & 0xffffff);
1170 } 1170 }
1171 } else { 1171 } else {
1172 if (pPattern->m_bColored) { 1172 if (pPattern->m_bColored) {
1173 screen.CompositeBitmap(start_x, start_y, width, height, 1173 screen.CompositeBitmap(start_x, start_y, width, height,
1174 pPatternBitmap, 0, 0); 1174 pPatternBitmap, 0, 0);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1212 } 1212 }
1213 } 1213 }
1214 if (bStroke) { 1214 if (bStroke) {
1215 CPDF_Color& StrokeColor = *pPathObj->m_ColorState.GetStrokeColor(); 1215 CPDF_Color& StrokeColor = *pPathObj->m_ColorState.GetStrokeColor();
1216 if (StrokeColor.m_pCS && StrokeColor.m_pCS->GetFamily() == PDFCS_PATTERN) { 1216 if (StrokeColor.m_pCS && StrokeColor.m_pCS->GetFamily() == PDFCS_PATTERN) {
1217 DrawPathWithPattern(pPathObj, pObj2Device, &StrokeColor, TRUE); 1217 DrawPathWithPattern(pPathObj, pObj2Device, &StrokeColor, TRUE);
1218 bStroke = FALSE; 1218 bStroke = FALSE;
1219 } 1219 }
1220 } 1220 }
1221 } 1221 }
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp ('k') | core/fpdfapi/fpdf_render/fpdf_render_text.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698