OLD | NEW |
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 "SkColorPriv.h" | 8 #include "SkColorPriv.h" |
9 #include "SkReadBuffer.h" | 9 #include "SkReadBuffer.h" |
10 #include "SkWriteBuffer.h" | 10 #include "SkWriteBuffer.h" |
(...skipping 21 matching lines...) Expand all Loading... |
32 } | 32 } |
33 | 33 |
34 SkBitmapProcShader::SkBitmapProcShader(const SkBitmap& src, TileMode tmx, TileMo
de tmy, | 34 SkBitmapProcShader::SkBitmapProcShader(const SkBitmap& src, TileMode tmx, TileMo
de tmy, |
35 const SkMatrix* localMatrix) | 35 const SkMatrix* localMatrix) |
36 : INHERITED(localMatrix) { | 36 : INHERITED(localMatrix) { |
37 fRawBitmap = src; | 37 fRawBitmap = src; |
38 fTileModeX = (uint8_t)tmx; | 38 fTileModeX = (uint8_t)tmx; |
39 fTileModeY = (uint8_t)tmy; | 39 fTileModeY = (uint8_t)tmy; |
40 } | 40 } |
41 | 41 |
42 SkBitmapProcShader::SkBitmapProcShader(SkReadBuffer& buffer) | 42 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING |
43 : INHERITED(buffer) { | 43 SkBitmapProcShader::SkBitmapProcShader(SkReadBuffer& buffer) : INHERITED(buffer)
{ |
44 buffer.readBitmap(&fRawBitmap); | 44 buffer.readBitmap(&fRawBitmap); |
45 fRawBitmap.setImmutable(); | 45 fRawBitmap.setImmutable(); |
46 fTileModeX = buffer.readUInt(); | 46 fTileModeX = buffer.readUInt(); |
47 fTileModeY = buffer.readUInt(); | 47 fTileModeY = buffer.readUInt(); |
48 } | 48 } |
| 49 #endif |
49 | 50 |
50 SkShader::BitmapType SkBitmapProcShader::asABitmap(SkBitmap* texture, | 51 SkShader::BitmapType SkBitmapProcShader::asABitmap(SkBitmap* texture, |
51 SkMatrix* texM, | 52 SkMatrix* texM, |
52 TileMode xy[]) const { | 53 TileMode xy[]) const { |
53 if (texture) { | 54 if (texture) { |
54 *texture = fRawBitmap; | 55 *texture = fRawBitmap; |
55 } | 56 } |
56 if (texM) { | 57 if (texM) { |
57 texM->reset(); | 58 texM->reset(); |
58 } | 59 } |
59 if (xy) { | 60 if (xy) { |
60 xy[0] = (TileMode)fTileModeX; | 61 xy[0] = (TileMode)fTileModeX; |
61 xy[1] = (TileMode)fTileModeY; | 62 xy[1] = (TileMode)fTileModeY; |
62 } | 63 } |
63 return kDefault_BitmapType; | 64 return kDefault_BitmapType; |
64 } | 65 } |
65 | 66 |
| 67 SkFlattenable* SkBitmapProcShader::CreateProc(SkReadBuffer& buffer) { |
| 68 SkMatrix lm; |
| 69 buffer.readMatrix(&lm); |
| 70 SkBitmap bm; |
| 71 if (!buffer.readBitmap(&bm)) { |
| 72 return NULL; |
| 73 } |
| 74 bm.setImmutable(); |
| 75 TileMode mx = (TileMode)buffer.readUInt(); |
| 76 TileMode my = (TileMode)buffer.readUInt(); |
| 77 return SkShader::CreateBitmapShader(bm, mx, my, &lm); |
| 78 } |
| 79 |
66 void SkBitmapProcShader::flatten(SkWriteBuffer& buffer) const { | 80 void SkBitmapProcShader::flatten(SkWriteBuffer& buffer) const { |
67 this->INHERITED::flatten(buffer); | 81 buffer.writeMatrix(this->getLocalMatrix()); |
68 | |
69 buffer.writeBitmap(fRawBitmap); | 82 buffer.writeBitmap(fRawBitmap); |
70 buffer.writeUInt(fTileModeX); | 83 buffer.writeUInt(fTileModeX); |
71 buffer.writeUInt(fTileModeY); | 84 buffer.writeUInt(fTileModeY); |
72 } | 85 } |
73 | 86 |
74 static bool only_scale_and_translate(const SkMatrix& matrix) { | 87 static bool only_scale_and_translate(const SkMatrix& matrix) { |
75 unsigned mask = SkMatrix::kTranslate_Mask | SkMatrix::kScale_Mask; | 88 unsigned mask = SkMatrix::kTranslate_Mask | SkMatrix::kScale_Mask; |
76 return (matrix.getType() & ~mask) == 0; | 89 return (matrix.getType() & ~mask) == 0; |
77 } | 90 } |
78 | 91 |
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 #else | 484 #else |
472 | 485 |
473 bool SkBitmapProcShader::asNewEffect(GrContext* context, const SkPaint& paint, | 486 bool SkBitmapProcShader::asNewEffect(GrContext* context, const SkPaint& paint, |
474 const SkMatrix* localMatrix, GrColor* paint
Color, | 487 const SkMatrix* localMatrix, GrColor* paint
Color, |
475 GrEffect** effect) const { | 488 GrEffect** effect) const { |
476 SkDEBUGFAIL("Should not call in GPU-less build"); | 489 SkDEBUGFAIL("Should not call in GPU-less build"); |
477 return false; | 490 return false; |
478 } | 491 } |
479 | 492 |
480 #endif | 493 #endif |
OLD | NEW |