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

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

Issue 2130643004: drawTextRSXform (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: update util canvases Created 4 years, 5 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
« include/core/SkCanvas.h ('K') | « tools/debugger/SkDrawCommand.h ('k') | no next file » | 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 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 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 case kDrawPaint_OpType: return "DrawPaint"; 196 case kDrawPaint_OpType: return "DrawPaint";
197 case kDrawPatch_OpType: return "DrawPatch"; 197 case kDrawPatch_OpType: return "DrawPatch";
198 case kDrawPath_OpType: return "DrawPath"; 198 case kDrawPath_OpType: return "DrawPath";
199 case kDrawPoints_OpType: return "DrawPoints"; 199 case kDrawPoints_OpType: return "DrawPoints";
200 case kDrawPosText_OpType: return "DrawPosText"; 200 case kDrawPosText_OpType: return "DrawPosText";
201 case kDrawPosTextH_OpType: return "DrawPosTextH"; 201 case kDrawPosTextH_OpType: return "DrawPosTextH";
202 case kDrawRect_OpType: return "DrawRect"; 202 case kDrawRect_OpType: return "DrawRect";
203 case kDrawRRect_OpType: return "DrawRRect"; 203 case kDrawRRect_OpType: return "DrawRRect";
204 case kDrawText_OpType: return "DrawText"; 204 case kDrawText_OpType: return "DrawText";
205 case kDrawTextBlob_OpType: return "DrawTextBlob"; 205 case kDrawTextBlob_OpType: return "DrawTextBlob";
206 case kDrawTextOnPath_OpType: return "DrawTextOnPath"; 206 case kDrawTextOnPath_OpType: return "DrawTextOnPath";
robertphillips 2016/07/07 20:59:11 Everyone else starts with a capital 'D' ...
reed1 2016/07/07 22:51:45 Yes, all of the other ones are wrong. Done.
207 case kDrawTextRSXform_OpType: return "drawTextRSXform";
207 case kDrawVertices_OpType: return "DrawVertices"; 208 case kDrawVertices_OpType: return "DrawVertices";
208 case kEndDrawPicture_OpType: return "EndDrawPicture"; 209 case kEndDrawPicture_OpType: return "EndDrawPicture";
209 case kRestore_OpType: return "Restore"; 210 case kRestore_OpType: return "Restore";
210 case kSave_OpType: return "Save"; 211 case kSave_OpType: return "Save";
211 case kSaveLayer_OpType: return "SaveLayer"; 212 case kSaveLayer_OpType: return "SaveLayer";
212 case kSetMatrix_OpType: return "SetMatrix"; 213 case kSetMatrix_OpType: return "SetMatrix";
213 default: 214 default:
214 SkDebugf("OpType error 0x%08x\n", type); 215 SkDebugf("OpType error 0x%08x\n", type);
215 SkASSERT(0); 216 SkASSERT(0);
216 break; 217 break;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 INSTALL_FACTORY(DrawImage); 251 INSTALL_FACTORY(DrawImage);
251 INSTALL_FACTORY(DrawImageRect); 252 INSTALL_FACTORY(DrawImageRect);
252 INSTALL_FACTORY(DrawOval); 253 INSTALL_FACTORY(DrawOval);
253 INSTALL_FACTORY(DrawPaint); 254 INSTALL_FACTORY(DrawPaint);
254 INSTALL_FACTORY(DrawPath); 255 INSTALL_FACTORY(DrawPath);
255 INSTALL_FACTORY(DrawPoints); 256 INSTALL_FACTORY(DrawPoints);
256 INSTALL_FACTORY(DrawText); 257 INSTALL_FACTORY(DrawText);
257 INSTALL_FACTORY(DrawPosText); 258 INSTALL_FACTORY(DrawPosText);
258 INSTALL_FACTORY(DrawPosTextH); 259 INSTALL_FACTORY(DrawPosTextH);
259 INSTALL_FACTORY(DrawTextOnPath); 260 INSTALL_FACTORY(DrawTextOnPath);
261 INSTALL_FACTORY(DrawTextRSXform);
260 INSTALL_FACTORY(DrawTextBlob); 262 INSTALL_FACTORY(DrawTextBlob);
261 263
262 INSTALL_FACTORY(DrawRect); 264 INSTALL_FACTORY(DrawRect);
263 INSTALL_FACTORY(DrawRRect); 265 INSTALL_FACTORY(DrawRRect);
264 INSTALL_FACTORY(DrawDRRect); 266 INSTALL_FACTORY(DrawDRRect);
265 INSTALL_FACTORY(DrawPatch); 267 INSTALL_FACTORY(DrawPatch);
266 INSTALL_FACTORY(Save); 268 INSTALL_FACTORY(Save);
267 INSTALL_FACTORY(SaveLayer); 269 INSTALL_FACTORY(SaveLayer);
268 INSTALL_FACTORY(SetMatrix); 270 INSTALL_FACTORY(SetMatrix);
269 } 271 }
(...skipping 2679 matching lines...) Expand 10 before | Expand all | Expand 10 after
2949 SkDrawTextCommand* SkDrawTextCommand::fromJSON(Json::Value& command, 2951 SkDrawTextCommand* SkDrawTextCommand::fromJSON(Json::Value& command,
2950 UrlDataManager& urlDataManager) { 2952 UrlDataManager& urlDataManager) {
2951 const char* text = command[SKDEBUGCANVAS_ATTRIBUTE_TEXT].asCString(); 2953 const char* text = command[SKDEBUGCANVAS_ATTRIBUTE_TEXT].asCString();
2952 SkPaint paint; 2954 SkPaint paint;
2953 extract_json_paint(command[SKDEBUGCANVAS_ATTRIBUTE_PAINT], urlDataManager, & paint); 2955 extract_json_paint(command[SKDEBUGCANVAS_ATTRIBUTE_PAINT], urlDataManager, & paint);
2954 Json::Value coords = command[SKDEBUGCANVAS_ATTRIBUTE_COORDS]; 2956 Json::Value coords = command[SKDEBUGCANVAS_ATTRIBUTE_COORDS];
2955 return new SkDrawTextCommand(text, strlen(text), coords[0].asFloat(), coords [1].asFloat(), 2957 return new SkDrawTextCommand(text, strlen(text), coords[0].asFloat(), coords [1].asFloat(),
2956 paint); 2958 paint);
2957 } 2959 }
2958 2960
2961 //////////////////////////////////////////////////////////////////////////////// ///////////////////
2962
2959 SkDrawTextOnPathCommand::SkDrawTextOnPathCommand(const void* text, size_t byteLe ngth, 2963 SkDrawTextOnPathCommand::SkDrawTextOnPathCommand(const void* text, size_t byteLe ngth,
2960 const SkPath& path, const SkMat rix* matrix, 2964 const SkPath& path, const SkMat rix* matrix,
2961 const SkPaint& paint) 2965 const SkPaint& paint)
2962 : INHERITED(kDrawTextOnPath_OpType) { 2966 : INHERITED(kDrawTextOnPath_OpType) {
2963 fText = new char[byteLength]; 2967 fText = new char[byteLength];
2964 memcpy(fText, text, byteLength); 2968 memcpy(fText, text, byteLength);
2965 fByteLength = byteLength; 2969 fByteLength = byteLength;
2966 fPath = path; 2970 fPath = path;
2967 if (matrix) { 2971 if (matrix) {
2968 fMatrix = *matrix; 2972 fMatrix = *matrix;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
3010 if (command.isMember(SKDEBUGCANVAS_ATTRIBUTE_MATRIX)) { 3014 if (command.isMember(SKDEBUGCANVAS_ATTRIBUTE_MATRIX)) {
3011 extract_json_matrix(command[SKDEBUGCANVAS_ATTRIBUTE_MATRIX], &matrix); 3015 extract_json_matrix(command[SKDEBUGCANVAS_ATTRIBUTE_MATRIX], &matrix);
3012 matrixPtr = &matrix; 3016 matrixPtr = &matrix;
3013 } 3017 }
3014 else { 3018 else {
3015 matrixPtr = nullptr; 3019 matrixPtr = nullptr;
3016 } 3020 }
3017 return new SkDrawTextOnPathCommand(text, strlen(text), path, matrixPtr, pain t); 3021 return new SkDrawTextOnPathCommand(text, strlen(text), path, matrixPtr, pain t);
3018 } 3022 }
3019 3023
3024 //////////////////////////////////////////////////////////////////////////////// ///////////////////
3025
3026 SkDrawTextRSXformCommand::SkDrawTextRSXformCommand(const void* text, size_t byte Length,
3027 const SkRSXform xform[], cons t SkRect* cull,
3028 const SkPaint& paint)
robertphillips 2016/07/07 20:59:11 Not 'kDrawTextRSXform_OpType' ?
reed1 2016/07/07 22:51:45 Done.
3029 : INHERITED(kDrawTextOnPath_OpType)
3030 {
3031 fText = new char[byteLength];
3032 memcpy(fText, text, byteLength);
3033 fByteLength = byteLength;
3034 int count = paint.countText(text, byteLength);
3035 fXform = new SkRSXform[count];
3036 memcpy(fXform, xform, count * sizeof(SkRSXform));
3037 if (cull) {
3038 fCullStorage = *cull;
3039 fCull = &fCullStorage;
3040 } else {
3041 fCull = nullptr;
3042 }
3043 fPaint = paint;
3044
3045 fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncod ing()));
3046 fInfo.push(SkObjectParser::PaintToString(paint));
3047 }
3048
3049 void SkDrawTextRSXformCommand::execute(SkCanvas* canvas) const {
3050 canvas->drawTextRSXform(fText, fByteLength, fXform, fCull, fPaint);
3051 }
3052
3053 Json::Value SkDrawTextRSXformCommand::toJSON(UrlDataManager& urlDataManager) con st {
3054 Json::Value result = INHERITED::toJSON(urlDataManager);
3055 result[SKDEBUGCANVAS_ATTRIBUTE_TEXT] = Json::Value((const char*) fText,
3056 ((const char*) fText) + f ByteLength);
3057 result[SKDEBUGCANVAS_ATTRIBUTE_PAINT] = MakeJsonPaint(fPaint, urlDataManager );
3058 return result;
3059 }
3060
3061 SkDrawTextRSXformCommand* SkDrawTextRSXformCommand::fromJSON(Json::Value& comman d,
3062 UrlDataManager& url DataManager) {
3063 const char* text = command[SKDEBUGCANVAS_ATTRIBUTE_TEXT].asCString();
3064 size_t byteLength = strlen(text);
3065 SkPaint paint;
3066 extract_json_paint(command[SKDEBUGCANVAS_ATTRIBUTE_PAINT], urlDataManager, & paint);
3067
3068 // TODO: handle xform and cull
3069 int count = paint.countText(text, byteLength);
3070 SkAutoTArray<SkRSXform> xform(count);
3071 for (int i = 0; i < count; ++i) {
3072 xform[i].fSCos = 1;
3073 xform[i].fSSin = xform[i].fTx = xform[i].fTy = 0;
3074 }
3075 return new SkDrawTextRSXformCommand(text, byteLength, &xform[0], nullptr, pa int);
3076 }
3077
3078 //////////////////////////////////////////////////////////////////////////////// ///////////////////
3079
3020 SkDrawVerticesCommand::SkDrawVerticesCommand(SkCanvas::VertexMode vmode, int ver texCount, 3080 SkDrawVerticesCommand::SkDrawVerticesCommand(SkCanvas::VertexMode vmode, int ver texCount,
3021 const SkPoint vertices[], const SkP oint texs[], 3081 const SkPoint vertices[], const SkP oint texs[],
3022 const SkColor colors[], SkXfermode* xfermode, 3082 const SkColor colors[], SkXfermode* xfermode,
3023 const uint16_t indices[], int index Count, 3083 const uint16_t indices[], int index Count,
3024 const SkPaint& paint) 3084 const SkPaint& paint)
3025 : INHERITED(kDrawVertices_OpType) { 3085 : INHERITED(kDrawVertices_OpType) {
3026 fVmode = vmode; 3086 fVmode = vmode;
3027 3087
3028 fVertexCount = vertexCount; 3088 fVertexCount = vertexCount;
3029 3089
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
3217 result[SKDEBUGCANVAS_ATTRIBUTE_MATRIX] = MakeJsonMatrix(fMatrix); 3277 result[SKDEBUGCANVAS_ATTRIBUTE_MATRIX] = MakeJsonMatrix(fMatrix);
3218 return result; 3278 return result;
3219 } 3279 }
3220 3280
3221 SkSetMatrixCommand* SkSetMatrixCommand::fromJSON(Json::Value& command, 3281 SkSetMatrixCommand* SkSetMatrixCommand::fromJSON(Json::Value& command,
3222 UrlDataManager& urlDataManager) { 3282 UrlDataManager& urlDataManager) {
3223 SkMatrix matrix; 3283 SkMatrix matrix;
3224 extract_json_matrix(command[SKDEBUGCANVAS_ATTRIBUTE_MATRIX], &matrix); 3284 extract_json_matrix(command[SKDEBUGCANVAS_ATTRIBUTE_MATRIX], &matrix);
3225 return new SkSetMatrixCommand(matrix); 3285 return new SkSetMatrixCommand(matrix);
3226 } 3286 }
OLDNEW
« include/core/SkCanvas.h ('K') | « tools/debugger/SkDrawCommand.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698