michael@0: michael@0: /* michael@0: * Copyright 2006 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: michael@0: #ifndef SkRasterizer_DEFINED michael@0: #define SkRasterizer_DEFINED michael@0: michael@0: #include "SkFlattenable.h" michael@0: #include "SkMask.h" michael@0: michael@0: class SkMaskFilter; michael@0: class SkMatrix; michael@0: class SkPath; michael@0: struct SkIRect; michael@0: michael@0: class SK_API SkRasterizer : public SkFlattenable { michael@0: public: michael@0: SK_DECLARE_INST_COUNT(SkRasterizer) michael@0: michael@0: /** Turn the path into a mask, respecting the specified local->device matrix. michael@0: */ michael@0: bool rasterize(const SkPath& path, const SkMatrix& matrix, michael@0: const SkIRect* clipBounds, SkMaskFilter* filter, michael@0: SkMask* mask, SkMask::CreateMode mode) const; michael@0: michael@0: SK_DEFINE_FLATTENABLE_TYPE(SkRasterizer) michael@0: michael@0: protected: michael@0: SkRasterizer() {} michael@0: SkRasterizer(SkReadBuffer& buffer) : INHERITED(buffer) {} michael@0: michael@0: virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix, michael@0: const SkIRect* clipBounds, michael@0: SkMask* mask, SkMask::CreateMode mode) const; michael@0: michael@0: private: michael@0: typedef SkFlattenable INHERITED; michael@0: }; michael@0: michael@0: #endif