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

Side by Side Diff: src/gpu/GrPathRendering.h

Issue 1967513002: Revert of Replace GrStrokeInfo with GrStyle. (Closed) Base URL: https://chromium.googlesource.com/skia.git@resscale
Patch Set: Created 4 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
« no previous file with comments | « src/gpu/GrPathRendererChain.cpp ('k') | src/gpu/GrPathRendering.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrPathRendering_DEFINED 8 #ifndef GrPathRendering_DEFINED
9 #define GrPathRendering_DEFINED 9 #define GrPathRendering_DEFINED
10 10
11 #include "SkPath.h" 11 #include "SkPath.h"
12 #include "GrGpu.h" 12 #include "GrGpu.h"
13 #include "GrPathRange.h" 13 #include "GrPathRange.h"
14 #include "GrPipeline.h" 14 #include "GrPipeline.h"
15 15
16 class SkDescriptor; 16 class SkDescriptor;
17 class SkTypeface; 17 class SkTypeface;
18 class GrPath; 18 class GrPath;
19 class GrStencilSettings; 19 class GrStencilSettings;
20 class GrStyle; 20 class GrStrokeInfo;
21 21
22 /** 22 /**
23 * Abstract class wrapping HW path rendering API. 23 * Abstract class wrapping HW path rendering API.
24 * 24 *
25 * The subclasses of this class use the possible HW API to render paths (as oppo sed to path 25 * The subclasses of this class use the possible HW API to render paths (as oppo sed to path
26 * rendering implemented in Skia on top of a "3d" HW API). 26 * rendering implemented in Skia on top of a "3d" HW API).
27 * The subclasses hold the global state needed to render paths, including shadow of the global HW 27 * The subclasses hold the global state needed to render paths, including shadow of the global HW
28 * API state. Similar to GrGpu. 28 * API state. Similar to GrGpu.
29 * 29 *
30 * It is expected that the lifetimes of GrGpuXX and GrXXPathRendering are the sa me. The call context 30 * It is expected that the lifetimes of GrGpuXX and GrXXPathRendering are the sa me. The call context
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 /** Specifies that "inside" is computed by an odd number of edge 74 /** Specifies that "inside" is computed by an odd number of edge
75 crossings 75 crossings
76 */ 76 */
77 kEvenOdd_FillType, 77 kEvenOdd_FillType,
78 }; 78 };
79 79
80 /** 80 /**
81 * Creates a new gpu path, based on the specified path and stroke and return s it. 81 * Creates a new gpu path, based on the specified path and stroke and return s it.
82 * The caller owns a ref on the returned path which must be balanced by a ca ll to unref. 82 * The caller owns a ref on the returned path which must be balanced by a ca ll to unref.
83 * 83 *
84 * @param SkPath the geometry. 84 * @param skPath the path geometry.
85 * @param GrStyle the style applied to the path. Styles with non-dash path effects are not 85 * @param stroke the path stroke.
86 * allowed. 86 * @return a new path.
87 * @return a new GPU path object.
88 */ 87 */
89 virtual GrPath* createPath(const SkPath&, const GrStyle&) = 0; 88 virtual GrPath* createPath(const SkPath&, const GrStrokeInfo&) = 0;
90 89
91 /** 90 /**
92 * Creates a range of gpu paths with a common style. The caller owns a ref o n the 91 * Creates a range of gpu paths with a common stroke. The caller owns a ref on the
93 * returned path range which must be balanced by a call to unref. 92 * returned path range which must be balanced by a call to unref.
94 * 93 *
95 * @param PathGenerator class that generates SkPath objects for each path in the range. 94 * @param PathGenerator class that generates SkPath objects for each path in the range.
96 * @param GrStyle the common style applied to each path in the range. Styl es with non-dash 95 * @param GrStrokeInfo the common stroke applied to each path in the range .
97 * path effects are not allowed.
98 * @return a new path range. 96 * @return a new path range.
99 */ 97 */
100 virtual GrPathRange* createPathRange(GrPathRange::PathGenerator*, const GrSt yle&) = 0; 98 virtual GrPathRange* createPathRange(GrPathRange::PathGenerator*, const GrSt rokeInfo&) = 0;
101 99
102 /** 100 /**
103 * Creates a range of glyph paths, indexed by glyph id. The glyphs will have an 101 * Creates a range of glyph paths, indexed by glyph id. The glyphs will have an
104 * inverted y-direction in order to match the raw font path data. The caller owns 102 * inverted y-direction in order to match the raw font path data. The caller owns
105 * a ref on the returned path range which must be balanced by a call to unre f. 103 * a ref on the returned path range which must be balanced by a call to unre f.
106 * 104 *
107 * @param SkTypeface Typeface that defines the glyphs. 105 * @param SkTypeface Typeface that defines the glyphs.
108 * If null, the default typeface will be used. 106 * If null, the default typeface will be used.
109 * 107 *
110 * @param SkDescriptor Additional font configuration that specifies the font 's size, 108 * @param SkDescriptor Additional font configuration that specifies the font 's size,
111 * stroke, and other flags. This will generally come fro m an 109 * stroke, and other flags. This will generally come fro m an
112 * SkGlyphCache. 110 * SkGlyphCache.
113 * 111 *
114 * It is recommended to leave this value null when possi ble, in 112 * It is recommended to leave this value null when possi ble, in
115 * which case the glyphs will be loaded directly from th e font's 113 * which case the glyphs will be loaded directly from th e font's
116 * raw path data and sized at SkPaint::kCanonicalTextSiz eForPaths. 114 * raw path data and sized at SkPaint::kCanonicalTextSiz eForPaths.
117 * This will result in less memory usage and more effici ent paths. 115 * This will result in less memory usage and more effici ent paths.
118 * 116 *
119 * If non-null, the glyph paths will match the font desc riptor, 117 * If non-null, the glyph paths will match the font desc riptor,
120 * including with the stroke information baked directly into 118 * including with the stroke information baked directly into
121 * the outlines. 119 * the outlines.
122 * 120 *
123 * @param GrStyle Common style that the GPU will apply to every path. N ote that 121 * @param GrStrokeInfo Common stroke that the GPU will apply to every path. Note that
124 * if the glyph outlines contain baked-in styles from th e font 122 * if the glyph outlines contain baked-in strokes from t he font
125 * descriptor, the GPU style will be applied on top of t hose 123 * descriptor, the GPU stroke will be applied on top of those
126 * outlines. 124 * outlines.
127 * 125 *
128 * @return a new path range populated with glyphs. 126 * @return a new path range populated with glyphs.
129 */ 127 */
130 GrPathRange* createGlyphs(const SkTypeface*, const SkScalerContextEffects&, 128 GrPathRange* createGlyphs(const SkTypeface*, const SkScalerContextEffects&,
131 const SkDescriptor*, const GrStyle&); 129 const SkDescriptor*, const GrStrokeInfo&);
132 130
133 /** None of these params are optional, pointers used just to avoid making co pies. */ 131 /** None of these params are optional, pointers used just to avoid making co pies. */
134 struct StencilPathArgs { 132 struct StencilPathArgs {
135 StencilPathArgs(bool useHWAA, 133 StencilPathArgs(bool useHWAA,
136 GrRenderTarget* renderTarget, 134 GrRenderTarget* renderTarget,
137 const SkMatrix* viewMatrix, 135 const SkMatrix* viewMatrix,
138 const GrScissorState* scissor, 136 const GrScissorState* scissor,
139 const GrStencilSettings* stencil) 137 const GrStencilSettings* stencil)
140 : fUseHWAA(useHWAA) 138 : fUseHWAA(useHWAA)
141 , fRenderTarget(renderTarget) 139 , fRenderTarget(renderTarget)
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 const float transformValues[], 202 const float transformValues[],
205 PathTransformType, 203 PathTransformType,
206 int count) = 0; 204 int count) = 0;
207 205
208 GrGpu* fGpu; 206 GrGpu* fGpu;
209 private: 207 private:
210 GrPathRendering& operator=(const GrPathRendering&); 208 GrPathRendering& operator=(const GrPathRendering&);
211 }; 209 };
212 210
213 #endif 211 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrPathRendererChain.cpp ('k') | src/gpu/GrPathRendering.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698