| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/browser/compositor/software_output_device_win.h" | 5 #include "content/browser/compositor/software_output_device_win.h" |
| 6 | 6 |
| 7 #include "base/debug/alias.h" | 7 #include "base/debug/alias.h" |
| 8 #include "base/memory/shared_memory.h" | 8 #include "base/memory/shared_memory.h" |
| 9 #include "cc/resources/shared_bitmap.h" | 9 #include "cc/resources/shared_bitmap.h" |
| 10 #include "content/public/browser/browser_thread.h" | 10 #include "content/public/browser/browser_thread.h" |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 if (backing_) { | 132 if (backing_) { |
| 133 base::SharedMemory* memory = | 133 base::SharedMemory* memory = |
| 134 backing_->GetSharedMemory(viewport_pixel_size_); | 134 backing_->GetSharedMemory(viewport_pixel_size_); |
| 135 if (memory) { | 135 if (memory) { |
| 136 shared_section = memory->handle().GetHandle(); | 136 shared_section = memory->handle().GetHandle(); |
| 137 } else { | 137 } else { |
| 138 can_create_contents = false; | 138 can_create_contents = false; |
| 139 } | 139 } |
| 140 } | 140 } |
| 141 if (can_create_contents) { | 141 if (can_create_contents) { |
| 142 contents_ = skia::CreatePlatformCanvas( | 142 contents_ = sk_sp<SkCanvas>(skia::CreatePlatformCanvas( |
| 143 viewport_pixel_size_.width(), viewport_pixel_size_.height(), true, | 143 viewport_pixel_size_.width(), viewport_pixel_size_.height(), true, |
| 144 shared_section, skia::CRASH_ON_FAILURE); | 144 shared_section, skia::CRASH_ON_FAILURE)); |
| 145 } | 145 } |
| 146 } | 146 } |
| 147 | 147 |
| 148 damage_rect_ = damage_rect; | 148 damage_rect_ = damage_rect; |
| 149 in_paint_ = true; | 149 in_paint_ = true; |
| 150 return contents_.get(); | 150 return contents_.get(); |
| 151 } | 151 } |
| 152 | 152 |
| 153 void SoftwareOutputDeviceWin::EndPaint() { | 153 void SoftwareOutputDeviceWin::EndPaint() { |
| 154 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 154 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 185 } else { | 185 } else { |
| 186 HDC hdc = ::GetDC(hwnd_); | 186 HDC hdc = ::GetDC(hwnd_); |
| 187 RECT src_rect = rect.ToRECT(); | 187 RECT src_rect = rect.ToRECT(); |
| 188 skia::DrawToNativeContext(contents_.get(), hdc, rect.x(), rect.y(), | 188 skia::DrawToNativeContext(contents_.get(), hdc, rect.x(), rect.y(), |
| 189 &src_rect); | 189 &src_rect); |
| 190 ::ReleaseDC(hwnd_, hdc); | 190 ::ReleaseDC(hwnd_, hdc); |
| 191 } | 191 } |
| 192 } | 192 } |
| 193 | 193 |
| 194 void SoftwareOutputDeviceWin::ReleaseContents() { | 194 void SoftwareOutputDeviceWin::ReleaseContents() { |
| 195 DCHECK(!contents_ || contents_->unique()); |
| 195 DCHECK(!in_paint_); | 196 DCHECK(!in_paint_); |
| 196 contents_.reset(); | 197 contents_.reset(); |
| 197 } | 198 } |
| 198 | 199 |
| 199 } // namespace content | 200 } // namespace content |
| OLD | NEW |