diff options
Diffstat (limited to 'content/browser/compositor/software_output_device_ozone.h')
-rw-r--r-- | content/browser/compositor/software_output_device_ozone.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/content/browser/compositor/software_output_device_ozone.h b/content/browser/compositor/software_output_device_ozone.h new file mode 100644 index 0000000..bff10d2 --- /dev/null +++ b/content/browser/compositor/software_output_device_ozone.h @@ -0,0 +1,41 @@ +// Copyright 2014 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_COMPOSITOR_SOFTWARE_OUTPUT_DEVICE_OZONE_H_ +#define CONTENT_BROWSER_COMPOSITOR_SOFTWARE_OUTPUT_DEVICE_OZONE_H_ + +#include "cc/output/software_output_device.h" +#include "content/common/content_export.h" +#include "ui/gfx/native_widget_types.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 CONTENT_EXPORT SoftwareOutputDeviceOzone + : public cc::SoftwareOutputDevice { + public: + explicit SoftwareOutputDeviceOzone(ui::Compositor* compositor); + virtual ~SoftwareOutputDeviceOzone(); + + virtual void Resize(gfx::Size viewport_size) OVERRIDE; + virtual SkCanvas* BeginPaint(const gfx::Rect& damage_rect) OVERRIDE; + virtual void EndPaint(cc::SoftwareFrameData* frame_data) OVERRIDE; + + private: + ui::Compositor* compositor_; + + gfx::AcceleratedWidget realized_widget_; + + DISALLOW_COPY_AND_ASSIGN(SoftwareOutputDeviceOzone); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_COMPOSITOR_SOFTWARE_OUTPUT_DEVICE_OZONE_H_ |