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

Unified Diff: src/gpu/GrPathRendering.h

Issue 563283004: Use per-typeface sets of glyphs for nvpr text (Closed) Base URL: https://skia.googlesource.com/skia.git@upload_glyphmemorypath
Patch Set: Fix builds Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/GrPathRange.cpp ('k') | src/gpu/GrPathRendering.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/GrPathRendering.h
diff --git a/src/gpu/GrPathRendering.h b/src/gpu/GrPathRendering.h
index 70fa61c27e6fe1fac25c4fee3453f240e2699af6..26cfa110ce68084bae3d92b56bab3479c3891908 100644
--- a/src/gpu/GrPathRendering.h
+++ b/src/gpu/GrPathRendering.h
@@ -9,10 +9,12 @@
#define GrPathRendering_DEFINED
#include "SkPath.h"
+#include "GrPathRange.h"
class SkStrokeRec;
+class SkDescriptor;
+class SkTypeface;
class GrPath;
-class GrPathRange;
class GrGpu;
/**
@@ -77,7 +79,37 @@ public:
* @param SkStrokeRec the common stroke applied to each path in the range.
* @return a new path range.
*/
- virtual GrPathRange* createPathRange(size_t size, const SkStrokeRec&) = 0;
+ virtual GrPathRange* createPathRange(GrPathRange::PathGenerator*, const SkStrokeRec&) = 0;
+
+ /**
+ * Creates a range of glyph paths, indexed by glyph id. The glyphs will have an
+ * inverted y-direction in order to match the raw font path data. The caller owns
+ * a ref on the returned path range which must be balanced by a call to unref.
+ *
+ * @param SkTypeface Typeface that defines the glyphs.
+ * If null, the default typeface will be used.
+ *
+ * @param SkDescriptor Additional font configuration that specifies the font's size,
+ * stroke, and other flags. This will generally come from an
+ * SkGlyphCache.
+ *
+ * It is recommended to leave this value null when possible, in
+ * which case the glyphs will be loaded directly from the font's
+ * raw path data and sized at SkPaint::kCanonicalTextSizeForPaths.
+ * This will result in less memory usage and more efficient paths.
+ *
+ * If non-null, the glyph paths will match the font descriptor,
+ * including with the stroke information baked directly into
+ * the outlines.
+ *
+ * @param SkStrokeRec Common stroke that the GPU will apply to every path. Note that
+ * if the glyph outlines contain baked-in strokes from the font
+ * descriptor, the GPU stroke will be applied on top of those
+ * outlines.
+ *
+ * @return a new path range populated with glyphs.
+ */
+ virtual GrPathRange* createGlyphs(const SkTypeface*, const SkDescriptor*, const SkStrokeRec&) = 0;
virtual void stencilPath(const GrPath*, SkPath::FillType) = 0;
virtual void drawPath(const GrPath*, SkPath::FillType) = 0;
« no previous file with comments | « src/gpu/GrPathRange.cpp ('k') | src/gpu/GrPathRendering.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698