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

Unified Diff: ui/gfx/color_space.h

Issue 2728173004: HDR: Do nonlinear blending in the compositor (Closed)
Patch Set: Fix windows build Created 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/compositor/test/in_process_context_factory.h ('k') | ui/gfx/color_space.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gfx/color_space.h
diff --git a/ui/gfx/color_space.h b/ui/gfx/color_space.h
index 138de565f5d02802ad33a087649104c68a114a0e..cad6165f26c5330e5ec0fd06763a24322041fdf5 100644
--- a/ui/gfx/color_space.h
+++ b/ui/gfx/color_space.h
@@ -63,12 +63,15 @@ class GFX_EXPORT ColorSpace {
BT2020_12,
SMPTEST2084,
SMPTEST428_1,
- ARIB_STD_B67, // // AKA hybrid-log gamma, HLG.
+ ARIB_STD_B67, // AKA hybrid-log gamma, HLG.
// This is an ad-hoc transfer function that decodes SMPTE 2084 content
- // into a 0-1 range more or less suitable for viewing on a non-hdr
+ // into a [0, 1] range more or less suitable for viewing on a non-hdr
// display.
SMPTEST2084_NON_HDR,
- // Like LINEAR, but intended for HDR. (can go outside of 0-1)
+ // The same as IEC61966_2_1 on the interval [0, 1], with the nonlinear
+ // segment continuing beyond 1 and point symmetry defining values below 0.
+ IEC61966_2_1_HDR,
+ // The same as LINEAR but is defined for all real values.
LINEAR_HDR,
CUSTOM,
LAST = CUSTOM,
@@ -124,11 +127,15 @@ class GFX_EXPORT ColorSpace {
static ColorSpace CreateSRGB();
static ColorSpace CreateCustom(const SkMatrix44& to_XYZD50,
const SkColorSpaceTransferFn& fn);
- // scRGB is like RGB, but linear and values outside of 0-1 are allowed.
- // scRGB is normally used with fp16 textures.
- static ColorSpace CreateSCRGBLinear();
static ColorSpace CreateXYZD50();
+ // Extended sRGB matches sRGB for values in [0, 1], and extends the transfer
+ // function to all real values.
+ static ColorSpace CreateExtendedSRGB();
+ // scRGB uses the same primaries as sRGB but has a linear transfer function
+ // for all real values.
+ static ColorSpace CreateSCRGBLinear();
+
// TODO: Remove these, and replace with more generic constructors.
static ColorSpace CreateJpeg();
static ColorSpace CreateREC601();
@@ -165,6 +172,10 @@ class GFX_EXPORT ColorSpace {
void GetRangeAdjustMatrix(SkMatrix44* matrix) const;
private:
+ // Returns true if the transfer function is defined by an
+ // SkColorSpaceTransferFn which is extended to all real values.
+ bool HasExtendedSkTransferFn() const;
+
PrimaryID primaries_ = PrimaryID::INVALID;
TransferID transfer_ = TransferID::INVALID;
MatrixID matrix_ = MatrixID::INVALID;
« no previous file with comments | « ui/compositor/test/in_process_context_factory.h ('k') | ui/gfx/color_space.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698