blob: f5df044016934cc0539f84dcdc664d9d9fd7bce6 [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_PAINT_H_
#define SKY_ENGINE_CORE_PAINTING_PAINT_H_
#include "sky/engine/core/painting/CanvasColor.h"
#include "sky/engine/core/painting/PaintingStyle.h"
#include "sky/engine/core/painting/TransferMode.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/SkPaint.h"
namespace blink {
class DrawLooper;
class ColorFilter;
class MaskFilter;
class Shader;
class Paint : public RefCounted<Paint>, public DartWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
~Paint() override;
static PassRefPtr<Paint> create()
{
return adoptRef(new Paint);
}
bool isAntiAlias() const { return m_paint.isAntiAlias(); }
void setIsAntiAlias(bool value) { m_paint.setAntiAlias(value); }
SkColor color() const { return m_paint.getColor(); }
void setColor(SkColor color) { m_paint.setColor(color); }
SkScalar strokeWidth() const { return m_paint.getStrokeWidth(); }
void setStrokeWidth(SkScalar strokeWidth) { m_paint.setStrokeWidth(strokeWidth); }
void setARGB(unsigned a, unsigned r, unsigned g, unsigned b)
{
m_paint.setARGB(a, r, g, b);
}
void setDrawLooper(DrawLooper* looper);
void setColorFilter(ColorFilter* filter);
void setMaskFilter(MaskFilter* filter);
void setShader(Shader* shader);
void setStyle(SkPaint::Style style);
void setTransferMode(SkXfermode::Mode transfer_mode);
const SkPaint& paint() const { return m_paint; }
void setPaint(const SkPaint& paint) { m_paint = paint; }
private:
Paint();
SkPaint m_paint;
};
} // namespace blink
#endif // SKY_ENGINE_CORE_PAINTING_PAINT_H_