| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/renderer/gpu/compositor_software_output_device.h" | 5 #include "content/renderer/gpu/compositor_software_output_device.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "cc/output/software_frame_data.h" | 8 #include "cc/output/software_frame_data.h" |
| 9 #include "content/child/child_shared_bitmap_manager.h" | 9 #include "content/child/child_shared_bitmap_manager.h" |
| 10 #include "content/renderer/render_process.h" | 10 #include "content/renderer/render_process.h" |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 for (size_t i = 0; i < buffers_.size(); ++i) { | 87 for (size_t i = 0; i < buffers_.size(); ++i) { |
| 88 size_t index = (hint + i) % buffers_.size(); | 88 size_t index = (hint + i) % buffers_.size(); |
| 89 if (buffers_[index]->free()) | 89 if (buffers_[index]->free()) |
| 90 return index; | 90 return index; |
| 91 } | 91 } |
| 92 | 92 |
| 93 buffers_.push_back(CreateBuffer()); | 93 buffers_.push_back(CreateBuffer()); |
| 94 return buffers_.size() - 1; | 94 return buffers_.size() - 1; |
| 95 } | 95 } |
| 96 | 96 |
| 97 void CompositorSoftwareOutputDevice::Resize(const gfx::Size& viewport_size) { | 97 void CompositorSoftwareOutputDevice::Resize( |
| 98 const gfx::Size& viewport_pixel_size, |
| 99 float scale_factor) { |
| 98 DCHECK(CalledOnValidThread()); | 100 DCHECK(CalledOnValidThread()); |
| 99 | 101 |
| 100 if (viewport_size_ == viewport_size) | 102 scale_factor_ = scale_factor; |
| 103 |
| 104 if (viewport_size_ == viewport_pixel_size) |
| 101 return; | 105 return; |
| 102 | 106 |
| 103 // Keep non-ACKed buffers in awaiting_ack_ until they get acknowledged. | 107 // Keep non-ACKed buffers in awaiting_ack_ until they get acknowledged. |
| 104 for (size_t i = 0; i < buffers_.size(); ++i) { | 108 for (size_t i = 0; i < buffers_.size(); ++i) { |
| 105 if (!buffers_[i]->free()) { | 109 if (!buffers_[i]->free()) { |
| 106 awaiting_ack_.push_back(buffers_[i]); | 110 awaiting_ack_.push_back(buffers_[i]); |
| 107 buffers_[i] = NULL; | 111 buffers_[i] = NULL; |
| 108 } | 112 } |
| 109 } | 113 } |
| 110 | 114 |
| 111 buffers_.clear(); | 115 buffers_.clear(); |
| 112 current_index_ = -1; | 116 current_index_ = -1; |
| 113 viewport_size_ = viewport_size; | 117 viewport_size_ = viewport_pixel_size; |
| 114 } | 118 } |
| 115 | 119 |
| 116 void CompositorSoftwareOutputDevice::DiscardBackbuffer() { | 120 void CompositorSoftwareOutputDevice::DiscardBackbuffer() { |
| 117 // Keep non-ACKed buffers in awaiting_ack_ until they get acknowledged. | 121 // Keep non-ACKed buffers in awaiting_ack_ until they get acknowledged. |
| 118 for (size_t i = 0; i < buffers_.size(); ++i) { | 122 for (size_t i = 0; i < buffers_.size(); ++i) { |
| 119 if (!buffers_[i]->free()) { | 123 if (!buffers_[i]->free()) { |
| 120 awaiting_ack_.push_back(buffers_[i]); | 124 awaiting_ack_.push_back(buffers_[i]); |
| 121 buffers_[i] = NULL; | 125 buffers_[i] = NULL; |
| 122 } | 126 } |
| 123 } | 127 } |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 return; | 220 return; |
| 217 } else { | 221 } else { |
| 218 it = std::find_if(awaiting_ack_.begin(), awaiting_ack_.end(), | 222 it = std::find_if(awaiting_ack_.begin(), awaiting_ack_.end(), |
| 219 CompareById(id)); | 223 CompareById(id)); |
| 220 DCHECK(it != awaiting_ack_.end()); | 224 DCHECK(it != awaiting_ack_.end()); |
| 221 awaiting_ack_.erase(it); | 225 awaiting_ack_.erase(it); |
| 222 } | 226 } |
| 223 } | 227 } |
| 224 | 228 |
| 225 } // namespace content | 229 } // namespace content |
| OLD | NEW |