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

Side by Side Diff: tools/debugger/SkDrawCommand.cpp

Issue 2335493005: Use sk_sp text blob APIs (Closed)
Patch Set: Created 4 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 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 #include "SkDrawCommand.h" 8 #include "SkDrawCommand.h"
9 9
10 #include "SkBlurMaskFilter.h" 10 #include "SkBlurMaskFilter.h"
(...skipping 2779 matching lines...) Expand 10 before | Expand all | Expand 10 after
2790 SkScalar y = command[SKDEBUGCANVAS_ATTRIBUTE_Y].asFloat(); 2790 SkScalar y = command[SKDEBUGCANVAS_ATTRIBUTE_Y].asFloat();
2791 return new SkDrawPosTextHCommand(text, strlen(text), xpos, y, paint); 2791 return new SkDrawPosTextHCommand(text, strlen(text), xpos, y, paint);
2792 } 2792 }
2793 2793
2794 static const char* gPositioningLabels[] = { 2794 static const char* gPositioningLabels[] = {
2795 "kDefault_Positioning", 2795 "kDefault_Positioning",
2796 "kHorizontal_Positioning", 2796 "kHorizontal_Positioning",
2797 "kFull_Positioning", 2797 "kFull_Positioning",
2798 }; 2798 };
2799 2799
2800 SkDrawTextBlobCommand::SkDrawTextBlobCommand(const SkTextBlob* blob, SkScalar x, SkScalar y, 2800 SkDrawTextBlobCommand::SkDrawTextBlobCommand(sk_sp<SkTextBlob> blob, SkScalar x, SkScalar y,
2801 const SkPaint& paint) 2801 const SkPaint& paint)
2802 : INHERITED(kDrawTextBlob_OpType) 2802 : INHERITED(kDrawTextBlob_OpType)
2803 , fBlob(SkRef(blob)) 2803 , fBlob(std::move(blob))
2804 , fXPos(x) 2804 , fXPos(x)
2805 , fYPos(y) 2805 , fYPos(y)
2806 , fPaint(paint) { 2806 , fPaint(paint) {
2807 2807
2808 SkAutoTDelete<SkString> runsStr(new SkString); 2808 SkAutoTDelete<SkString> runsStr(new SkString);
2809 fInfo.push(SkObjectParser::ScalarToString(x, "XPOS: ")); 2809 fInfo.push(SkObjectParser::ScalarToString(x, "XPOS: "));
2810 fInfo.push(SkObjectParser::ScalarToString(y, "YPOS: ")); 2810 fInfo.push(SkObjectParser::ScalarToString(y, "YPOS: "));
2811 fInfo.push(SkObjectParser::RectToString(fBlob->bounds(), "Bounds: ")); 2811 fInfo.push(SkObjectParser::RectToString(fBlob->bounds(), "Bounds: "));
2812 fInfo.push(runsStr); 2812 fInfo.push(runsStr);
2813 fInfo.push(SkObjectParser::PaintToString(paint)); 2813 fInfo.push(SkObjectParser::PaintToString(paint));
2814 2814
2815 unsigned runs = 0; 2815 unsigned runs = 0;
2816 SkPaint runPaint(paint); 2816 SkPaint runPaint(paint);
2817 SkTextBlobRunIterator iter(blob); 2817 SkTextBlobRunIterator iter(blob.get());
2818 while (!iter.done()) { 2818 while (!iter.done()) {
2819 SkAutoTDelete<SkString> tmpStr(new SkString); 2819 SkAutoTDelete<SkString> tmpStr(new SkString);
2820 tmpStr->printf("==== Run [%d] ====", runs++); 2820 tmpStr->printf("==== Run [%d] ====", runs++);
2821 fInfo.push(tmpStr.release()); 2821 fInfo.push(tmpStr.release());
2822 2822
2823 fInfo.push(SkObjectParser::IntToString(iter.glyphCount(), "GlyphCount: " )); 2823 fInfo.push(SkObjectParser::IntToString(iter.glyphCount(), "GlyphCount: " ));
2824 tmpStr.reset(new SkString("GlyphPositioning: ")); 2824 tmpStr.reset(new SkString("GlyphPositioning: "));
2825 tmpStr->append(gPositioningLabels[iter.positioning()]); 2825 tmpStr->append(gPositioningLabels[iter.positioning()]);
2826 fInfo.push(tmpStr.release()); 2826 fInfo.push(tmpStr.release());
2827 2827
(...skipping 12 matching lines...) Expand all
2840 canvas->drawTextBlob(fBlob, fXPos, fYPos, fPaint); 2840 canvas->drawTextBlob(fBlob, fXPos, fYPos, fPaint);
2841 } 2841 }
2842 2842
2843 bool SkDrawTextBlobCommand::render(SkCanvas* canvas) const { 2843 bool SkDrawTextBlobCommand::render(SkCanvas* canvas) const {
2844 canvas->clear(SK_ColorWHITE); 2844 canvas->clear(SK_ColorWHITE);
2845 canvas->save(); 2845 canvas->save();
2846 2846
2847 SkRect bounds = fBlob->bounds().makeOffset(fXPos, fYPos); 2847 SkRect bounds = fBlob->bounds().makeOffset(fXPos, fYPos);
2848 xlate_and_scale_to_bounds(canvas, bounds); 2848 xlate_and_scale_to_bounds(canvas, bounds);
2849 2849
2850 canvas->drawTextBlob(fBlob.get(), fXPos, fYPos, fPaint); 2850 canvas->drawTextBlob(fBlob, fXPos, fYPos, fPaint);
2851 2851
2852 canvas->restore(); 2852 canvas->restore();
2853 2853
2854 return true; 2854 return true;
2855 } 2855 }
2856 2856
2857 Json::Value SkDrawTextBlobCommand::toJSON(UrlDataManager& urlDataManager) const { 2857 Json::Value SkDrawTextBlobCommand::toJSON(UrlDataManager& urlDataManager) const {
2858 Json::Value result = INHERITED::toJSON(urlDataManager); 2858 Json::Value result = INHERITED::toJSON(urlDataManager);
2859 Json::Value runs(Json::arrayValue); 2859 Json::Value runs(Json::arrayValue);
2860 SkTextBlobRunIterator iter(fBlob.get()); 2860 SkTextBlobRunIterator iter(fBlob.get());
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
2943 SkTextBlobBuilder::RunBuffer buffer = builder.allocRun(font, count, x, y, &bounds); 2943 SkTextBlobBuilder::RunBuffer buffer = builder.allocRun(font, count, x, y, &bounds);
2944 for (int j = 0; j < count; j++) { 2944 for (int j = 0; j < count; j++) {
2945 buffer.glyphs[j] = glyphs[j].asUInt(); 2945 buffer.glyphs[j] = glyphs[j].asUInt();
2946 } 2946 }
2947 } 2947 }
2948 } 2948 }
2949 SkScalar x = command[SKDEBUGCANVAS_ATTRIBUTE_X].asFloat(); 2949 SkScalar x = command[SKDEBUGCANVAS_ATTRIBUTE_X].asFloat();
2950 SkScalar y = command[SKDEBUGCANVAS_ATTRIBUTE_Y].asFloat(); 2950 SkScalar y = command[SKDEBUGCANVAS_ATTRIBUTE_Y].asFloat();
2951 SkPaint paint; 2951 SkPaint paint;
2952 extract_json_paint(command[SKDEBUGCANVAS_ATTRIBUTE_PAINT], urlDataManager, & paint); 2952 extract_json_paint(command[SKDEBUGCANVAS_ATTRIBUTE_PAINT], urlDataManager, & paint);
2953 return new SkDrawTextBlobCommand(builder.build(), x, y, paint); 2953 return new SkDrawTextBlobCommand(builder.make(), x, y, paint);
2954 } 2954 }
2955 2955
2956 SkDrawPatchCommand::SkDrawPatchCommand(const SkPoint cubics[12], const SkColor c olors[4], 2956 SkDrawPatchCommand::SkDrawPatchCommand(const SkPoint cubics[12], const SkColor c olors[4],
2957 const SkPoint texCoords[4], SkXfermode* x fermode, 2957 const SkPoint texCoords[4], SkXfermode* x fermode,
2958 const SkPaint& paint) 2958 const SkPaint& paint)
2959 : INHERITED(kDrawPatch_OpType) { 2959 : INHERITED(kDrawPatch_OpType) {
2960 memcpy(fCubics, cubics, sizeof(fCubics)); 2960 memcpy(fCubics, cubics, sizeof(fCubics));
2961 if (colors != nullptr) { 2961 if (colors != nullptr) {
2962 memcpy(fColors, colors, sizeof(fColors)); 2962 memcpy(fColors, colors, sizeof(fColors));
2963 fColorsPtr = fColors; 2963 fColorsPtr = fColors;
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after
3548 SkTranslateZCommand* SkTranslateZCommand::fromJSON(Json::Value& command, 3548 SkTranslateZCommand* SkTranslateZCommand::fromJSON(Json::Value& command,
3549 UrlDataManager& urlDataManager) { 3549 UrlDataManager& urlDataManager) {
3550 SkScalar z; 3550 SkScalar z;
3551 #ifdef SK_EXPERIMENTAL_SHADOWING 3551 #ifdef SK_EXPERIMENTAL_SHADOWING
3552 extract_json_scalar(command[SKDEBUGCANVAS_ATTRIBUTE_DRAWDEPTHTRANS], &z); 3552 extract_json_scalar(command[SKDEBUGCANVAS_ATTRIBUTE_DRAWDEPTHTRANS], &z);
3553 #else 3553 #else
3554 z = 0; 3554 z = 0;
3555 #endif 3555 #endif
3556 return new SkTranslateZCommand(z); 3556 return new SkTranslateZCommand(z);
3557 } 3557 }
OLDNEW
« src/gpu/text/GrStencilAndCoverTextContext.cpp ('K') | « tools/debugger/SkDrawCommand.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698