blob: f48da8a8f75e7380f70a7ae556999e2aa3c1b28d [file] [log] [blame]
// Copyright 2015 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 SKY_ENGINE_CORE_PAINTING_PICTURERECORDER_H_
#define SKY_ENGINE_CORE_PAINTING_PICTURERECORDER_H_
#include "sky/engine/core/painting/Rect.h"
#include "sky/engine/tonic/dart_wrappable.h"
#include "sky/engine/wtf/PassRefPtr.h"
#include "sky/engine/wtf/RefCounted.h"
#include "third_party/skia/include/core/SkPictureRecorder.h"
namespace blink {
class Canvas;
class Drawable;
class Picture;
class PictureRecorder : public RefCounted<PictureRecorder>,
public DartWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
static PassRefPtr<PictureRecorder> create()
{
return adoptRef(new PictureRecorder());
}
~PictureRecorder();
// PassRefPtr<Canvas> beginRecording(double width, double height);
SkCanvas* beginRecording(Rect bounds);
PassRefPtr<Picture> endRecording();
PassRefPtr<Drawable> endRecordingAsDrawable();
bool isRecording();
void set_canvas(PassRefPtr<Canvas> canvas);
private:
PictureRecorder();
SkRTreeFactory m_rtreeFactory;
SkPictureRecorder m_pictureRecorder;
RefPtr<Canvas> m_canvas;
};
} // namespace blink
#endif // SKY_ENGINE_CORE_PAINTING_PICTURERECORDER_H_