Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Side by Side Diff: skia/sgl/SkEdge.h

Issue 113827: Remove the remainder of the skia source code from the Chromium repo.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « skia/sgl/SkDrawProcs.h ('k') | skia/sgl/SkEdge.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /* libs/graphics/sgl/SkEdge.h
2 **
3 ** Copyright 2006, The Android Open Source Project
4 **
5 ** Licensed under the Apache License, Version 2.0 (the "License");
6 ** you may not use this file except in compliance with the License.
7 ** You may obtain a copy of the License at
8 **
9 ** http://www.apache.org/licenses/LICENSE-2.0
10 **
11 ** Unless required by applicable law or agreed to in writing, software
12 ** distributed under the License is distributed on an "AS IS" BASIS,
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ** See the License for the specific language governing permissions and
15 ** limitations under the License.
16 */
17
18 #ifndef SkEdge_DEFINED
19 #define SkEdge_DEFINED
20
21 #include "SkRect.h"
22
23 struct SkEdge {
24 enum Type {
25 kLine_Type,
26 kQuad_Type,
27 kCubic_Type
28 };
29
30 SkEdge* fNext;
31 SkEdge* fPrev;
32
33 SkFixed fX;
34 SkFixed fDX;
35 int32_t fFirstY;
36 int32_t fLastY;
37 int8_t fCurveCount; // only used by kQuad(+) and kCubic(-)
38 uint8_t fCurveShift; // appled to all Dx/DDx/DDDx except for fCubicDShift exception
39 uint8_t fCubicDShift; // applied to fCDx and fCDy only in cubic
40 int8_t fWinding; // 1 or -1
41
42 int setLine(const SkPoint& p0, const SkPoint& p1, const SkIRect* clip,
43 int shiftUp);
44 inline int updateLine(SkFixed ax, SkFixed ay, SkFixed bx, SkFixed by);
45 void chopLineWithClip(const SkIRect& clip);
46
47 inline bool intersectsClip(const SkIRect& clip) const {
48 SkASSERT(fFirstY < clip.fBottom);
49 return fLastY >= clip.fTop;
50 }
51
52 #ifdef SK_DEBUG
53 void dump() const {
54 #ifdef SK_CAN_USE_FLOAT
55 SkDebugf("edge: firstY:%d lastY:%d x:%g dx:%g w:%d\n", fFirstY, fLastY, SkFixedToFloat(fX), SkFixedToFloat(fDX), fWinding);
56 #else
57 SkDebugf("edge: firstY:%d lastY:%d x:%x dx:%x w:%d\n", fFirstY, fLastY, fX, fDX, fWinding);
58 #endif
59 }
60
61 void validate() const {
62 SkASSERT(fPrev && fNext);
63 SkASSERT(fPrev->fNext == this);
64 SkASSERT(fNext->fPrev == this);
65
66 SkASSERT(fFirstY <= fLastY);
67 SkASSERT(SkAbs32(fWinding) == 1);
68 }
69 #endif
70 };
71
72 struct SkQuadraticEdge : public SkEdge {
73 SkFixed fQx, fQy;
74 SkFixed fQDx, fQDy;
75 SkFixed fQDDx, fQDDy;
76 SkFixed fQLastX, fQLastY;
77
78 int setQuadratic(const SkPoint pts[3], const SkIRect* clip, int shiftUp);
79 int updateQuadratic();
80 };
81
82 struct SkCubicEdge : public SkEdge {
83 SkFixed fCx, fCy;
84 SkFixed fCDx, fCDy;
85 SkFixed fCDDx, fCDDy;
86 SkFixed fCDDDx, fCDDDy;
87 SkFixed fCLastX, fCLastY;
88
89 int setCubic(const SkPoint pts[4], const SkIRect* clip, int shiftUp);
90 int updateCubic();
91 };
92
93 #endif
OLDNEW
« no previous file with comments | « skia/sgl/SkDrawProcs.h ('k') | skia/sgl/SkEdge.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698