/* * Copyright 2011 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 SkScan_DEFINED #define SkScan_DEFINED #include "include/core/SkPoint.h" #include "include/core/SkRect.h" #include "include/private/base/SkFixed.h" class SkBlitter; class SkPath; class SkRasterClip; class SkRegion; /** Defines a fixed-point rectangle, identical to the integer SkIRect, but its coordinates are treated as SkFixed rather than int32_t. */ SkXRect; class SkScan { … }; /** Assign an SkXRect from a SkIRect, by promoting the src rect's coordinates from int to SkFixed. Does not check for overflow if the src coordinates exceed 32K */ static inline void XRect_set(SkXRect* xr, const SkIRect& src) { … } /** Assign an SkXRect from a SkRect, by promoting the src rect's coordinates from SkScalar to SkFixed. Does not check for overflow if the src coordinates exceed 32K */ static inline void XRect_set(SkXRect* xr, const SkRect& src) { … } /** Round the SkXRect coordinates, and store the result in the SkIRect. */ static inline void XRect_round(const SkXRect& xr, SkIRect* dst) { … } /** Round the SkXRect coordinates out (i.e. use floor for left/top, and ceiling for right/bottom), and store the result in the SkIRect. */ static inline void XRect_roundOut(const SkXRect& xr, SkIRect* dst) { … } #endif