diff options
author | avi <avi@chromium.org> | 2015-12-21 11:49:43 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-21 19:50:35 +0000 |
commit | a7c09d567e2878e1e3a33e1b627a11f568cf93b4 (patch) | |
tree | d8335d4dd60b638d203945ebcecc22842a648d4b /pdf/draw_utils.cc | |
parent | 360c186bfcca1dac73ff32d90c99ec476dbe28e0 (diff) | |
download | chromium_src-a7c09d567e2878e1e3a33e1b627a11f568cf93b4.zip chromium_src-a7c09d567e2878e1e3a33e1b627a11f568cf93b4.tar.gz chromium_src-a7c09d567e2878e1e3a33e1b627a11f568cf93b4.tar.bz2 |
Switch to standard integer types in pdf/.
BUG=138542
TBR=jam@chromium.org
Review URL: https://codereview.chromium.org/1533413002
Cr-Commit-Position: refs/heads/master@{#366446}
Diffstat (limited to 'pdf/draw_utils.cc')
-rw-r--r-- | pdf/draw_utils.cc | 108 |
1 files changed, 61 insertions, 47 deletions
diff --git a/pdf/draw_utils.cc b/pdf/draw_utils.cc index d38be52..5d13077 100644 --- a/pdf/draw_utils.cc +++ b/pdf/draw_utils.cc @@ -4,8 +4,10 @@ #include "pdf/draw_utils.h" -#include <algorithm> #include <math.h> +#include <stddef.h> +#include <stdint.h> +#include <algorithm> #include <vector> #include "base/logging.h" @@ -13,42 +15,47 @@ namespace chrome_pdf { -inline uint8 GetBlue(const uint32& pixel) { - return static_cast<uint8>(pixel & 0xFF); +inline uint8_t GetBlue(const uint32_t& pixel) { + return static_cast<uint8_t>(pixel & 0xFF); } -inline uint8 GetGreen(const uint32& pixel) { - return static_cast<uint8>((pixel >> 8) & 0xFF); +inline uint8_t GetGreen(const uint32_t& pixel) { + return static_cast<uint8_t>((pixel >> 8) & 0xFF); } -inline uint8 GetRed(const uint32& pixel) { - return static_cast<uint8>((pixel >> 16) & 0xFF); +inline uint8_t GetRed(const uint32_t& pixel) { + return static_cast<uint8_t>((pixel >> 16) & 0xFF); } -inline uint8 GetAlpha(const uint32& pixel) { - return static_cast<uint8>((pixel >> 24) & 0xFF); +inline uint8_t GetAlpha(const uint32_t& pixel) { + return static_cast<uint8_t>((pixel >> 24) & 0xFF); } -inline uint32_t MakePixel(uint8 red, uint8 green, uint8 blue, uint8 alpha) { +inline uint32_t MakePixel(uint8_t red, + uint8_t green, + uint8_t blue, + uint8_t alpha) { return (static_cast<uint32_t>(alpha) << 24) | (static_cast<uint32_t>(red) << 16) | (static_cast<uint32_t>(green) << 8) | static_cast<uint32_t>(blue); } -inline uint8 GradientChannel(uint8 start, uint8 end, double ratio) { +inline uint8_t GradientChannel(uint8_t start, uint8_t end, double ratio) { double new_channel = start - (static_cast<double>(start) - end) * ratio; if (new_channel < 0) return 0; if (new_channel > 255) return 255; - return static_cast<uint8>(new_channel + 0.5); + return static_cast<uint8_t>(new_channel + 0.5); } -inline uint8 ProcessColor(uint8 src_color, uint8 dest_color, uint8 alpha) { - uint32 processed = static_cast<uint32>(src_color) * alpha + - static_cast<uint32>(dest_color) * (0xFF - alpha); - return static_cast<uint8>((processed / 0xFF) & 0xFF); +inline uint8_t ProcessColor(uint8_t src_color, + uint8_t dest_color, + uint8_t alpha) { + uint32_t processed = static_cast<uint32_t>(src_color) * alpha + + static_cast<uint32_t>(dest_color) * (0xFF - alpha); + return static_cast<uint8_t>((processed / 0xFF) & 0xFF); } inline bool ImageDataContainsRect(const pp::ImageData& image_data, @@ -57,9 +64,11 @@ inline bool ImageDataContainsRect(const pp::ImageData& image_data, pp::Rect(image_data.size()).Contains(rect); } -void AlphaBlend(const pp::ImageData& src, const pp::Rect& src_rc, - pp::ImageData* dest, const pp::Point& dest_origin, - uint8 alpha_adjustment) { +void AlphaBlend(const pp::ImageData& src, + const pp::Rect& src_rc, + pp::ImageData* dest, + const pp::Point& dest_origin, + uint8_t alpha_adjustment) { if (src_rc.IsEmpty() || !ImageDataContainsRect(src, src_rc)) return; @@ -76,13 +85,15 @@ void AlphaBlend(const pp::ImageData& src, const pp::Rect& src_rc, const uint32_t* src_pixel = src_origin_pixel; uint32_t* dest_pixel = dest_origin_pixel; for (int x = 0; x < width; x++) { - uint8 alpha = static_cast<uint8>(static_cast<uint32_t>(alpha_adjustment) * - GetAlpha(*src_pixel) / 0xFF); - uint8 red = ProcessColor(GetRed(*src_pixel), GetRed(*dest_pixel), alpha); - uint8 green = ProcessColor(GetGreen(*src_pixel), - GetGreen(*dest_pixel), alpha); - uint8 blue = ProcessColor(GetBlue(*src_pixel), - GetBlue(*dest_pixel), alpha); + uint8_t alpha = + static_cast<uint8_t>(static_cast<uint32_t>(alpha_adjustment) * + GetAlpha(*src_pixel) / 0xFF); + uint8_t red = + ProcessColor(GetRed(*src_pixel), GetRed(*dest_pixel), alpha); + uint8_t green = + ProcessColor(GetGreen(*src_pixel), GetGreen(*dest_pixel), alpha); + uint8_t blue = + ProcessColor(GetBlue(*src_pixel), GetBlue(*dest_pixel), alpha); *dest_pixel = MakePixel(red, green, blue, GetAlpha(*dest_pixel)); src_pixel++; @@ -95,9 +106,12 @@ void AlphaBlend(const pp::ImageData& src, const pp::Rect& src_rc, } } -void GradientFill(pp::ImageData* image, const pp::Rect& rc, - uint32 start_color, uint32 end_color, bool horizontal) { - std::vector<uint32> colors; +void GradientFill(pp::ImageData* image, + const pp::Rect& rc, + uint32_t start_color, + uint32_t end_color, + bool horizontal) { + std::vector<uint32_t> colors; colors.resize(horizontal ? rc.width() : rc.height()); for (size_t i = 0; i < colors.size(); ++i) { double ratio = static_cast<double>(i) / colors.size(); @@ -135,10 +149,10 @@ void GradientFill(pp::Instance* instance, pp::ImageData* image, const pp::Rect& dirty_rc, const pp::Rect& gradient_rc, - uint32 start_color, - uint32 end_color, + uint32_t start_color, + uint32_t end_color, bool horizontal, - uint8 transparency) { + uint8_t transparency) { pp::Rect draw_rc = gradient_rc.Intersect(dirty_rc); if (draw_rc.IsEmpty()) return; @@ -175,8 +189,8 @@ void CopyImage(const pp::ImageData& src, const pp::Rect& src_rc, for (int32_t y = 0; y < height; ++y) { uint32_t* dest_pixel = dest_origin_pixel; for (int32_t x = 0; x < width; ++x) { - uint32 src_x = static_cast<uint32>(x * x_ratio); - uint32 src_y = static_cast<uint32>(y * y_ratio); + uint32_t src_x = static_cast<uint32_t>(x * x_ratio); + uint32_t src_y = static_cast<uint32_t>(y * y_ratio); const uint32_t* src_pixel = src.GetAddr32( pp::Point(src_rc.x() + src_x, src_rc.y() + src_y)); *dest_pixel = *src_pixel; @@ -199,7 +213,7 @@ void CopyImage(const pp::ImageData& src, const pp::Rect& src_rc, } } -void FillRect(pp::ImageData* image, const pp::Rect& rc, uint32 color) { +void FillRect(pp::ImageData* image, const pp::Rect& rc, uint32_t color) { int height = rc.height(); if (height == 0) return; @@ -221,7 +235,7 @@ void FillRect(pp::ImageData* image, const pp::Rect& rc, uint32 color) { } } -ShadowMatrix::ShadowMatrix(uint32 depth, double factor, uint32 background) +ShadowMatrix::ShadowMatrix(uint32_t depth, double factor, uint32_t background) : depth_(depth), factor_(factor), background_(background) { DCHECK(depth_ > 0); matrix_.resize(depth_ * depth_); @@ -235,10 +249,10 @@ ShadowMatrix::ShadowMatrix(uint32 depth, double factor, uint32 background) double r = static_cast<double>(depth_); double coef = 256.0 / pow(r, factor); - for (uint32 y = 0; y < depth_; y++) { + for (uint32_t y = 0; y < depth_; y++) { // Since matrix is symmetrical, we can reduce the number of calculations // by mirroring results. - for (uint32 x = 0; x <= y; x++) { + for (uint32_t x = 0; x <= y; x++) { // Fill cache if needed. if (pow_pv[x] == 0.0) pow_pv[x] = pow(x, pv); @@ -255,18 +269,18 @@ ShadowMatrix::ShadowMatrix(uint32 depth, double factor, uint32 background) // if factor > 1, smoothing will drop faster near the end (depth). double f = 256.0 - coef * pow(v, factor); - uint8 alpha = 0; + uint8_t alpha = 0; if (f > kOpaqueAlpha) alpha = kOpaqueAlpha; else if (f < kTransparentAlpha) alpha = kTransparentAlpha; else - alpha = static_cast<uint8>(f); + alpha = static_cast<uint8_t>(f); - uint8 red = ProcessColor(0, GetRed(background), alpha); - uint8 green = ProcessColor(0, GetGreen(background), alpha); - uint8 blue = ProcessColor(0, GetBlue(background), alpha); - uint32 pixel = MakePixel(red, green, blue, GetAlpha(background)); + uint8_t red = ProcessColor(0, GetRed(background), alpha); + uint8_t green = ProcessColor(0, GetGreen(background), alpha); + uint8_t blue = ProcessColor(0, GetBlue(background), alpha); + uint32_t pixel = MakePixel(red, green, blue, GetAlpha(background)); // Mirror matrix. matrix_[y * depth_ + x] = pixel; @@ -286,7 +300,7 @@ void PaintShadow(pp::ImageData* image, if (draw_rc.IsEmpty()) return; - int32 depth = static_cast<int32>(matrix.depth()); + int32_t depth = static_cast<int32_t>(matrix.depth()); for (int32_t y = draw_rc.y(); y < draw_rc.bottom(); y++) { for (int32_t x = draw_rc.x(); x < draw_rc.right(); x++) { int32_t matrix_x = std::max(depth + shadow_rc.x() - x - 1, @@ -297,12 +311,12 @@ void PaintShadow(pp::ImageData* image, if (matrix_x < 0) matrix_x = 0; - else if (matrix_x >= static_cast<int32>(depth)) + else if (matrix_x >= static_cast<int32_t>(depth)) matrix_x = depth - 1; if (matrix_y < 0) matrix_y = 0; - else if (matrix_y >= static_cast<int32>(depth)) + else if (matrix_y >= static_cast<int32_t>(depth)) matrix_y = depth - 1; *pixel = matrix.GetValue(matrix_x, matrix_y); |