aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--dm/DMGpuSupport.h3
-rw-r--r--gm/dftext.cpp5
-rw-r--r--gm/surface.cpp10
-rw-r--r--gm/textblobgeometrychange.cpp5
-rw-r--r--gm/textblobmixedsizes.cpp5
-rw-r--r--gm/textblobrandomfont.cpp5
-rw-r--r--include/core/SkSurfaceProps.h12
-rw-r--r--src/gpu/GrContext.cpp4
-rw-r--r--src/views/SkWindow.cpp8
-rw-r--r--tests/SRGBMipMapTest.cpp13
-rw-r--r--tools/skiaserve/Request.cpp16
-rwxr-xr-xtools/viewer/sk_app/WindowContext.cpp11
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);
}
}