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

Side by Side Diff: pdf/paint_manager.h

Issue 2270463003: Turn on enforce-in-pdf Clang plugin flag. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix win clang Created 4 years, 3 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/paint_aggregator.cc ('k') | pdf/paint_manager.cc » ('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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef PDF_PAINT_MANAGER_H_ 5 #ifndef PDF_PAINT_MANAGER_H_
6 #define PDF_PAINT_MANAGER_H_ 6 #define PDF_PAINT_MANAGER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <vector> 10 #include <vector>
(...skipping 15 matching lines...) Expand all
26 // supports having higher-priority rects flushing right away, i.e. the 26 // supports having higher-priority rects flushing right away, i.e. the
27 // scrollbars. 27 // scrollbars.
28 // 28 //
29 // The client's OnPaint 29 // The client's OnPaint
30 class PaintManager { 30 class PaintManager {
31 public: 31 public:
32 // Like PaintAggregator's version, but allows the plugin to tell us whether 32 // Like PaintAggregator's version, but allows the plugin to tell us whether
33 // it should be flushed to the screen immediately or when the rest of the 33 // it should be flushed to the screen immediately or when the rest of the
34 // plugin viewport is ready. 34 // plugin viewport is ready.
35 struct ReadyRect { 35 struct ReadyRect {
36 pp::Point offset; 36 ReadyRect();
37 pp::Rect rect; 37 ReadyRect(const pp::Rect& r, const pp::ImageData& i, bool f);
38 pp::ImageData image_data; 38 ReadyRect(const ReadyRect& that);
39 bool flush_now;
40
41 ReadyRect(const pp::Rect& r, const pp::ImageData& i, bool f)
42 : rect(r), image_data(i), flush_now(f) {}
43 39
44 operator PaintAggregator::ReadyRect() const { 40 operator PaintAggregator::ReadyRect() const {
45 PaintAggregator::ReadyRect rv; 41 PaintAggregator::ReadyRect rv;
46 rv.offset = offset; 42 rv.offset = offset;
47 rv.rect = rect; 43 rv.rect = rect;
48 rv.image_data = image_data; 44 rv.image_data = image_data;
49 return rv; 45 return rv;
50 } 46 }
47
48 pp::Point offset;
49 pp::Rect rect;
50 pp::ImageData image_data;
51 bool flush_now;
51 }; 52 };
52 class Client { 53 class Client {
53 public: 54 public:
54 // Paints the given invalid area of the plugin to the given graphics 55 // Paints the given invalid area of the plugin to the given graphics
55 // device. Returns true if anything was painted. 56 // device. Returns true if anything was painted.
56 // 57 //
57 // You are given the list of rects to paint in |paint_rects|. You can 58 // You are given the list of rects to paint in |paint_rects|. You can
58 // combine painting into less rectangles if it's more efficient. When a 59 // combine painting into less rectangles if it's more efficient. When a
59 // rect is painted, information about that paint should be inserted into 60 // rect is painted, information about that paint should be inserted into
60 // |ready|. Otherwise if a paint needs more work, add the rect to 61 // |ready|. Otherwise if a paint needs more work, add the rect to
61 // |pending|. If |pending| is not empty, your OnPaint function will get 62 // |pending|. If |pending| is not empty, your OnPaint function will get
62 // called again. Once OnPaint is called and it returns no pending rects, 63 // called again. Once OnPaint is called and it returns no pending rects,
63 // all the previously ready rects will be flushed on screen. The exception 64 // all the previously ready rects will be flushed on screen. The exception
64 // is for ready rects that have |flush_now| set to true. These will be 65 // is for ready rects that have |flush_now| set to true. These will be
65 // flushed right away. 66 // flushed right away.
66 // 67 //
67 // Do not call Flush() on the graphics device, this will be done 68 // Do not call Flush() on the graphics device, this will be done
68 // automatically if you return true from this function since the 69 // automatically if you return true from this function since the
69 // PaintManager needs to handle the callback. 70 // PaintManager needs to handle the callback.
70 // 71 //
71 // Calling Invalidate/Scroll is not allowed while inside an OnPaint 72 // Calling Invalidate/Scroll is not allowed while inside an OnPaint
72 virtual void OnPaint(const std::vector<pp::Rect>& paint_rects, 73 virtual void OnPaint(const std::vector<pp::Rect>& paint_rects,
73 std::vector<ReadyRect>* ready, 74 std::vector<ReadyRect>* ready,
74 std::vector<pp::Rect>* pending) = 0; 75 std::vector<pp::Rect>* pending) = 0;
76
75 protected: 77 protected:
76 // You shouldn't be doing deleting through this interface. 78 // You shouldn't be doing deleting through this interface.
77 virtual ~Client() {} 79 virtual ~Client() {}
78 }; 80 };
79 81
80 // The instance is the plugin instance using this paint manager to do its 82 // The instance is the plugin instance using this paint manager to do its
81 // painting. Painting will automatically go to this instance and you don't 83 // painting. Painting will automatically go to this instance and you don't
82 // have to manually bind any device context (this is all handled by the 84 // have to manually bind any device context (this is all handled by the
83 // paint manager). 85 // paint manager).
84 // 86 //
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 bool in_paint_; 200 bool in_paint_;
199 201
200 // True if we haven't painted the plugin viewport yet. 202 // True if we haven't painted the plugin viewport yet.
201 bool first_paint_; 203 bool first_paint_;
202 204
203 // True when the view size just changed and we're waiting for a paint. 205 // True when the view size just changed and we're waiting for a paint.
204 bool view_size_changed_waiting_for_paint_; 206 bool view_size_changed_waiting_for_paint_;
205 }; 207 };
206 208
207 #endif // PDF_PAINT_MANAGER_H_ 209 #endif // PDF_PAINT_MANAGER_H_
OLDNEW
« no previous file with comments | « pdf/paint_aggregator.cc ('k') | pdf/paint_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698