f792a1b207
Provide builder class to make SkLayerRasterizer immutable. We have to keep the addLayer() methods for now because they are used in Chrome. They will be removed once this changed has been rolled into Chrome. An added benefit of this is that this class can only be allocated on the heap. BUG=skia:2187 R=reed@google.com, scroggo@google.com, mtklein@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/176873004 git-svn-id: http://skia.googlecode.com/svn/trunk@13590 2bbb7eff-a529-9590-31e7-b0007b416f81
46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
|
|
/*
|
|
* Copyright 2006 The Android Open Source Project
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
|
|
#ifndef SkRasterizer_DEFINED
|
|
#define SkRasterizer_DEFINED
|
|
|
|
#include "SkFlattenable.h"
|
|
#include "SkMask.h"
|
|
|
|
class SkMaskFilter;
|
|
class SkMatrix;
|
|
class SkPath;
|
|
struct SkIRect;
|
|
|
|
class SK_API SkRasterizer : public SkFlattenable {
|
|
public:
|
|
SK_DECLARE_INST_COUNT(SkRasterizer)
|
|
|
|
/** Turn the path into a mask, respecting the specified local->device matrix.
|
|
*/
|
|
bool rasterize(const SkPath& path, const SkMatrix& matrix,
|
|
const SkIRect* clipBounds, SkMaskFilter* filter,
|
|
SkMask* mask, SkMask::CreateMode mode) const;
|
|
|
|
SK_DEFINE_FLATTENABLE_TYPE(SkRasterizer)
|
|
|
|
protected:
|
|
SkRasterizer() {}
|
|
SkRasterizer(SkReadBuffer& buffer) : INHERITED(buffer) {}
|
|
|
|
virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
|
|
const SkIRect* clipBounds,
|
|
SkMask* mask, SkMask::CreateMode mode) const;
|
|
|
|
private:
|
|
typedef SkFlattenable INHERITED;
|
|
};
|
|
|
|
#endif
|