| OLD | NEW |
| 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 "ppapi/cpp/paint_manager.h" | 5 #include "ppapi/cpp/paint_manager.h" |
| 6 | 6 |
| 7 #include "ppapi/c/pp_errors.h" | 7 #include "ppapi/c/pp_errors.h" |
| 8 #include "ppapi/cpp/instance.h" | 8 #include "ppapi/cpp/instance.h" |
| 9 #include "ppapi/cpp/logging.h" | 9 #include "ppapi/cpp/logging.h" |
| 10 #include "ppapi/cpp/module.h" | 10 #include "ppapi/cpp/module.h" |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 pending_size_ = Size(); | 146 pending_size_ = Size(); |
| 147 } | 147 } |
| 148 | 148 |
| 149 // Apply any scroll before asking the client to paint. | 149 // Apply any scroll before asking the client to paint. |
| 150 if (update.has_scroll) | 150 if (update.has_scroll) |
| 151 graphics_.Scroll(update.scroll_rect, update.scroll_delta); | 151 graphics_.Scroll(update.scroll_rect, update.scroll_delta); |
| 152 | 152 |
| 153 if (client_->OnPaint(graphics_, update.paint_rects, update.paint_bounds)) { | 153 if (client_->OnPaint(graphics_, update.paint_rects, update.paint_bounds)) { |
| 154 // Something was painted, schedule a flush. | 154 // Something was painted, schedule a flush. |
| 155 int32_t result = graphics_.Flush( | 155 int32_t result = graphics_.Flush( |
| 156 callback_factory_.NewCallback(&PaintManager::OnFlushComplete)); | 156 callback_factory_.NewOptionalCallback(&PaintManager::OnFlushComplete)); |
| 157 | 157 |
| 158 // If you trigger this assertion, then your plugin has called Flush() | 158 // If you trigger this assertion, then your plugin has called Flush() |
| 159 // manually. When using the PaintManager, you should not call Flush, it | 159 // manually. When using the PaintManager, you should not call Flush, it |
| 160 // will handle that for you because it needs to know when it can do the | 160 // will handle that for you because it needs to know when it can do the |
| 161 // next paint by implementing the flush callback. | 161 // next paint by implementing the flush callback. |
| 162 // | 162 // |
| 163 // Another possible cause of this assertion is re-using devices. If you | 163 // Another possible cause of this assertion is re-using devices. If you |
| 164 // use one device, swap it with another, then swap it back, we won't know | 164 // use one device, swap it with another, then swap it back, we won't know |
| 165 // that we've already scheduled a Flush on the first device. It's best to | 165 // that we've already scheduled a Flush on the first device. It's best to |
| 166 // not re-use devices in this way. | 166 // not re-use devices in this way. |
| (...skipping 27 matching lines...) Expand all Loading... |
| 194 // Just because we have a manual callback doesn't mean there are actually any | 194 // Just because we have a manual callback doesn't mean there are actually any |
| 195 // invalid regions. Even though we only schedule this callback when something | 195 // invalid regions. Even though we only schedule this callback when something |
| 196 // is pending, a Flush callback could have come in before this callback was | 196 // is pending, a Flush callback could have come in before this callback was |
| 197 // executed and that could have cleared the queue. | 197 // executed and that could have cleared the queue. |
| 198 if (aggregator_.HasPendingUpdate() && !flush_pending_) | 198 if (aggregator_.HasPendingUpdate() && !flush_pending_) |
| 199 DoPaint(); | 199 DoPaint(); |
| 200 } | 200 } |
| 201 | 201 |
| 202 | 202 |
| 203 } // namespace pp | 203 } // namespace pp |
| OLD | NEW |