Revert "Revert "fix legacy makeRasterImage()""
This reverts commitef29e42ef3
. Reason for revert: probably not either roll. Original change's description: > Revert "fix legacy makeRasterImage()" > > This reverts commit7c4ca04336
. > > Reason for revert: layout, cereal tests? > > Original change's description: > > fix legacy makeRasterImage() > > > > Passing the color space down into SkImage_Lazy ends up triggering a > > SkTransferFunctionBehavior::kRespect decode (tf(r*a)), where we want > > ignore (tf(r)*a) to have any hope of working with the legacy backend. > > > > This fix in turn needs another little extension of another old hack in > > SkImage_Gpu for makeNonTextureImage() to keep working there. > > > > Bug: skia:7479 > > > > Change-Id: If48ca68e95d9eee597f6b10434498049981314ba > > Reviewed-on: https://skia-review.googlesource.com/93380 > > Commit-Queue: Mike Klein <mtklein@chromium.org> > > Reviewed-by: Brian Osman <brianosman@google.com> > > TBR=mtklein@chromium.org,brianosman@google.com > > Change-Id: I65092e01d767ef1fd35563f0b79ceded3c12b267 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia:7479 > Reviewed-on: https://skia-review.googlesource.com/93820 > Reviewed-by: Mike Klein <mtklein@google.com> > Commit-Queue: Mike Klein <mtklein@google.com> TBR=mtklein@chromium.org,mtklein@google.com,brianosman@google.com Change-Id: Ic9b48d311cca152ab2e620363dd4528ed382eb88 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7479 Reviewed-on: https://skia-review.googlesource.com/93960 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
This commit is contained in:
parent
ea560af463
commit
98e38e2ac5
15
gm/makeRasterImage.cpp
Normal file
15
gm/makeRasterImage.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2018 Google Inc.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include "Resources.h"
|
||||
#include "SkSurface.h"
|
||||
#include "gm.h"
|
||||
|
||||
DEF_SIMPLE_GM(makeRasterImage, canvas, 128,128) {
|
||||
auto img = GetResourceAsImage("images/color_wheel.png");
|
||||
canvas->drawImage(img->makeRasterImage(), 0,0);
|
||||
}
|
@ -204,6 +204,7 @@ gm_sources = [
|
||||
"$_gm/localmatriximageshader.cpp",
|
||||
"$_gm/lumafilter.cpp",
|
||||
"$_gm/makecolorspace.cpp",
|
||||
"$_gm/makeRasterImage.cpp",
|
||||
"$_gm/manypaths.cpp",
|
||||
"$_gm/matrixconvolution.cpp",
|
||||
"$_gm/matriximagefilter.cpp",
|
||||
|
@ -334,7 +334,7 @@ sk_sp<SkImage> SkImage::makeRasterImage() const {
|
||||
}
|
||||
|
||||
sk_sp<SkData> data = SkData::MakeUninitialized(size);
|
||||
pm = { info, data->writable_data(), info.minRowBytes() };
|
||||
pm = { info.makeColorSpace(nullptr), data->writable_data(), info.minRowBytes() };
|
||||
if (!this->readPixels(pm, 0, 0)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -211,9 +211,13 @@ bool SkImage_Gpu::onReadPixels(const SkImageInfo& dstInfo, void* dstPixels, size
|
||||
// with arbitrary color spaces. Unfortunately, this is one spot where we go from image to
|
||||
// surface (rather than the opposite), and our lenient image rules break our (currently) more
|
||||
// strict surface rules.
|
||||
// We treat null-dst color space as always equal to fColorSpace for this kind of read-back.
|
||||
sk_sp<SkColorSpace> surfaceColorSpace = fColorSpace;
|
||||
if (!flags && SkColorSpace::Equals(fColorSpace.get(), dstInfo.colorSpace())) {
|
||||
surfaceColorSpace = nullptr;
|
||||
if (!flags) {
|
||||
if (!dstInfo.colorSpace() ||
|
||||
SkColorSpace::Equals(fColorSpace.get(), dstInfo.colorSpace())) {
|
||||
surfaceColorSpace = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
sk_sp<GrSurfaceContext> sContext = fContext->contextPriv().makeWrappedSurfaceContext(
|
||||
|
Loading…
Reference in New Issue
Block a user