| 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 | 8 |
| 9 | 9 |
| 10 #include "SkPDFShader.h" | 10 #include "SkPDFShader.h" |
| (...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 628 SkPDFUtils::PaintPath(SkPaint::kFill_Style, SkPath::kEvenOdd_FillType, | 628 SkPDFUtils::PaintPath(SkPaint::kFill_Style, SkPath::kEvenOdd_FillType, |
| 629 &content); | 629 &content); |
| 630 | 630 |
| 631 return content.detachAsStream(); | 631 return content.detachAsStream(); |
| 632 } | 632 } |
| 633 | 633 |
| 634 /** | 634 /** |
| 635 * Creates a ExtGState with the SMask set to the luminosityShader in | 635 * Creates a ExtGState with the SMask set to the luminosityShader in |
| 636 * luminosity mode. The shader pattern extends to the bbox. | 636 * luminosity mode. The shader pattern extends to the bbox. |
| 637 */ | 637 */ |
| 638 static SkPDFGraphicState* create_smask_graphic_state( | 638 static SkPDFObject* create_smask_graphic_state( |
| 639 SkPDFCanon* canon, SkScalar dpi, const SkPDFShader::State& state) { | 639 SkPDFCanon* canon, SkScalar dpi, const SkPDFShader::State& state) { |
| 640 SkRect bbox; | 640 SkRect bbox; |
| 641 bbox.set(state.fBBox); | 641 bbox.set(state.fBBox); |
| 642 | 642 |
| 643 SkAutoTDelete<SkPDFShader::State> alphaToLuminosityState( | 643 SkAutoTDelete<SkPDFShader::State> alphaToLuminosityState( |
| 644 state.CreateAlphaToLuminosityState()); | 644 state.CreateAlphaToLuminosityState()); |
| 645 SkAutoTUnref<SkPDFObject> luminosityShader( | 645 SkAutoTUnref<SkPDFObject> luminosityShader( |
| 646 get_pdf_shader_by_state(canon, dpi, &alphaToLuminosityState)); | 646 get_pdf_shader_by_state(canon, dpi, &alphaToLuminosityState)); |
| 647 | 647 |
| 648 SkAutoTDelete<SkStream> alphaStream(create_pattern_fill_content(-1, bbox)); | 648 SkAutoTDelete<SkStream> alphaStream(create_pattern_fill_content(-1, bbox)); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 669 SkAutoTDelete<SkPDFShader::State> opaqueState(state.CreateOpaqueState()); | 669 SkAutoTDelete<SkPDFShader::State> opaqueState(state.CreateOpaqueState()); |
| 670 | 670 |
| 671 SkAutoTUnref<SkPDFObject> colorShader( | 671 SkAutoTUnref<SkPDFObject> colorShader( |
| 672 get_pdf_shader_by_state(canon, dpi, &opaqueState)); | 672 get_pdf_shader_by_state(canon, dpi, &opaqueState)); |
| 673 if (!colorShader) { | 673 if (!colorShader) { |
| 674 return NULL; | 674 return NULL; |
| 675 } | 675 } |
| 676 | 676 |
| 677 // Create resource dict with alpha graphics state as G0 and | 677 // Create resource dict with alpha graphics state as G0 and |
| 678 // pattern shader as P0, then write content stream. | 678 // pattern shader as P0, then write content stream. |
| 679 SkAutoTUnref<SkPDFGraphicState> alphaGs( | 679 SkAutoTUnref<SkPDFObject> alphaGs( |
| 680 create_smask_graphic_state(canon, dpi, state)); | 680 create_smask_graphic_state(canon, dpi, state)); |
| 681 | 681 |
| 682 SkPDFAlphaFunctionShader* alphaFunctionShader = | 682 SkPDFAlphaFunctionShader* alphaFunctionShader = |
| 683 SkNEW_ARGS(SkPDFAlphaFunctionShader, (autoState->detach())); | 683 SkNEW_ARGS(SkPDFAlphaFunctionShader, (autoState->detach())); |
| 684 | 684 |
| 685 SkAutoTUnref<SkPDFResourceDict> resourceDict( | 685 SkAutoTUnref<SkPDFResourceDict> resourceDict( |
| 686 get_gradient_resource_dict(colorShader.get(), alphaGs.get())); | 686 get_gradient_resource_dict(colorShader.get(), alphaGs.get())); |
| 687 | 687 |
| 688 SkAutoTDelete<SkStream> colorStream( | 688 SkAutoTDelete<SkStream> colorStream( |
| 689 create_pattern_fill_content(0, bbox)); | 689 create_pattern_fill_content(0, bbox)); |
| (...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1303 return false; | 1303 return false; |
| 1304 } | 1304 } |
| 1305 | 1305 |
| 1306 void SkPDFShader::State::AllocateGradientInfoStorage() { | 1306 void SkPDFShader::State::AllocateGradientInfoStorage() { |
| 1307 fColorData.set(sk_malloc_throw( | 1307 fColorData.set(sk_malloc_throw( |
| 1308 fInfo.fColorCount * (sizeof(SkColor) + sizeof(SkScalar)))); | 1308 fInfo.fColorCount * (sizeof(SkColor) + sizeof(SkScalar)))); |
| 1309 fInfo.fColors = reinterpret_cast<SkColor*>(fColorData.get()); | 1309 fInfo.fColors = reinterpret_cast<SkColor*>(fColorData.get()); |
| 1310 fInfo.fColorOffsets = | 1310 fInfo.fColorOffsets = |
| 1311 reinterpret_cast<SkScalar*>(fInfo.fColors + fInfo.fColorCount); | 1311 reinterpret_cast<SkScalar*>(fInfo.fColors + fInfo.fColorCount); |
| 1312 } | 1312 } |
| OLD | NEW |