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

Side by Side Diff: third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizer.h

Issue 2845883002: [LayoutNG] Add NG-specific DrawText support to GraphicsContext (Closed)
Patch Set: Created 3 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
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef ShapeResultBloberizer_h 5 #ifndef ShapeResultBloberizer_h
6 #define ShapeResultBloberizer_h 6 #define ShapeResultBloberizer_h
7 7
8 #include "platform/PlatformExport.h" 8 #include "platform/PlatformExport.h"
9 #include "platform/fonts/Glyph.h" 9 #include "platform/fonts/Glyph.h"
10 #include "platform/fonts/SimpleFontData.h" 10 #include "platform/fonts/SimpleFontData.h"
(...skipping 21 matching lines...) Expand all
32 Type GetType() const { return type_; } 32 Type GetType() const { return type_; }
33 33
34 float FillGlyphs(const TextRunPaintInfo&, const ShapeResultBuffer&); 34 float FillGlyphs(const TextRunPaintInfo&, const ShapeResultBuffer&);
35 float FillGlyphs(const StringView&, 35 float FillGlyphs(const StringView&,
36 unsigned from, 36 unsigned from,
37 unsigned to, 37 unsigned to,
38 const ShapeResult*); 38 const ShapeResult*);
39 void FillTextEmphasisGlyphs(const TextRunPaintInfo&, 39 void FillTextEmphasisGlyphs(const TextRunPaintInfo&,
40 const GlyphData& emphasis_data, 40 const GlyphData& emphasis_data,
41 const ShapeResultBuffer&); 41 const ShapeResultBuffer&);
42 void FillTextEmphasisGlyphs(const StringView&,
43 TextDirection,
44 unsigned from,
45 unsigned to,
46 const GlyphData& emphasis_data,
47 const ShapeResult*);
42 48
43 void Add(Glyph glyph, const SimpleFontData* font_data, float h_offset) { 49 void Add(Glyph glyph, const SimpleFontData* font_data, float h_offset) {
44 // cannot mix x-only/xy offsets 50 // cannot mix x-only/xy offsets
45 DCHECK(!HasPendingVerticalOffsets()); 51 DCHECK(!HasPendingVerticalOffsets());
46 52
47 if (UNLIKELY(font_data != pending_font_data_)) { 53 if (UNLIKELY(font_data != pending_font_data_)) {
48 CommitPendingRun(); 54 CommitPendingRun();
49 pending_font_data_ = font_data; 55 pending_font_data_ = font_data;
50 DCHECK_EQ(GetBlobRotation(font_data), BlobRotation::kNoRotation); 56 DCHECK_EQ(GetBlobRotation(font_data), BlobRotation::kNoRotation);
51 } 57 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 109
104 // Whether the FillFastHorizontalGlyphs can be used. Only applies for full 110 // Whether the FillFastHorizontalGlyphs can be used. Only applies for full
105 // runs with no vertical offsets and no text intercepts. 111 // runs with no vertical offsets and no text intercepts.
106 bool CanUseFastPath(unsigned from, 112 bool CanUseFastPath(unsigned from,
107 unsigned to, 113 unsigned to,
108 unsigned length, 114 unsigned length,
109 bool has_vertical_offsets); 115 bool has_vertical_offsets);
110 float FillFastHorizontalGlyphs(const ShapeResultBuffer&, TextDirection); 116 float FillFastHorizontalGlyphs(const ShapeResultBuffer&, TextDirection);
111 float FillFastHorizontalGlyphs(const ShapeResult*, float advance = 0); 117 float FillFastHorizontalGlyphs(const ShapeResult*, float advance = 0);
112 118
119 template <typename TextContainerType>
113 float FillTextEmphasisGlyphsForRun(const ShapeResult::RunInfo*, 120 float FillTextEmphasisGlyphsForRun(const ShapeResult::RunInfo*,
114 const TextRunPaintInfo&, 121 const TextContainerType&,
122 unsigned text_length,
123 TextDirection,
124 unsigned from,
125 unsigned to,
115 const GlyphData& emphasis_data, 126 const GlyphData& emphasis_data,
116 float initial_advance, 127 float initial_advance,
117 unsigned run_offset); 128 unsigned run_offset);
118 129
119 void CommitPendingRun(); 130 void CommitPendingRun();
120 void CommitPendingBlob(); 131 void CommitPendingBlob();
121 132
122 bool HasPendingVerticalOffsets() const; 133 bool HasPendingVerticalOffsets() const;
123 static BlobRotation GetBlobRotation(const SimpleFontData*); 134 static BlobRotation GetBlobRotation(const SimpleFontData*);
124 135
(...skipping 12 matching lines...) Expand all
137 Vector<float, 1024> pending_offsets_; 148 Vector<float, 1024> pending_offsets_;
138 float pending_vertical_baseline_x_offset_ = 0; 149 float pending_vertical_baseline_x_offset_ = 0;
139 150
140 // Constructed blobs. 151 // Constructed blobs.
141 BlobBuffer blobs_; 152 BlobBuffer blobs_;
142 }; 153 };
143 154
144 } // namespace blink 155 } // namespace blink
145 156
146 #endif // ShapeResultBloberizer_h 157 #endif // ShapeResultBloberizer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698