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

Side by Side Diff: src/pdf/SkPDFShader.cpp

Issue 1809733002: detach -> release (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: (C) Created 4 years, 9 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
« no previous file with comments | « src/pdf/SkPDFFont.cpp ('k') | src/pdf/SkPDFStream.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 8
9 9
10 #include "SkPDFShader.h" 10 #include "SkPDFShader.h"
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 get_pdf_shader_by_state(canon, dpi, &opaqueState)); 615 get_pdf_shader_by_state(canon, dpi, &opaqueState));
616 if (!colorShader) { 616 if (!colorShader) {
617 return nullptr; 617 return nullptr;
618 } 618 }
619 619
620 // Create resource dict with alpha graphics state as G0 and 620 // Create resource dict with alpha graphics state as G0 and
621 // pattern shader as P0, then write content stream. 621 // pattern shader as P0, then write content stream.
622 auto alphaGs = create_smask_graphic_state(canon, dpi, state); 622 auto alphaGs = create_smask_graphic_state(canon, dpi, state);
623 623
624 SkPDFAlphaFunctionShader* alphaFunctionShader = 624 SkPDFAlphaFunctionShader* alphaFunctionShader =
625 new SkPDFAlphaFunctionShader(autoState->detach()); 625 new SkPDFAlphaFunctionShader(autoState->release());
626 626
627 auto resourceDict = 627 auto resourceDict =
628 get_gradient_resource_dict(colorShader.get(), alphaGs.get()); 628 get_gradient_resource_dict(colorShader.get(), alphaGs.get());
629 629
630 SkAutoTDelete<SkStream> colorStream( 630 SkAutoTDelete<SkStream> colorStream(
631 create_pattern_fill_content(0, bbox)); 631 create_pattern_fill_content(0, bbox));
632 alphaFunctionShader->setData(colorStream.get()); 632 alphaFunctionShader->setData(colorStream.get());
633 633
634 populate_tiling_pattern_dict(alphaFunctionShader, bbox, resourceDict.get(), 634 populate_tiling_pattern_dict(alphaFunctionShader, bbox, resourceDict.get(),
635 SkMatrix::I()); 635 SkMatrix::I());
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 pdfShader->insertObject("Domain", sk_ref_sp(domain.get())); 802 pdfShader->insertObject("Domain", sk_ref_sp(domain.get()));
803 803
804 // Call canon->makeRangeObject() instead of 804 // Call canon->makeRangeObject() instead of
805 // SkPDFShader::MakeRangeObject() so that the canon can 805 // SkPDFShader::MakeRangeObject() so that the canon can
806 // deduplicate. 806 // deduplicate.
807 auto function = make_ps_function(functionCode, domain.get(), 807 auto function = make_ps_function(functionCode, domain.get(),
808 canon->makeRangeObject()); 808 canon->makeRangeObject());
809 pdfShader->insertObjRef("Function", std::move(function)); 809 pdfShader->insertObjRef("Function", std::move(function));
810 810
811 sk_sp<SkPDFFunctionShader> pdfFunctionShader( 811 sk_sp<SkPDFFunctionShader> pdfFunctionShader(
812 new SkPDFFunctionShader(autoState->detach())); 812 new SkPDFFunctionShader(autoState->release()));
813 pdfFunctionShader->insertInt("PatternType", 2); 813 pdfFunctionShader->insertInt("PatternType", 2);
814 pdfFunctionShader->insertObject("Matrix", 814 pdfFunctionShader->insertObject("Matrix",
815 SkPDFUtils::MatrixToArray(finalMatrix)); 815 SkPDFUtils::MatrixToArray(finalMatrix));
816 pdfFunctionShader->insertObject("Shading", std::move(pdfShader)); 816 pdfFunctionShader->insertObject("Shading", std::move(pdfShader));
817 817
818 canon->addFunctionShader(pdfFunctionShader.get()); 818 canon->addFunctionShader(pdfFunctionShader.get());
819 return pdfFunctionShader.release(); 819 return pdfFunctionShader.release();
820 } 820 }
821 821
822 SkPDFImageShader* SkPDFImageShader::Create( 822 SkPDFImageShader* SkPDFImageShader::Create(
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 bottomMatrix.postTranslate(2 * width, 0); 1014 bottomMatrix.postTranslate(2 * width, 0);
1015 drawBitmapMatrix(&canvas, bottom, bottomMatrix); 1015 drawBitmapMatrix(&canvas, bottom, bottomMatrix);
1016 } 1016 }
1017 patternBBox.fBottom = deviceBounds.height(); 1017 patternBBox.fBottom = deviceBounds.height();
1018 } 1018 }
1019 } 1019 }
1020 1020
1021 // Put the canvas into the pattern stream (fContent). 1021 // Put the canvas into the pattern stream (fContent).
1022 auto content = patternDevice->content(); 1022 auto content = patternDevice->content();
1023 1023
1024 SkPDFImageShader* imageShader = new SkPDFImageShader(autoState->detach()); 1024 SkPDFImageShader* imageShader = new SkPDFImageShader(autoState->release());
1025 imageShader->setData(content.get()); 1025 imageShader->setData(content.get());
1026 1026
1027 auto resourceDict = patternDevice->makeResourceDict(); 1027 auto resourceDict = patternDevice->makeResourceDict();
1028 populate_tiling_pattern_dict(imageShader, patternBBox, 1028 populate_tiling_pattern_dict(imageShader, patternBBox,
1029 resourceDict.get(), finalMatrix); 1029 resourceDict.get(), finalMatrix);
1030 1030
1031 imageShader->fShaderState->fImage.unlockPixels(); 1031 imageShader->fShaderState->fImage.unlockPixels();
1032 1032
1033 canon->addImageShader(imageShader); 1033 canon->addImageShader(imageShader);
1034 return imageShader; 1034 return imageShader;
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 return false; 1223 return false;
1224 } 1224 }
1225 1225
1226 void SkPDFShader::State::AllocateGradientInfoStorage() { 1226 void SkPDFShader::State::AllocateGradientInfoStorage() {
1227 fColorData.set(sk_malloc_throw( 1227 fColorData.set(sk_malloc_throw(
1228 fInfo.fColorCount * (sizeof(SkColor) + sizeof(SkScalar)))); 1228 fInfo.fColorCount * (sizeof(SkColor) + sizeof(SkScalar))));
1229 fInfo.fColors = reinterpret_cast<SkColor*>(fColorData.get()); 1229 fInfo.fColors = reinterpret_cast<SkColor*>(fColorData.get());
1230 fInfo.fColorOffsets = 1230 fInfo.fColorOffsets =
1231 reinterpret_cast<SkScalar*>(fInfo.fColors + fInfo.fColorCount); 1231 reinterpret_cast<SkScalar*>(fInfo.fColors + fInfo.fColorCount);
1232 } 1232 }
OLDNEW
« no previous file with comments | « src/pdf/SkPDFFont.cpp ('k') | src/pdf/SkPDFStream.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698