SampleApp now displays gamma-correct content in "S32" and "F16" modes. The default...
authorbrianosman <brianosman@google.com>
Tue, 1 Mar 2016 15:19:11 +0000 (07:19 -0800)
committerCommit bot <commit-bot@chromium.org>
Tue, 1 Mar 2016 15:19:11 +0000 (07:19 -0800)
NOte: Angle does not display correctly, due to limitations in the set of ES2 extensions it exposes. However, it can still be used to generate gamma-correct images (via DM, etc...).

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1752473002

Review URL: https://codereview.chromium.org/1752473002

src/views/SkWindow.cpp

index ebe56b0e9561d50ebb5eeb7dc2817d297d578f77..82c1a43c0a5599475a7747ebfe5bce28e54d2296 100644 (file)
@@ -326,7 +326,13 @@ GrRenderTarget* SkWindow::renderTarget(const AttachmentInfo& attachmentInfo,
     GrBackendRenderTargetDesc desc;
     desc.fWidth = SkScalarRoundToInt(this->width());
     desc.fHeight = SkScalarRoundToInt(this->height());
-    desc.fConfig = kSkia8888_GrPixelConfig;
+    // TODO: Query the actual framebuffer for sRGB capable. However, to
+    // preserve old (fake-linear) behavior, we don't do this. Instead, rely
+    // on the flag (currently driven via 'C' mode in SampleApp).
+    desc.fConfig = (info().profileType() == kSRGB_SkColorProfileType ||
+                    info().colorType() == kRGBA_F16_SkColorType)
+        ? kSRGBA_8888_GrPixelConfig // This may not be the right byte-order
+        : kSkia8888_GrPixelConfig;
     desc.fOrigin = kBottomLeft_GrSurfaceOrigin;
     desc.fSampleCnt = attachmentInfo.fSampleCount;
     desc.fStencilBits = attachmentInfo.fStencilBits;