Flutter Engine
The Flutter Engine
|
#include "include/core/SkColor.h"
#include "include/core/SkPath.h"
#include "include/core/SkPathTypes.h"
#include "include/core/SkRect.h"
#include "include/core/SkRegion.h"
#include "include/core/SkScalar.h"
#include "include/private/base/SkAssert.h"
#include "include/private/base/SkDebug.h"
#include "include/private/base/SkFixed.h"
#include "include/private/base/SkFloatingPoint.h"
#include "include/private/base/SkMacros.h"
#include "include/private/base/SkMath.h"
#include "include/private/base/SkPoint_impl.h"
#include "include/private/base/SkSafe32.h"
#include "src/base/SkTSort.h"
#include "src/core/SkBlitter.h"
#include "src/core/SkEdge.h"
#include "src/core/SkEdgeBuilder.h"
#include "src/core/SkFDot6.h"
#include "src/core/SkRasterClip.h"
#include "src/core/SkRectPriv.h"
#include "src/core/SkScan.h"
#include "src/core/SkScanPriv.h"
#include <algorithm>
#include <cmath>
#include <cstdint>
Go to the source code of this file.
Classes | |
class | InverseBlitter |
Macros | |
#define | kEDGE_HEAD_Y SK_MinS32 |
#define | kEDGE_TAIL_Y SK_MaxS32 |
#define | validate_sort(edge) |
#define | validate_edges_for_y(edge, curr_y) |
#define | PREPOST_START true |
#define | PREPOST_END false |
#define | ASSERT_RETURN(cond) |
Typedefs | |
typedef void(* | PrePostProc) (SkBlitter *blitter, int y, bool isStartOfScanline) |
Functions | |
static void | insert_new_edges (SkEdge *newEdge, int curr_y) |
static void | walk_edges (SkEdge *prevHead, SkPathFillType fillType, SkBlitter *blitter, int start_y, int stop_y, PrePostProc proc, int rightClip) |
static bool | update_edge (SkEdge *edge, int last_y) |
static void | walk_simple_edges (SkEdge *prevHead, SkBlitter *blitter, int start_y, int stop_y) |
static void | PrePostInverseBlitterProc (SkBlitter *blitter, int y, bool isStart) |
static bool | operator< (const SkEdge &a, const SkEdge &b) |
static SkEdge * | sort_edges (SkEdge *list[], int count, SkEdge **last) |
void | sk_fill_path (const SkPath &path, const SkIRect &clipRect, SkBlitter *blitter, int start_y, int stop_y, int shiftEdgesUp, bool pathContainedInClip) |
void | sk_blit_above (SkBlitter *blitter, const SkIRect &ir, const SkRegion &clip) |
void | sk_blit_below (SkBlitter *blitter, const SkIRect &ir, const SkRegion &clip) |
static bool | clip_to_limit (const SkRegion &orig, SkRegion *reduced) |
static int | round_down_to_int (SkScalar x) |
static int | round_up_to_int (SkScalar x) |
static SkIRect | conservative_round_to_int (const SkRect &src) |
static int | build_tri_edges (SkEdge edge[], const SkPoint pts[], const SkIRect *clipRect, SkEdge *list[]) |
static void | sk_fill_triangle (const SkPoint pts[], const SkIRect *clipRect, SkBlitter *blitter, const SkIRect &ir) |
Variables | |
static const double | kConservativeRoundBias = 0.5 + 1.5 / SK_FDot6One |
#define ASSERT_RETURN | ( | cond | ) |
Definition at line 226 of file SkScan_Path.cpp.
#define kEDGE_HEAD_Y SK_MinS32 |
Definition at line 38 of file SkScan_Path.cpp.
#define kEDGE_TAIL_Y SK_MaxS32 |
Definition at line 39 of file SkScan_Path.cpp.
#define PREPOST_END false |
Definition at line 111 of file SkScan_Path.cpp.
#define PREPOST_START true |
Definition at line 110 of file SkScan_Path.cpp.
#define validate_edges_for_y | ( | edge, | |
curr_y | |||
) |
Definition at line 101 of file SkScan_Path.cpp.
#define validate_sort | ( | edge | ) |
Definition at line 54 of file SkScan_Path.cpp.
Definition at line 109 of file SkScan_Path.cpp.
|
static |
Definition at line 695 of file SkScan_Path.cpp.
Definition at line 561 of file SkScan_Path.cpp.
Definition at line 616 of file SkScan_Path.cpp.
Definition at line 57 of file SkScan_Path.cpp.
Definition at line 378 of file SkScan_Path.cpp.
Definition at line 368 of file SkScan_Path.cpp.
Round the value down. This is used to round the top and left of a rectangle, and corresponds to the way the scan converter treats the top and left edges. It has a slight bias to make the "rounded" int smaller than a normal round, to create a more conservative int-bounds (larger) from a float rect.
Definition at line 591 of file SkScan_Path.cpp.
Round the value up. This is used to round the right and bottom of a rectangle. It has a slight bias to make the "rounded" int smaller than a normal round, to create a more conservative int-bounds (larger) from a float rect.
Definition at line 602 of file SkScan_Path.cpp.
Definition at line 487 of file SkScan_Path.cpp.
Definition at line 500 of file SkScan_Path.cpp.
void sk_fill_path | ( | const SkPath & | path, |
const SkIRect & | clipRect, | ||
SkBlitter * | blitter, | ||
int | start_y, | ||
int | stop_y, | ||
int | shiftEdgesUp, | ||
bool | pathContainedInClip | ||
) |
Definition at line 404 of file SkScan_Path.cpp.
|
static |
Definition at line 714 of file SkScan_Path.cpp.
Definition at line 390 of file SkScan_Path.cpp.
Definition at line 206 of file SkScan_Path.cpp.
|
static |
Definition at line 113 of file SkScan_Path.cpp.
|
static |
Definition at line 235 of file SkScan_Path.cpp.
|
static |
Definition at line 583 of file SkScan_Path.cpp.