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

Side by Side Diff: src/pipe/SkGPipeRead.cpp

Issue 463493002: SkCanvas::drawPatch param SkPoint[12] (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 4 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 /* 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 8
9 9
10 #include "SkBitmapHeap.h" 10 #include "SkBitmapHeap.h"
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 SkRRect outer, inner; 399 SkRRect outer, inner;
400 reader->readRRect(&outer); 400 reader->readRRect(&outer);
401 reader->readRRect(&inner); 401 reader->readRRect(&inner);
402 if (state->shouldDraw()) { 402 if (state->shouldDraw()) {
403 canvas->drawDRRect(outer, inner, state->paint()); 403 canvas->drawDRRect(outer, inner, state->paint());
404 } 404 }
405 } 405 }
406 406
407 static void drawPatch_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32, 407 static void drawPatch_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
408 SkGPipeState* state) { 408 SkGPipeState* state) {
409 SkPatch patch; 409
410 reader->readPatch(&patch); 410 unsigned flags = DrawOp_unpackFlags(op32);
411
412 const SkPoint* cubics = skip<SkPoint>(reader, SkPatch::kNumCtrlPts);
413
414 const SkColor* colors = NULL;
415 if (flags & kDrawVertices_HasColors_DrawOpFlag) {
416 colors = skip<SkColor>(reader, SkPatch::kNumCorners);
417 }
418 const SkPoint* texCoords = NULL;
419 if (flags & kDrawVertices_HasTexs_DrawOpFlag) {
420 texCoords = skip<SkPoint>(reader, SkPatch::kNumCorners);
421 }
422 SkAutoTUnref<SkXfermode> xfer;
423 if (flags & kDrawVertices_HasXfermode_DrawOpFlag) {
424 int mode = reader->readInt();
425 if (mode < 0 || mode > SkXfermode::kLastMode) {
426 mode = SkXfermode::kModulate_Mode;
427 }
428 xfer.reset(SkXfermode::Create((SkXfermode::Mode)mode));
429 }
411 if (state->shouldDraw()) { 430 if (state->shouldDraw()) {
412 canvas->drawPatch(patch, state->paint()); 431 canvas->drawPatch(cubics, colors, texCoords, xfer, state->paint());
413 } 432 }
414 } 433 }
415 434
416 static void drawPath_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32, 435 static void drawPath_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
417 SkGPipeState* state) { 436 SkGPipeState* state) {
418 SkPath path; 437 SkPath path;
419 reader->readPath(&path); 438 reader->readPath(&path);
420 if (state->shouldDraw()) { 439 if (state->shouldDraw()) {
421 canvas->drawPath(path, state->paint()); 440 canvas->drawPath(path, state->paint());
422 } 441 }
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 status = kReadAtom_Status; 926 status = kReadAtom_Status;
908 break; 927 break;
909 } 928 }
910 } 929 }
911 930
912 if (bytesRead) { 931 if (bytesRead) {
913 *bytesRead = reader.offset(); 932 *bytesRead = reader.offset();
914 } 933 }
915 return status; 934 return status;
916 } 935 }
OLDNEW
« include/core/SkCanvas.h ('K') | « src/core/SkRecords.h ('k') | src/pipe/SkGPipeWrite.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698