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

Side by Side Diff: pdf/draw_utils.cc

Issue 2828413005: Clang format pdf/ (Closed)
Patch Set: Manual tweaks Created 3 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 | « pdf/document_loader.cc ('k') | pdf/out_of_process_instance.h » ('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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium 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 #include "pdf/draw_utils.h" 5 #include "pdf/draw_utils.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 #include <algorithm> 10 #include <algorithm>
(...skipping 18 matching lines...) Expand all
29 29
30 inline uint8_t GetAlpha(const uint32_t& pixel) { 30 inline uint8_t GetAlpha(const uint32_t& pixel) {
31 return static_cast<uint8_t>((pixel >> 24) & 0xFF); 31 return static_cast<uint8_t>((pixel >> 24) & 0xFF);
32 } 32 }
33 33
34 inline uint32_t MakePixel(uint8_t red, 34 inline uint32_t MakePixel(uint8_t red,
35 uint8_t green, 35 uint8_t green,
36 uint8_t blue, 36 uint8_t blue,
37 uint8_t alpha) { 37 uint8_t alpha) {
38 return (static_cast<uint32_t>(alpha) << 24) | 38 return (static_cast<uint32_t>(alpha) << 24) |
39 (static_cast<uint32_t>(red) << 16) | 39 (static_cast<uint32_t>(red) << 16) |
40 (static_cast<uint32_t>(green) << 8) | 40 (static_cast<uint32_t>(green) << 8) | static_cast<uint32_t>(blue);
41 static_cast<uint32_t>(blue);
42 } 41 }
43 42
44 inline uint8_t ProcessColor(uint8_t src_color, 43 inline uint8_t ProcessColor(uint8_t src_color,
45 uint8_t dest_color, 44 uint8_t dest_color,
46 uint8_t alpha) { 45 uint8_t alpha) {
47 uint32_t processed = static_cast<uint32_t>(src_color) * alpha + 46 uint32_t processed = static_cast<uint32_t>(src_color) * alpha +
48 static_cast<uint32_t>(dest_color) * (0xFF - alpha); 47 static_cast<uint32_t>(dest_color) * (0xFF - alpha);
49 return static_cast<uint8_t>((processed / 0xFF) & 0xFF); 48 return static_cast<uint8_t>((processed / 0xFF) & 0xFF);
50 } 49 }
51 50
(...skipping 10 matching lines...) Expand all
62 61
63 double r = static_cast<double>(depth_); 62 double r = static_cast<double>(depth_);
64 double coef = 256.0 / pow(r, factor); 63 double coef = 256.0 / pow(r, factor);
65 64
66 for (uint32_t y = 0; y < depth_; y++) { 65 for (uint32_t y = 0; y < depth_; y++) {
67 // Since matrix is symmetrical, we can reduce the number of calculations 66 // Since matrix is symmetrical, we can reduce the number of calculations
68 // by mirroring results. 67 // by mirroring results.
69 for (uint32_t x = 0; x <= y; x++) { 68 for (uint32_t x = 0; x <= y; x++) {
70 // Fill cache if needed. 69 // Fill cache if needed.
71 if (pow_pv[x] == 0.0) 70 if (pow_pv[x] == 0.0)
72 pow_pv[x] = pow(x, pv); 71 pow_pv[x] = pow(x, pv);
73 if (pow_pv[y] == 0.0) 72 if (pow_pv[y] == 0.0)
74 pow_pv[y] = pow(y, pv); 73 pow_pv[y] = pow(y, pv);
75 74
76 // v - is a value for the smoothing function. 75 // v - is a value for the smoothing function.
77 // If x == 0 simplify calculations. 76 // If x == 0 simplify calculations.
78 double v = (x == 0) ? y : pow(pow_pv[x] + pow_pv[y], 1 / pv); 77 double v = (x == 0) ? y : pow(pow_pv[x] + pow_pv[y], 1 / pv);
79 78
80 // Smoothing function. 79 // Smoothing function.
81 // If factor == 1, smoothing will be linear from 0 to the end, 80 // If factor == 1, smoothing will be linear from 0 to the end,
82 // if 0 < factor < 1, smoothing will drop faster near 0. 81 // if 0 < factor < 1, smoothing will drop faster near 0.
83 // if factor > 1, smoothing will drop faster near the end (depth). 82 // if factor > 1, smoothing will drop faster near the end (depth).
84 double f = 256.0 - coef * pow(v, factor); 83 double f = 256.0 - coef * pow(v, factor);
(...skipping 11 matching lines...) Expand all
96 uint8_t blue = ProcessColor(0, GetBlue(background), alpha); 95 uint8_t blue = ProcessColor(0, GetBlue(background), alpha);
97 uint32_t pixel = MakePixel(red, green, blue, GetAlpha(background)); 96 uint32_t pixel = MakePixel(red, green, blue, GetAlpha(background));
98 97
99 // Mirror matrix. 98 // Mirror matrix.
100 matrix_[y * depth_ + x] = pixel; 99 matrix_[y * depth_ + x] = pixel;
101 matrix_[x * depth_ + y] = pixel; 100 matrix_[x * depth_ + y] = pixel;
102 } 101 }
103 } 102 }
104 } 103 }
105 104
106 ShadowMatrix::~ShadowMatrix() { 105 ShadowMatrix::~ShadowMatrix() {}
107 }
108 106
109 void PaintShadow(pp::ImageData* image, 107 void PaintShadow(pp::ImageData* image,
110 const pp::Rect& clip_rc, 108 const pp::Rect& clip_rc,
111 const pp::Rect& shadow_rc, 109 const pp::Rect& shadow_rc,
112 const ShadowMatrix& matrix) { 110 const ShadowMatrix& matrix) {
113 pp::Rect draw_rc = shadow_rc.Intersect(clip_rc); 111 pp::Rect draw_rc = shadow_rc.Intersect(clip_rc);
114 if (draw_rc.IsEmpty()) 112 if (draw_rc.IsEmpty())
115 return; 113 return;
116 114
117 int32_t depth = static_cast<int32_t>(matrix.depth()); 115 int32_t depth = static_cast<int32_t>(matrix.depth());
(...skipping 27 matching lines...) Expand all
145 const ShadowMatrix& matrix) { 143 const ShadowMatrix& matrix) {
146 if (shadow_rc == object_rc) 144 if (shadow_rc == object_rc)
147 return; // Nothing to paint. 145 return; // Nothing to paint.
148 146
149 // Fill top part. 147 // Fill top part.
150 pp::Rect rc(shadow_rc.point(), 148 pp::Rect rc(shadow_rc.point(),
151 pp::Size(shadow_rc.width(), object_rc.y() - shadow_rc.y())); 149 pp::Size(shadow_rc.width(), object_rc.y() - shadow_rc.y()));
152 PaintShadow(image, rc.Intersect(clip_rc), shadow_rc, matrix); 150 PaintShadow(image, rc.Intersect(clip_rc), shadow_rc, matrix);
153 151
154 // Fill bottom part. 152 // Fill bottom part.
155 rc = pp::Rect(shadow_rc.x(), object_rc.bottom(), 153 rc = pp::Rect(shadow_rc.x(), object_rc.bottom(), shadow_rc.width(),
156 shadow_rc.width(), shadow_rc.bottom() - object_rc.bottom()); 154 shadow_rc.bottom() - object_rc.bottom());
157 PaintShadow(image, rc.Intersect(clip_rc), shadow_rc, matrix); 155 PaintShadow(image, rc.Intersect(clip_rc), shadow_rc, matrix);
158 156
159 // Fill left part. 157 // Fill left part.
160 rc = pp::Rect(shadow_rc.x(), object_rc.y(), 158 rc = pp::Rect(shadow_rc.x(), object_rc.y(), object_rc.x() - shadow_rc.x(),
161 object_rc.x() - shadow_rc.x(), object_rc.height()); 159 object_rc.height());
162 PaintShadow(image, rc.Intersect(clip_rc), shadow_rc, matrix); 160 PaintShadow(image, rc.Intersect(clip_rc), shadow_rc, matrix);
163 161
164 // Fill right part. 162 // Fill right part.
165 rc = pp::Rect(object_rc.right(), object_rc.y(), 163 rc = pp::Rect(object_rc.right(), object_rc.y(),
166 shadow_rc.right() - object_rc.right(), object_rc.height()); 164 shadow_rc.right() - object_rc.right(), object_rc.height());
167 PaintShadow(image, rc.Intersect(clip_rc), shadow_rc, matrix); 165 PaintShadow(image, rc.Intersect(clip_rc), shadow_rc, matrix);
168 } 166 }
169 167
170 } // namespace chrome_pdf 168 } // namespace chrome_pdf
171
OLDNEW
« no previous file with comments | « pdf/document_loader.cc ('k') | pdf/out_of_process_instance.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698