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

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

Issue 1178383003: Revert of Make GrTextContext be owned by the GrDrawContext (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 6 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/core/SkDeviceProperties.h ('k') | src/gpu/GrAtlasTextContext.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 2015 Google Inc. 2 * Copyright 2015 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 GrAtlasTextContext_DEFINED 8 #ifndef GrAtlasTextContext_DEFINED
9 #define GrAtlasTextContext_DEFINED 9 #define GrAtlasTextContext_DEFINED
10 10
11 #include "GrTextContext.h" 11 #include "GrTextContext.h"
12 12
13 #include "GrBatchAtlas.h" 13 #include "GrBatchAtlas.h"
14 #include "GrBatchFontCache.h" 14 #include "GrBatchFontCache.h"
15 #include "GrGeometryProcessor.h" 15 #include "GrGeometryProcessor.h"
16 #include "SkDescriptor.h" 16 #include "SkDescriptor.h"
17 #include "GrMemoryPool.h" 17 #include "GrMemoryPool.h"
18 #include "SkMaskFilter.h" 18 #include "SkMaskFilter.h"
19 #include "SkTextBlob.h" 19 #include "SkTextBlob.h"
20 #include "SkTInternalLList.h" 20 #include "SkTInternalLList.h"
21 21
22 #ifdef GR_TEST_UTILS 22 #ifdef GR_TEST_UTILS
23 #include "GrBatchTest.h" 23 #include "GrBatchTest.h"
24 #endif 24 #endif
25 25
26 class BitmapTextBatch; 26 class BitmapTextBatch;
27 class GrDrawContext; 27 class GrDrawContext;
28 class GrDrawTarget;
29 class GrPipelineBuilder; 28 class GrPipelineBuilder;
30 class GrTextBlobCache; 29 class GrTextBlobCache;
31 30
32 /* 31 /*
33 * This class implements GrTextContext using standard bitmap fonts, and can also process textblobs. 32 * This class implements GrTextContext using standard bitmap fonts, and can also process textblobs.
34 * TODO replace GrBitmapTextContext 33 * TODO replace GrBitmapTextContext
35 */ 34 */
36 class GrAtlasTextContext : public GrTextContext { 35 class GrAtlasTextContext : public GrTextContext {
37 public: 36 public:
38 static GrAtlasTextContext* Create(GrContext*, GrDrawContext*, 37 static GrAtlasTextContext* Create(GrContext*, const SkDeviceProperties&,
39 const SkDeviceProperties&, bool enableDist anceFields); 38 bool enableDistanceFields);
40 39
41 private: 40 private:
42 GrAtlasTextContext(GrContext*, GrDrawContext*, const SkDeviceProperties&, bo ol useDFT); 41 GrAtlasTextContext(GrContext*, const SkDeviceProperties&, bool enableDistanc eFields);
43 ~GrAtlasTextContext() override {} 42 ~GrAtlasTextContext() override {}
44 43
45 bool canDraw(const GrRenderTarget*, const GrClip&, const GrPaint&, 44 bool canDraw(const GrRenderTarget*, const GrClip&, const GrPaint&,
46 const SkPaint&, const SkMatrix& viewMatrix) override; 45 const SkPaint&, const SkMatrix& viewMatrix) override;
47 46
48 void onDrawText(GrRenderTarget*, const GrClip&, const GrPaint&, const SkPain t&, 47 void onDrawText(GrDrawContext*, GrRenderTarget*, const GrClip&, const GrPain t&, const SkPaint&,
49 const SkMatrix& viewMatrix, const char text[], size_t byteLe ngth, 48 const SkMatrix& viewMatrix, const char text[], size_t byteLe ngth,
50 SkScalar x, SkScalar y, const SkIRect& regionClipBounds) ove rride; 49 SkScalar x, SkScalar y, const SkIRect& regionClipBounds) ove rride;
51 void onDrawPosText(GrRenderTarget*, const GrClip&, const GrPaint&, 50 void onDrawPosText(GrDrawContext*, GrRenderTarget*, const GrClip&, const GrP aint&,
52 const SkPaint&, const SkMatrix& viewMatrix, 51 const SkPaint&, const SkMatrix& viewMatrix,
53 const char text[], size_t byteLength, 52 const char text[], size_t byteLength,
54 const SkScalar pos[], int scalarsPerPosition, 53 const SkScalar pos[], int scalarsPerPosition,
55 const SkPoint& offset, const SkIRect& regionClipBounds) o verride; 54 const SkPoint& offset, const SkIRect& regionClipBounds) o verride;
56 void drawTextBlob(GrRenderTarget*, const GrClip&, const SkPaint&, 55 void drawTextBlob(GrRenderTarget*, const GrClip&, const SkPaint&,
57 const SkMatrix& viewMatrix, const SkTextBlob*, SkScalar x, SkScalar y, 56 const SkMatrix& viewMatrix, const SkTextBlob*, SkScalar x, SkScalar y,
58 SkDrawFilter*, const SkIRect& clipBounds) override; 57 SkDrawFilter*, const SkIRect& clipBounds) override;
59 58
60 /* 59 /*
61 * A BitmapTextBlob contains a fully processed SkTextBlob, suitable for near ly immediate drawing 60 * A BitmapTextBlob contains a fully processed SkTextBlob, suitable for near ly immediate drawing
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 bool dfAppendGlyph(BitmapTextBlob*, int runIndex, GrGlyph::PackedID, SkScala r sx, SkScalar sy, 264 bool dfAppendGlyph(BitmapTextBlob*, int runIndex, GrGlyph::PackedID, SkScala r sx, SkScalar sy,
266 GrColor color, GrFontScaler*, const SkIRect& clipRect, Sk Scalar textRatio, 265 GrColor color, GrFontScaler*, const SkIRect& clipRect, Sk Scalar textRatio,
267 const SkMatrix& viewMatrix); 266 const SkMatrix& viewMatrix);
268 inline void appendGlyphPath(BitmapTextBlob* blob, GrGlyph* glyph, 267 inline void appendGlyphPath(BitmapTextBlob* blob, GrGlyph* glyph,
269 GrFontScaler* scaler, SkScalar x, SkScalar y); 268 GrFontScaler* scaler, SkScalar x, SkScalar y);
270 inline void appendGlyphCommon(BitmapTextBlob*, Run*, Run::SubRunInfo*, 269 inline void appendGlyphCommon(BitmapTextBlob*, Run*, Run::SubRunInfo*,
271 const SkRect& positions, GrColor color, 270 const SkRect& positions, GrColor color,
272 size_t vertexStride, bool useVertexColor, 271 size_t vertexStride, bool useVertexColor,
273 GrGlyph*); 272 GrGlyph*);
274 273
275 inline void flushRunAsPaths(GrRenderTarget*, 274 inline void flushRunAsPaths(GrDrawContext*, GrRenderTarget*,
276 const SkTextBlob::RunIterator&, const GrClip& cl ip, 275 const SkTextBlob::RunIterator&, const GrClip& cl ip,
277 const SkPaint&, SkDrawFilter*, 276 const SkPaint&, SkDrawFilter*,
278 const SkMatrix& viewMatrix, const SkIRect& clipB ounds, SkScalar x, 277 const SkMatrix& viewMatrix, const SkIRect& clipB ounds, SkScalar x,
279 SkScalar y); 278 SkScalar y);
280 inline BitmapTextBatch* createBatch(BitmapTextBlob*, const PerSubRunInfo&, 279 inline BitmapTextBatch* createBatch(BitmapTextBlob*, const PerSubRunInfo&,
281 int glyphCount, int run, int subRun, 280 int glyphCount, int run, int subRun,
282 GrColor, SkScalar transX, SkScalar trans Y, 281 GrColor, SkScalar transX, SkScalar trans Y,
283 const SkPaint&); 282 const SkPaint&);
284 inline void flushRun(GrPipelineBuilder*, BitmapTextBlob*, int run, GrColor, 283 inline void flushRun(GrDrawContext*, GrPipelineBuilder*, BitmapTextBlob*, in t run, GrColor,
285 SkScalar transX, SkScalar transY, const SkPaint&); 284 SkScalar transX, SkScalar transY, const SkPaint&);
286 inline void flushBigGlyphs(BitmapTextBlob* cacheBlob, GrRenderTarget*, 285 inline void flushBigGlyphs(BitmapTextBlob* cacheBlob, GrDrawContext*, GrRend erTarget*,
287 const GrClip& clip, const SkPaint& skPaint, 286 const GrClip& clip, const SkPaint& skPaint,
288 SkScalar transX, SkScalar transY, const SkIRect& clipBounds); 287 SkScalar transX, SkScalar transY, const SkIRect& clipBounds);
289 288
290 // We have to flush SkTextBlobs differently from drawText / drawPosText 289 // We have to flush SkTextBlobs differently from drawText / drawPosText
291 void flush(const SkTextBlob*, BitmapTextBlob*, GrRenderTarget*, 290 void flush(GrDrawContext*, const SkTextBlob*, BitmapTextBlob*, GrRenderTarge t*,
292 const SkPaint&, const GrPaint&, SkDrawFilter*, const GrClip&, 291 const SkPaint&, const GrPaint&, SkDrawFilter*, const GrClip&,
293 const SkMatrix& viewMatrix, const SkIRect& clipBounds, SkScalar x , SkScalar y, 292 const SkMatrix& viewMatrix, const SkIRect& clipBounds, SkScalar x , SkScalar y,
294 SkScalar transX, SkScalar transY); 293 SkScalar transX, SkScalar transY);
295 void flush(BitmapTextBlob*, GrRenderTarget*, const SkPaint&, 294 void flush(GrDrawContext*, BitmapTextBlob*, GrRenderTarget*, const SkPaint&,
296 const GrPaint&, const GrClip&, const SkIRect& clipBounds); 295 const GrPaint&, const GrClip&, const SkIRect& clipBounds);
297 296
298 // A helper for drawing BitmapText in a run of distance fields 297 // A helper for drawing BitmapText in a run of distance fields
299 inline void fallbackDrawPosText(BitmapTextBlob*, int runIndex, 298 inline void fallbackDrawPosText(BitmapTextBlob*, int runIndex,
300 GrRenderTarget*, const GrClip&, 299 GrRenderTarget*, const GrClip&,
301 const GrPaint&, 300 const GrPaint&,
302 const SkPaint&, const SkMatrix& viewMatrix, 301 const SkPaint&, const SkMatrix& viewMatrix,
303 const SkTDArray<char>& fallbackTxt, 302 const SkTDArray<char>& fallbackTxt,
304 const SkTDArray<SkScalar>& fallbackPos, 303 const SkTDArray<SkScalar>& fallbackPos,
305 int scalarsPerPosition, 304 int scalarsPerPosition,
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 friend class BitmapTextBatch; 391 friend class BitmapTextBatch;
393 392
394 #ifdef GR_TEST_UTILS 393 #ifdef GR_TEST_UTILS
395 BATCH_TEST_FRIEND(TextBlobBatch); 394 BATCH_TEST_FRIEND(TextBlobBatch);
396 #endif 395 #endif
397 396
398 typedef GrTextContext INHERITED; 397 typedef GrTextContext INHERITED;
399 }; 398 };
400 399
401 #endif 400 #endif
OLDNEW
« no previous file with comments | « src/core/SkDeviceProperties.h ('k') | src/gpu/GrAtlasTextContext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698