| Index: content/browser/compositor/software_output_device_mac.h
|
| diff --git a/content/browser/compositor/software_output_device_mac.h b/content/browser/compositor/software_output_device_mac.h
|
| index 5b6ac86b77d56659d23cb4d062fcfe53a441b30a..d97e7aac53706f3ee1eef1792073cc475e739d6c 100644
|
| --- a/content/browser/compositor/software_output_device_mac.h
|
| +++ b/content/browser/compositor/software_output_device_mac.h
|
| @@ -5,6 +5,9 @@
|
| #ifndef CONTENT_BROWSER_COMPOSITOR_SOFTWARE_OUTPUT_DEVICE_MAC_H_
|
| #define CONTENT_BROWSER_COMPOSITOR_SOFTWARE_OUTPUT_DEVICE_MAC_H_
|
|
|
| +#include <IOSurface/IOSurface.h>
|
| +
|
| +#include "base/mac/scoped_cftyperef.h"
|
| #include "cc/output/software_output_device.h"
|
|
|
| namespace gfx {
|
| @@ -22,10 +25,32 @@ class SoftwareOutputDeviceMac : public cc::SoftwareOutputDevice {
|
| explicit SoftwareOutputDeviceMac(ui::Compositor* compositor);
|
| ~SoftwareOutputDeviceMac() override;
|
|
|
| + void Resize(const gfx::Size& pixel_size, float scale_factor) override;
|
| + SkCanvas* BeginPaint(const gfx::Rect& damage_rect) override;
|
| void EndPaint() override;
|
| + void DiscardBackbuffer() override;
|
| + void EnsureBackbuffer() override;
|
|
|
| private:
|
| + // Copy the pixels from the previous buffer to the new buffer.
|
| + void CopyPreviousBufferDamage(const gfx::Rect& new_damage_rect);
|
| +
|
| ui::Compositor* compositor_;
|
| + gfx::Size pixel_size_;
|
| + float scale_factor_;
|
| +
|
| + // This surface is double-buffered. The two buffers are in |io_surfaces_|,
|
| + // and the index of the current buffer is |current_buffer_|.
|
| + base::ScopedCFTypeRef<IOSurfaceRef> io_surfaces_[2];
|
| + int current_index_;
|
| +
|
| + // The previous frame's damage rectangle. Used to copy unchanged content
|
| + // between buffers in CopyPreviousBufferDamage.
|
| + gfx::Rect previous_buffer_damage_rect_;
|
| +
|
| + // The SkCanvas wrapps the mapped current IOSurface. It is valid only between
|
| + // BeginPaint and EndPaint.
|
| + skia::RefPtr<SkCanvas> canvas_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(SoftwareOutputDeviceMac);
|
| };
|
|
|