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

Side by Side Diff: src/core/SkPicturePlayback.cpp

Issue 112913005: reenable vertices gm, adding picture support (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « src/core/SkPictureFlat.h ('k') | src/core/SkPictureRecord.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 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 #include "SkPicturePlayback.h" 8 #include "SkPicturePlayback.h"
9 #include "SkPictureRecord.h" 9 #include "SkPictureRecord.h"
10 #include "SkTypeface.h" 10 #include "SkTypeface.h"
(...skipping 1007 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 } break; 1018 } break;
1019 case DRAW_TEXT_ON_PATH: { 1019 case DRAW_TEXT_ON_PATH: {
1020 const SkPaint& paint = *getPaint(reader); 1020 const SkPaint& paint = *getPaint(reader);
1021 getText(reader, &text); 1021 getText(reader, &text);
1022 const SkPath& path = getPath(reader); 1022 const SkPath& path = getPath(reader);
1023 const SkMatrix* matrix = getMatrix(reader); 1023 const SkMatrix* matrix = getMatrix(reader);
1024 canvas.drawTextOnPath(text.text(), text.length(), path, 1024 canvas.drawTextOnPath(text.text(), text.length(), path,
1025 matrix, paint); 1025 matrix, paint);
1026 } break; 1026 } break;
1027 case DRAW_VERTICES: { 1027 case DRAW_VERTICES: {
1028 SkAutoTUnref<SkXfermode> xfer;
1028 const SkPaint& paint = *getPaint(reader); 1029 const SkPaint& paint = *getPaint(reader);
1029 DrawVertexFlags flags = (DrawVertexFlags)reader.readInt(); 1030 DrawVertexFlags flags = (DrawVertexFlags)reader.readInt();
1030 SkCanvas::VertexMode vmode = (SkCanvas::VertexMode)reader.readIn t(); 1031 SkCanvas::VertexMode vmode = (SkCanvas::VertexMode)reader.readIn t();
1031 int vCount = reader.readInt(); 1032 int vCount = reader.readInt();
1032 const SkPoint* verts = (const SkPoint*)reader.skip( 1033 const SkPoint* verts = (const SkPoint*)reader.skip(
1033 vCount * sizeof(SkPoint)); 1034 vCount * sizeof(SkPoint));
1034 const SkPoint* texs = NULL; 1035 const SkPoint* texs = NULL;
1035 const SkColor* colors = NULL; 1036 const SkColor* colors = NULL;
1036 const uint16_t* indices = NULL; 1037 const uint16_t* indices = NULL;
1037 int iCount = 0; 1038 int iCount = 0;
1038 if (flags & DRAW_VERTICES_HAS_TEXS) { 1039 if (flags & DRAW_VERTICES_HAS_TEXS) {
1039 texs = (const SkPoint*)reader.skip( 1040 texs = (const SkPoint*)reader.skip(
1040 vCount * sizeof(SkPoint)); 1041 vCount * sizeof(SkPoint));
1041 } 1042 }
1042 if (flags & DRAW_VERTICES_HAS_COLORS) { 1043 if (flags & DRAW_VERTICES_HAS_COLORS) {
1043 colors = (const SkColor*)reader.skip( 1044 colors = (const SkColor*)reader.skip(
1044 vCount * sizeof(SkColor)); 1045 vCount * sizeof(SkColor));
1045 } 1046 }
1046 if (flags & DRAW_VERTICES_HAS_INDICES) { 1047 if (flags & DRAW_VERTICES_HAS_INDICES) {
1047 iCount = reader.readInt(); 1048 iCount = reader.readInt();
1048 indices = (const uint16_t*)reader.skip( 1049 indices = (const uint16_t*)reader.skip(
1049 iCount * sizeof(uint16_t)); 1050 iCount * sizeof(uint16_t));
1050 } 1051 }
1051 canvas.drawVertices(vmode, vCount, verts, texs, colors, NULL, 1052 if (flags & DRAW_VERTICES_HAS_XFER) {
1053 int mode = reader.readInt();
1054 if (mode < 0 || mode > SkXfermode::kLastMode) {
1055 mode = SkXfermode::kModulate_Mode;
1056 }
1057 xfer.reset(SkXfermode::Create((SkXfermode::Mode)mode));
1058 }
1059 canvas.drawVertices(vmode, vCount, verts, texs, colors, xfer,
1052 indices, iCount, paint); 1060 indices, iCount, paint);
1053 } break; 1061 } break;
1054 case RESTORE: 1062 case RESTORE:
1055 canvas.restore(); 1063 canvas.restore();
1056 break; 1064 break;
1057 case ROTATE: 1065 case ROTATE:
1058 canvas.rotate(reader.readScalar()); 1066 canvas.rotate(reader.readScalar());
1059 break; 1067 break;
1060 case SAVE: 1068 case SAVE:
1061 canvas.save((SkCanvas::SaveFlags) reader.readInt()); 1069 canvas.save((SkCanvas::SaveFlags) reader.readInt());
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
1659 for (index = 0; index < fRegionCount; index++) 1667 for (index = 0; index < fRegionCount; index++)
1660 bufferPtr += snprintf(bufferPtr, DUMP_BUFFER_SIZE - (bufferPtr - pBuffer ), 1668 bufferPtr += snprintf(bufferPtr, DUMP_BUFFER_SIZE - (bufferPtr - pBuffer ),
1661 "region%p, ", &fRegions[index]); 1669 "region%p, ", &fRegions[index]);
1662 if (fRegionCount > 0) 1670 if (fRegionCount > 0)
1663 SkDebugf("%s0};\n", pBuffer); 1671 SkDebugf("%s0};\n", pBuffer);
1664 1672
1665 const_cast<SkPicturePlayback*>(this)->dumpStream(); 1673 const_cast<SkPicturePlayback*>(this)->dumpStream();
1666 } 1674 }
1667 1675
1668 #endif 1676 #endif
OLDNEW
« no previous file with comments | « src/core/SkPictureFlat.h ('k') | src/core/SkPictureRecord.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698