1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_BROWSER_AURA_SOFTWARE_OUTPUT_DEVICE_WIN_H_ 6 #define CONTENT_BROWSER_AURA_SOFTWARE_OUTPUT_DEVICE_WIN_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "cc/output/software_output_device.h" 10 11 #include <windows.h> 12 13 namespace gfx { 14 class Canvas; 15 } 16 17 namespace ui { 18 class Compositor; 19 } 20 21 namespace content { 22 23 class SoftwareOutputDeviceWin : public cc::SoftwareOutputDevice { 24 public: 25 explicit SoftwareOutputDeviceWin(ui::Compositor* compositor); 26 virtual ~SoftwareOutputDeviceWin(); 27 28 virtual void Resize(gfx::Size viewport_size) OVERRIDE; 29 virtual SkCanvas* BeginPaint(gfx::Rect damage_rect) OVERRIDE; 30 virtual void EndPaint(cc::SoftwareFrameData* frame_data) OVERRIDE; 31 virtual void CopyToBitmap(gfx::Rect rect, SkBitmap* output) OVERRIDE; 32 33 private: 34 HWND hwnd_; 35 BITMAPINFO bitmap_info_; 36 scoped_ptr<gfx::Canvas> contents_; 37 bool is_hwnd_composited_; 38 }; 39 40 } // namespace content 41 42 #endif // CONTENT_BROWSER_AURA_SOFTWARE_OUTPUT_DEVICE_WIN_H_ 43