diff options
-rw-r--r-- | dm/DMGpuSupport.h | 3 | ||||
-rw-r--r-- | gm/dftext.cpp | 5 | ||||
-rw-r--r-- | gm/surface.cpp | 10 | ||||
-rw-r--r-- | gm/textblobgeometrychange.cpp | 5 | ||||
-rw-r--r-- | gm/textblobmixedsizes.cpp | 5 | ||||
-rw-r--r-- | gm/textblobrandomfont.cpp | 5 | ||||
-rw-r--r-- | include/core/SkSurfaceProps.h | 12 | ||||
-rw-r--r-- | src/gpu/GrContext.cpp | 4 | ||||
-rw-r--r-- | src/views/SkWindow.cpp | 8 | ||||
-rw-r--r-- | tests/SRGBMipMapTest.cpp | 13 | ||||
-rw-r--r-- | tools/skiaserve/Request.cpp | 16 | ||||
-rwxr-xr-x | tools/viewer/sk_app/WindowContext.cpp | 11 |
12 files changed, 17 insertions, 80 deletions
diff --git a/dm/DMGpuSupport.h b/dm/DMGpuSupport.h index 742ec189a5..1ea51d2621 100644 --- a/dm/DMGpuSupport.h +++ b/dm/DMGpuSupport.h @@ -36,9 +36,6 @@ static inline sk_sp<SkSurface> NewGpuSurface( int samples, bool useDIText) { uint32_t flags = useDIText ? SkSurfaceProps::kUseDeviceIndependentFonts_Flag : 0; - if (SkImageInfoIsGammaCorrect(info)) { - flags |= SkSurfaceProps::kGammaCorrect_Flag; - } SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType); return SkSurface::MakeRenderTarget(grFactory->get(type, options), SkBudgeted::kNo, info, samples, &props); diff --git a/gm/dftext.cpp b/gm/dftext.cpp index 8ab2df71ba..f1b972892e 100644 --- a/gm/dftext.cpp +++ b/gm/dftext.cpp @@ -43,10 +43,7 @@ protected: SkISize size = onISize(); SkImageInfo info = SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType, sk_ref_sp(inputCanvas->imageInfo().colorSpace())); - SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType); - uint32_t gammaCorrect = inputCanvas->getProps(&canvasProps) - ? canvasProps.flags() & SkSurfaceProps::kGammaCorrect_Flag : 0; - SkSurfaceProps props(SkSurfaceProps::kUseDeviceIndependentFonts_Flag | gammaCorrect, + SkSurfaceProps props(SkSurfaceProps::kUseDeviceIndependentFonts_Flag, SkSurfaceProps::kLegacyFontHost_InitType); auto surface(SkSurface::MakeRenderTarget(ctx, SkBudgeted::kNo, info, 0, &props)); SkCanvas* canvas = surface ? surface->getCanvas() : inputCanvas; diff --git a/gm/surface.cpp b/gm/surface.cpp index bae77c5594..6846f727e2 100644 --- a/gm/surface.cpp +++ b/gm/surface.cpp @@ -22,7 +22,7 @@ static sk_sp<SkShader> make_shader() { } static sk_sp<SkSurface> make_surface(GrContext* ctx, const SkImageInfo& info, SkPixelGeometry geo, - int disallowAA, int disallowDither, bool gammaCorrect) { + int disallowAA, int disallowDither) { uint32_t flags = 0; if (disallowAA) { flags |= SkSurfaceProps::kDisallowAntiAlias_Flag; @@ -30,9 +30,6 @@ static sk_sp<SkSurface> make_surface(GrContext* ctx, const SkImageInfo& info, Sk if (disallowDither) { flags |= SkSurfaceProps::kDisallowDither_Flag; } - if (gammaCorrect) { - flags |= SkSurfaceProps::kGammaCorrect_Flag; - } SkSurfaceProps props(flags, geo); if (ctx) { @@ -79,8 +76,6 @@ protected: // must be opaque to have a hope of testing LCD text const SkImageInfo info = SkImageInfo::MakeN32(W, H, kOpaque_SkAlphaType, sk_ref_sp(canvas->imageInfo().colorSpace())); - SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType); - bool gammaCorrect = canvas->getProps(&canvasProps) && canvasProps.isGammaCorrect(); const struct { SkPixelGeometry fGeo; @@ -98,8 +93,7 @@ protected: for (int disallowDither = 0; disallowDither <= 1; ++disallowDither) { SkScalar y = 0; for (const auto& rec : recs) { - auto surface(make_surface(ctx, info, rec.fGeo, disallowAA, disallowDither, - gammaCorrect)); + auto surface(make_surface(ctx, info, rec.fGeo, disallowAA, disallowDither)); if (!surface) { SkDebugf("failed to create surface! label: %s AA: %s dither: %s\n", rec.fLabel, (disallowAA == 1 ? "disallowed" : "allowed"), diff --git a/gm/textblobgeometrychange.cpp b/gm/textblobgeometrychange.cpp index a241c5c7ba..1b7bff319d 100644 --- a/gm/textblobgeometrychange.cpp +++ b/gm/textblobgeometrychange.cpp @@ -44,10 +44,7 @@ protected: SkImageInfo info = SkImageInfo::MakeN32(200, 200, kPremul_SkAlphaType, sk_ref_sp(canvas->imageInfo().colorSpace())); - SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType); - uint32_t gammaCorrect = canvas->getProps(&canvasProps) - ? canvasProps.flags() & SkSurfaceProps::kGammaCorrect_Flag : 0; - SkSurfaceProps props(gammaCorrect, kUnknown_SkPixelGeometry); + SkSurfaceProps props(0, kUnknown_SkPixelGeometry); auto surface = canvas->makeSurface(info, &props); if (!surface) { surface = SkSurface::MakeRaster(info, &props); diff --git a/gm/textblobmixedsizes.cpp b/gm/textblobmixedsizes.cpp index 8fdf558206..4e3f0eaeb5 100644 --- a/gm/textblobmixedsizes.cpp +++ b/gm/textblobmixedsizes.cpp @@ -106,10 +106,7 @@ protected: sk_sp<SkColorSpace> colorSpace = sk_ref_sp(inputCanvas->imageInfo().colorSpace()); SkImageInfo info = SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType, colorSpace); - SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType); - uint32_t gammaCorrect = inputCanvas->getProps(&canvasProps) - ? canvasProps.flags() & SkSurfaceProps::kGammaCorrect_Flag : 0; - SkSurfaceProps props(SkSurfaceProps::kUseDeviceIndependentFonts_Flag | gammaCorrect, + SkSurfaceProps props(SkSurfaceProps::kUseDeviceIndependentFonts_Flag, SkSurfaceProps::kLegacyFontHost_InitType); surface = SkSurface::MakeRenderTarget(ctx, SkBudgeted::kNo, info, 0, &props); canvas = surface.get() ? surface->getCanvas() : inputCanvas; diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp index 58f0dc6bd6..2e8249fc2c 100644 --- a/gm/textblobrandomfont.cpp +++ b/gm/textblobrandomfont.cpp @@ -99,10 +99,7 @@ protected: SkImageInfo info = SkImageInfo::MakeN32(kWidth, kHeight, kPremul_SkAlphaType, sk_ref_sp(canvas->imageInfo().colorSpace())); - SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType); - uint32_t gammaCorrect = canvas->getProps(&canvasProps) - ? canvasProps.flags() & SkSurfaceProps::kGammaCorrect_Flag : 0; - SkSurfaceProps props(gammaCorrect, kUnknown_SkPixelGeometry); + SkSurfaceProps props(0, kUnknown_SkPixelGeometry); auto surface(canvas->makeSurface(info, &props)); if (surface) { SkPaint paint; diff --git a/include/core/SkSurfaceProps.h b/include/core/SkSurfaceProps.h index 7f56147397..735561f1dc 100644 --- a/include/core/SkSurfaceProps.h +++ b/include/core/SkSurfaceProps.h @@ -54,17 +54,6 @@ public: kDisallowAntiAlias_Flag = 1 << 0, kDisallowDither_Flag = 1 << 1, kUseDeviceIndependentFonts_Flag = 1 << 2, - - /** - * This flag causes sRGB inputs to the color pipeline (images and other sRGB-tagged - * colors) to be gamma-corrected (converted to linear) before use. Without this flag, - * texture scaling and filtering is not gamma correct, preserving the behavior of Skia - * up through 2015. - * - * It is recommended to enable this flag when rendering to an sRGB or floating point - * surface. - */ - kGammaCorrect_Flag = 1 << 3, }; /** Deprecated alias used by Chromium. Will be removed. */ static const Flags kUseDistanceFieldFonts_Flag = kUseDeviceIndependentFonts_Flag; @@ -86,7 +75,6 @@ public: bool isUseDeviceIndependentFonts() const { return SkToBool(fFlags & kUseDeviceIndependentFonts_Flag); } - bool isGammaCorrect() const { return SkToBool(fFlags & kGammaCorrect_Flag); } private: SkSurfaceProps(); diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp index 5a5173c530..457e33b99a 100644 --- a/src/gpu/GrContext.cpp +++ b/src/gpu/GrContext.cpp @@ -539,10 +539,8 @@ bool GrContext::applyGamma(GrRenderTarget* dst, GrTexture* src, SkScalar gamma){ return false; } - SkSurfaceProps props(SkSurfaceProps::kGammaCorrect_Flag, - SkSurfaceProps::kLegacyFontHost_InitType); // TODO: Supply color space? - sk_sp<GrDrawContext> drawContext(this->drawContext(sk_ref_sp(dst), nullptr, &props)); + sk_sp<GrDrawContext> drawContext(this->drawContext(sk_ref_sp(dst), nullptr)); if (!drawContext) { return false; } diff --git a/src/views/SkWindow.cpp b/src/views/SkWindow.cpp index 9165c08ebe..a1af704442 100644 --- a/src/views/SkWindow.cpp +++ b/src/views/SkWindow.cpp @@ -70,14 +70,6 @@ void SkWindow::resize(int width, int height) { void SkWindow::setColorType(SkColorType ct, sk_sp<SkColorSpace> cs) { const SkImageInfo& info = fBitmap.info(); this->resize(SkImageInfo::Make(info.width(), info.height(), ct, kPremul_SkAlphaType, cs)); - - // Set the global flag that enables or disables "legacy" mode, depending on our format. - // With sRGB 32-bit or linear FP 16, we turn on gamma-correct handling of inputs: - SkSurfaceProps props = this->getSurfaceProps(); - uint32_t flags = (props.flags() & ~SkSurfaceProps::kGammaCorrect_Flag) | - (SkColorAndColorSpaceAreGammaCorrect(ct, cs.get()) - ? SkSurfaceProps::kGammaCorrect_Flag : 0); - this->setSurfaceProps(SkSurfaceProps(flags, props.pixelGeometry())); } bool SkWindow::handleInval(const SkRect* localR) { diff --git a/tests/SRGBMipMapTest.cpp b/tests/SRGBMipMapTest.cpp index f798119ad5..12f23adbbf 100644 --- a/tests/SRGBMipMapTest.cpp +++ b/tests/SRGBMipMapTest.cpp @@ -120,22 +120,13 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SRGBMipMaps, reporter, ctxInfo) { SkAutoTUnref<GrTexture> texture(texProvider->createTexture(desc, SkBudgeted::kNo, texData, 0)); // Create two draw contexts (L32 and S32) - SkSurfaceProps l32Props(SkSurfaceProps::kLegacyFontHost_InitType); - SkSurfaceProps s32Props(SkSurfaceProps::kGammaCorrect_Flag, - SkSurfaceProps::kLegacyFontHost_InitType); sk_sp<SkColorSpace> srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); sk_sp<GrDrawContext> l32DrawContext = context->newDrawContext(SkBackingFit::kExact, rtS, rtS, kSkia8888_GrPixelConfig, - nullptr, - 0, - kDefault_GrSurfaceOrigin, - &l32Props); + nullptr); sk_sp<GrDrawContext> s32DrawContext = context->newDrawContext(SkBackingFit::kExact, rtS, rtS, kSkiaGamma8888_GrPixelConfig, - std::move(srgbColorSpace), - 0, - kDefault_GrSurfaceOrigin, - &s32Props); + std::move(srgbColorSpace)); SkRect rect = SkRect::MakeWH(SkIntToScalar(rtS), SkIntToScalar(rtS)); GrNoClip noClip; diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp index f61ed5554a..edc0a6820b 100644 --- a/tools/skiaserve/Request.cpp +++ b/tools/skiaserve/Request.cpp @@ -161,13 +161,12 @@ namespace { struct ColorAndProfile { SkColorType fColorType; bool fSRGB; - bool fGammaCorrect; }; ColorAndProfile ColorModes[] = { - { kN32_SkColorType, false, false }, - { kN32_SkColorType, true, true }, - { kRGBA_F16_SkColorType, true, true }, + { kN32_SkColorType, false }, + { kN32_SkColorType, true }, + { kRGBA_F16_SkColorType, true }, }; } @@ -178,9 +177,7 @@ SkSurface* Request::createCPUSurface() { auto srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); SkImageInfo info = SkImageInfo::Make(bounds.width(), bounds.height(), cap.fColorType, kPremul_SkAlphaType, cap.fSRGB ? srgbColorSpace : nullptr); - uint32_t flags = cap.fGammaCorrect ? SkSurfaceProps::kGammaCorrect_Flag : 0; - SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType); - return SkSurface::MakeRaster(info, &props).release(); + return SkSurface::MakeRaster(info).release(); } SkSurface* Request::createGPUSurface() { @@ -190,10 +187,7 @@ SkSurface* Request::createGPUSurface() { auto srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named); SkImageInfo info = SkImageInfo::Make(bounds.width(), bounds.height(), cap.fColorType, kPremul_SkAlphaType, cap.fSRGB ? srgbColorSpace : nullptr); - uint32_t flags = cap.fGammaCorrect ? SkSurfaceProps::kGammaCorrect_Flag : 0; - SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType); - SkSurface* surface = SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, info, 0, - &props).release(); + SkSurface* surface = SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, info).release(); return surface; } diff --git a/tools/viewer/sk_app/WindowContext.cpp b/tools/viewer/sk_app/WindowContext.cpp index 5d364bc497..458f66a67b 100755 --- a/tools/viewer/sk_app/WindowContext.cpp +++ b/tools/viewer/sk_app/WindowContext.cpp @@ -31,11 +31,6 @@ sk_sp<SkSurface> WindowContext::createRenderSurface(GrBackendRenderTargetDesc de sk_sp<SkSurface> WindowContext::createSurface( GrBackendRenderTargetDesc* rtDesc, int colorBits, bool offscreen, bool forceSRGB) { - auto flags = (fSurfaceProps.flags() & ~SkSurfaceProps::kGammaCorrect_Flag) | - (GrPixelConfigIsSRGB(fPixelConfig) || forceSRGB ? - SkSurfaceProps::kGammaCorrect_Flag : 0); - SkSurfaceProps props(flags, fSurfaceProps.pixelGeometry()); - if (!this->isGpuContext() || colorBits > 24 || offscreen || kRGBA_F16_SkColorType == fDisplayParams.fColorType) { // If we're rendering to F16, we need an off-screen surface - the current render @@ -52,12 +47,12 @@ sk_sp<SkSurface> WindowContext::createSurface( ); if (this->isGpuContext()) { return SkSurface::MakeRenderTarget(fContext, SkBudgeted::kNo, info, - fDisplayParams.fMSAASampleCount, &props); + fDisplayParams.fMSAASampleCount, &fSurfaceProps); } else { - return SkSurface::MakeRaster(info, &props); + return SkSurface::MakeRaster(info, &fSurfaceProps); } } else { - return SkSurface::MakeFromBackendRenderTarget(fContext, *rtDesc, &props); + return SkSurface::MakeFromBackendRenderTarget(fContext, *rtDesc, &fSurfaceProps); } } |