diff options
Diffstat (limited to 'content/browser/aura/software_output_device_ozone.h')
-rw-r--r-- | content/browser/aura/software_output_device_ozone.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/content/browser/aura/software_output_device_ozone.h b/content/browser/aura/software_output_device_ozone.h new file mode 100644 index 0000000..cee91f8 --- /dev/null +++ b/content/browser/aura/software_output_device_ozone.h @@ -0,0 +1,36 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_AURA_SOFTWARE_OUTPUT_DEVICE_OZONE_H_ +#define CONTENT_BROWSER_AURA_SOFTWARE_OUTPUT_DEVICE_OZONE_H_ + +#include "cc/output/software_output_device.h" + +namespace ui { +class Compositor; +} + +namespace content { + +// Ozone implementation which relies on software rendering. Ozone will present +// an accelerated widget as a SkCanvas. SoftwareOutputDevice will then use the +// Ozone provided canvas to draw. +class SoftwareOutputDeviceOzone : public cc::SoftwareOutputDevice { + public: + explicit SoftwareOutputDeviceOzone(ui::Compositor* compositor); + virtual ~SoftwareOutputDeviceOzone(); + + virtual void Resize(gfx::Size viewport_size) OVERRIDE; + virtual SkCanvas* BeginPaint(gfx::Rect damage_rect) OVERRIDE; + virtual void EndPaint(cc::SoftwareFrameData* frame_data) OVERRIDE; + + private: + ui::Compositor* compositor_; + + DISALLOW_COPY_AND_ASSIGN(SoftwareOutputDeviceOzone); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_AURA_SOFTWARE_OUTPUT_DEVICE_OZONE_H_ |