| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 "SkTypes.h" | 8 #include "SkTypes.h" |
| 9 | 9 |
| 10 #ifndef UNICODE | 10 #ifndef UNICODE |
| (...skipping 1053 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1064 } | 1064 } |
| 1065 | 1065 |
| 1066 if (SkShader::kSweep_GradientType == gradientType) { | 1066 if (SkShader::kSweep_GradientType == gradientType) { |
| 1067 //have to fake | 1067 //have to fake |
| 1068 } | 1068 } |
| 1069 } | 1069 } |
| 1070 | 1070 |
| 1071 SkBitmap outTexture; | 1071 SkBitmap outTexture; |
| 1072 SkMatrix outMatrix; | 1072 SkMatrix outMatrix; |
| 1073 SkShader::TileMode xy[2]; | 1073 SkShader::TileMode xy[2]; |
| 1074 SkShader::BitmapType bitmapType = shader->asABitmap(&outTexture, | 1074 if (shader->isABitmap(&outTexture, &outMatrix, xy)) { |
| 1075 &outMatrix, | 1075 //TODO: outMatrix?? |
| 1076 xy); | 1076 SkMatrix localMatrix = shader->getLocalMatrix(); |
| 1077 switch (bitmapType) { | 1077 if (parentTransform) { |
| 1078 case SkShader::kDefault_BitmapType: { | 1078 localMatrix.preConcat(*parentTransform); |
| 1079 //TODO: outMatrix?? | 1079 } |
| 1080 SkMatrix localMatrix = shader->getLocalMatrix(); | |
| 1081 if (parentTransform) { | |
| 1082 localMatrix.preConcat(*parentTransform); | |
| 1083 } | |
| 1084 | 1080 |
| 1085 SkTScopedComPtr<IXpsOMTileBrush> tileBrush; | 1081 SkTScopedComPtr<IXpsOMTileBrush> tileBrush; |
| 1086 HR(this->createXpsImageBrush(outTexture, | 1082 HR(this->createXpsImageBrush(outTexture, |
| 1087 localMatrix, | 1083 localMatrix, |
| 1088 xy, | 1084 xy, |
| 1089 skPaint.getAlpha(), | 1085 skPaint.getAlpha(), |
| 1090 &tileBrush)); | 1086 &tileBrush)); |
| 1091 | 1087 |
| 1092 HRM(tileBrush->QueryInterface<IXpsOMBrush>(brush), "QI failed."); | 1088 HRM(tileBrush->QueryInterface<IXpsOMBrush>(brush), "QI failed."); |
| 1093 | 1089 } else { |
| 1094 return S_OK; | 1090 HR(this->createXpsSolidColorBrush(skPaint.getColor(), 0xFF, brush)); |
| 1095 } | |
| 1096 default: | |
| 1097 break; | |
| 1098 } | 1091 } |
| 1099 | |
| 1100 HR(this->createXpsSolidColorBrush(skPaint.getColor(), 0xFF, brush)); | |
| 1101 return S_OK; | 1092 return S_OK; |
| 1102 } | 1093 } |
| 1103 | 1094 |
| 1104 static bool rect_must_be_pathed(const SkPaint& paint, const SkMatrix& matrix) { | 1095 static bool rect_must_be_pathed(const SkPaint& paint, const SkMatrix& matrix) { |
| 1105 const bool zeroWidth = (0 == paint.getStrokeWidth()); | 1096 const bool zeroWidth = (0 == paint.getStrokeWidth()); |
| 1106 const bool stroke = (SkPaint::kFill_Style != paint.getStyle()); | 1097 const bool stroke = (SkPaint::kFill_Style != paint.getStyle()); |
| 1107 | 1098 |
| 1108 return paint.getPathEffect() || | 1099 return paint.getPathEffect() || |
| 1109 paint.getMaskFilter() || | 1100 paint.getMaskFilter() || |
| 1110 paint.getRasterizer() || | 1101 paint.getRasterizer() || |
| (...skipping 1156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2267 //To what stream do we write? | 2258 //To what stream do we write? |
| 2268 //SkXPSDevice* dev = new SkXPSDevice(this); | 2259 //SkXPSDevice* dev = new SkXPSDevice(this); |
| 2269 //SkSize s = SkSize::Make(width, height); | 2260 //SkSize s = SkSize::Make(width, height); |
| 2270 //dev->BeginCanvas(s, s, SkMatrix::I()); | 2261 //dev->BeginCanvas(s, s, SkMatrix::I()); |
| 2271 //return dev; | 2262 //return dev; |
| 2272 } | 2263 } |
| 2273 #endif | 2264 #endif |
| 2274 return new SkXPSDevice(this->fXpsFactory.get()); | 2265 return new SkXPSDevice(this->fXpsFactory.get()); |
| 2275 } | 2266 } |
| 2276 | 2267 |
| OLD | NEW |