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

Side by Side Diff: pdf/instance.cc

Issue 372273005: Fixes for re-enabling more MSVC level 4 warnings: pdf/ edition (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update pdfium Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « pdf/instance.h ('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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/instance.h" 5 #include "pdf/instance.h"
6 6
7 #include <algorithm> // for min() 7 #include <algorithm> // for min()
8 #define _USE_MATH_DEFINES // for M_PI 8 #define _USE_MATH_DEFINES // for M_PI
9 #include <cmath> // for log() and pow() 9 #include <cmath> // for log() and pow()
10 #include <math.h> 10 #include <math.h>
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 void Instance::OnPaint(const std::vector<pp::Rect>& paint_rects, 761 void Instance::OnPaint(const std::vector<pp::Rect>& paint_rects,
762 std::vector<PaintManager::ReadyRect>* ready, 762 std::vector<PaintManager::ReadyRect>* ready,
763 std::vector<pp::Rect>* pending) { 763 std::vector<pp::Rect>* pending) {
764 if (image_data_.is_null()) { 764 if (image_data_.is_null()) {
765 DCHECK(plugin_size_.IsEmpty()); 765 DCHECK(plugin_size_.IsEmpty());
766 return; 766 return;
767 } 767 }
768 if (first_paint_) { 768 if (first_paint_) {
769 first_paint_ = false; 769 first_paint_ = false;
770 pp::Rect rect = pp::Rect(pp::Point(), plugin_size_); 770 pp::Rect rect = pp::Rect(pp::Point(), plugin_size_);
771 unsigned int color = kBackgroundColorA << 24 | 771 FillRect(rect, kBackgroundColor);
772 kBackgroundColorR << 16 |
773 kBackgroundColorG << 8 |
774 kBackgroundColorB;
775 FillRect(rect, color);
776 ready->push_back(PaintManager::ReadyRect(rect, image_data_, true)); 772 ready->push_back(PaintManager::ReadyRect(rect, image_data_, true));
777 *pending = paint_rects; 773 *pending = paint_rects;
778 return; 774 return;
779 } 775 }
780 776
781 engine_->PrePaint(); 777 engine_->PrePaint();
782 778
783 for (size_t i = 0; i < paint_rects.size(); i++) { 779 for (size_t i = 0; i < paint_rects.size(); i++) {
784 // Intersect with plugin area since there could be pending invalidates from 780 // Intersect with plugin area since there could be pending invalidates from
785 // when the plugin area was larger. 781 // when the plugin area was larger.
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
1017 plugin_size_.width() - v_scrollbar_thickness, 0); 1013 plugin_size_.width() - v_scrollbar_thickness, 0);
1018 int height_without_scrollbar = std::max( 1014 int height_without_scrollbar = std::max(
1019 plugin_size_.height() - h_scrollbar_thickness, 0); 1015 plugin_size_.height() - h_scrollbar_thickness, 0);
1020 int left_width = available_area_.x(); 1016 int left_width = available_area_.x();
1021 int right_start = available_area_.right(); 1017 int right_start = available_area_.right();
1022 int right_width = abs(width_without_scrollbar - available_area_.right()); 1018 int right_width = abs(width_without_scrollbar - available_area_.right());
1023 int bottom = std::min(available_area_.bottom(), height_without_scrollbar); 1019 int bottom = std::min(available_area_.bottom(), height_without_scrollbar);
1024 1020
1025 // Add the left, right, and bottom rectangles. Note: we assume only 1021 // Add the left, right, and bottom rectangles. Note: we assume only
1026 // horizontal centering. 1022 // horizontal centering.
1027 BackgroundPart part; 1023 BackgroundPart part = {
1028 part.color = kBackgroundColorA << 24 | 1024 pp::Rect(0, 0, left_width, bottom),
1029 kBackgroundColorR << 16 | 1025 kBackgroundColor
1030 kBackgroundColorG << 8 | 1026 };
1031 kBackgroundColorB;
1032 part.location = pp::Rect(0, 0, left_width, bottom);
1033 if (!part.location.IsEmpty()) 1027 if (!part.location.IsEmpty())
1034 background_parts_.push_back(part); 1028 background_parts_.push_back(part);
1035 part.location = pp::Rect(right_start, 0, right_width, bottom); 1029 part.location = pp::Rect(right_start, 0, right_width, bottom);
1036 if (!part.location.IsEmpty()) 1030 if (!part.location.IsEmpty())
1037 background_parts_.push_back(part); 1031 background_parts_.push_back(part);
1038 part.location = pp::Rect( 1032 part.location = pp::Rect(
1039 0, bottom, width_without_scrollbar, height_without_scrollbar - bottom); 1033 0, bottom, width_without_scrollbar, height_without_scrollbar - bottom);
1040 if (!part.location.IsEmpty()) 1034 if (!part.location.IsEmpty())
1041 background_parts_.push_back(part); 1035 background_parts_.push_back(part);
1042 1036
(...skipping 16 matching lines...) Expand all
1059 int Instance::GetDocumentPixelWidth() const { 1053 int Instance::GetDocumentPixelWidth() const {
1060 return static_cast<int>(ceil(document_size_.width() * zoom_ * device_scale_)); 1054 return static_cast<int>(ceil(document_size_.width() * zoom_ * device_scale_));
1061 } 1055 }
1062 1056
1063 int Instance::GetDocumentPixelHeight() const { 1057 int Instance::GetDocumentPixelHeight() const {
1064 return static_cast<int>(ceil(document_size_.height() * 1058 return static_cast<int>(ceil(document_size_.height() *
1065 zoom_ * 1059 zoom_ *
1066 device_scale_)); 1060 device_scale_));
1067 } 1061 }
1068 1062
1069 void Instance::FillRect(const pp::Rect& rect, unsigned int color) { 1063 void Instance::FillRect(const pp::Rect& rect, uint32 color) {
1070 DCHECK(!image_data_.is_null() || rect.IsEmpty()); 1064 DCHECK(!image_data_.is_null() || rect.IsEmpty());
1071 unsigned int* buffer_start = static_cast<unsigned int*>(image_data_.data()); 1065 uint32* buffer_start = static_cast<uint32*>(image_data_.data());
1072 int stride = image_data_.stride(); 1066 int stride = image_data_.stride();
1073 unsigned int* ptr = buffer_start + rect.y() * stride / 4 + rect.x(); 1067 uint32* ptr = buffer_start + rect.y() * stride / 4 + rect.x();
1074 int height = rect.height(); 1068 int height = rect.height();
1075 int width = rect.width(); 1069 int width = rect.width();
1076 for (int y = 0; y < height; ++y) { 1070 for (int y = 0; y < height; ++y) {
1077 for (int x = 0; x < width; ++x) 1071 for (int x = 0; x < width; ++x)
1078 *(ptr + x) = color; 1072 *(ptr + x) = color;
1079 ptr += stride /4; 1073 ptr += stride / 4;
1080 } 1074 }
1081 } 1075 }
1082 1076
1083 void Instance::DocumentSizeUpdated(const pp::Size& size) { 1077 void Instance::DocumentSizeUpdated(const pp::Size& size) {
1084 document_size_ = size; 1078 document_size_ = size;
1085 1079
1086 OnGeometryChanged(zoom_, device_scale_); 1080 OnGeometryChanged(zoom_, device_scale_);
1087 } 1081 }
1088 1082
1089 void Instance::Invalidate(const pp::Rect& rect) { 1083 void Instance::Invalidate(const pp::Rect& rect) {
(...skipping 1620 matching lines...) Expand 10 before | Expand all | Expand 10 after
2710 return instance_->HasScriptableMethod(name, exception); 2704 return instance_->HasScriptableMethod(name, exception);
2711 } 2705 }
2712 2706
2713 pp::Var PDFScriptableObject::Call(const pp::Var& method, 2707 pp::Var PDFScriptableObject::Call(const pp::Var& method,
2714 const std::vector<pp::Var>& args, 2708 const std::vector<pp::Var>& args,
2715 pp::Var* exception) { 2709 pp::Var* exception) {
2716 return instance_->CallScriptableMethod(method, args, exception); 2710 return instance_->CallScriptableMethod(method, args, exception);
2717 } 2711 }
2718 2712
2719 } // namespace chrome_pdf 2713 } // namespace chrome_pdf
OLDNEW
« no previous file with comments | « pdf/instance.h ('k') | pdf/out_of_process_instance.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698