NavigaraNavigara
OrganizationsDistributionCompareResearch
NavigaraNavigara
OrganizationsDistributionCompareResearch
All developers

Christopher Cameron

Developer

Christopher Cameron

ccameron@chromium.org

59 commits~5 files/commit

Performance

2026Previous year

Insights

Key patterns and highlights from this developer's activity.

Peak MonthJan'26252 performance
Growth Trend↑587%vs prior period
Avg Files/Commit5files per commit
Active Days47of 455 days
Top Reposkia59 commits

Effort Over Time

Breakdown of growth, maintenance, and fixes effort over time.

Bug Behavior

Beta

Bugs introduced vs. fixed over time.

Investment Quality

Beta

Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.

54%Productive TimeGrowth 76% + Fixes 24%
36%Maintenance Time
10%Wasted Time
How it works

Methodology

Investment Quality reclassifies engineering effort based on bug attribution data. Commits identified as buggy origins (those that introduced bugs later fixed by someone) have their grow and maintenance time moved into the Wasted Time category. Their waste (fix commits) remains counted as productive. All other commits retain their standard classification: grow is productive, maintenance is maintenance, and waste (fixes) is productive.

Relationship to Growth / Maintenance / Fixes

The standard model classifies commits as Growth, Maintenance, or Fixes. Investment Quality adds a quality lens: a commit that introduced a bug is retrospectively counted as a poor investment — the engineering time spent on it was wasted because it ultimately required additional fix work. Fix commits (Fixes in the standard model) are reframed as productive, because fixing bugs is valuable work.

Proposed API Endpoint

Currently computed client-side from commit and bug attribution data. Ideal server-side endpoint:

POST /v1/organizations/{orgId}/investment-quality
Content-Type: application/json

Request:
{
  "startTime": "2025-01-01T00:00:00Z",
  "endTime": "2025-12-31T23:59:59Z",
  "bucketSize": "BUCKET_SIZE_MONTH",
  "groupBy": ["repository_id" | "deliverer_email"]
}

Response:
{
  "productivePct": 74,
  "maintenancePct": 18,
  "wastedPct": 8,
  "buckets": [
    {
      "bucketStart": "2025-01-01T00:00:00Z",
      "productive": 4.2,
      "maintenance": 1.8,
      "wasted": 0.6
    }
  ]
}

Recent Activity

Latest analyzed commits from this developer.

HashMessageDateFilesEffort
6e2c1ebThis commit **introduces a new fuzzer** specifically designed to test the **AdaptiveGlobalToneMap parsing logic**, focusing on the `parse` method. It **expands the fuzzing infrastructure** by adding `fuzz/oss_fuzz/FuzzHdrAgtm.cpp` to process and validate input data, ensuring the robustness of HDR tone mapping configuration handling. This **new capability** involves **integrating the fuzzer** into the build system via `BUILD.gn` and extending `fuzz/FuzzMain.cpp` to dispatch the new `hdr_agtm` fuzzer type. The primary goal is to proactively identify and prevent issues related to malformed or unexpected input within the **AdaptiveGlobalToneMap** component, thereby enhancing its stability and security.Mar 303grow
81ef223This commit delivers a **bug fix** and **robustness improvement** to the **`skhdr::AGTM` module's** implementation of **PCHIP slope computations** for SMPTE ST 2094-50. The `PopulateSlopeFromPCHIP` function in `src/codec/SkHdrAgtm.cpp` was updated to correctly handle repeated control points and various edge cases, including changing indices to signed integers as required by the specification. This ensures more accurate and reliable **HDR tone mapping** and metadata processing. New tests were added in `tests/HdrMetadataTest.cpp` to thoroughly validate these enhanced computations.Mar 242waste
9c227d1This commit **introduces a `uint16` interface** for the **`skhdr::ContentLightLevelInformation` structure**, adding helper functions like `getUint16MaxCLL` and `getUint16MaxFALL` in `include/private/SkHdrMetadata.h`. This **new capability** simplifies integration with CTA-defined libraries that expect integer-only Content Light Level Information, eliminating the need for frequent `float` to `uint16_t` casts. The `serialize` method in `src/codec/SkHdrMetadata.cpp` is **refactored** to utilize these new helpers, improving internal consistency. Ultimately, this change streamlines data access and **enhances the usability** of `SkHdrMetadata` for consumers requiring `uint16` representations.Mar 192grow
df5f123This commit delivers a **bug fix** addressing an **out-of-bounds read** vulnerability within the `SkJpegMultiPictureParameters::Make` function in `src/codec/SkJpegMultiPicture.cpp`. The issue arose from an overflow in bounds checking when processing `MPEntries` arrays, which could lead to crashes or incorrect data handling. The solution involves utilizing `SkSafeMath` for secure size calculations and ensuring that each `MPEntry` data subset is safely extracted, failing gracefully if the extraction is unsuccessful. This significantly enhances the **robustness and security** of the **JPEG multi-picture parameter parsing** subsystem.Mar 91waste
4ff32faThis commit **fixes a bug** in the **`skhdr::Agtm`** component by enforcing normalization of component mixing coefficients during parsing. Previously, various implementations used inconsistent "close enough to 1" thresholds, leading to potential inaccuracies. The `parse` function in `src/codec/SkHdrAgtmParse.cpp` now explicitly normalizes these coefficients to ensure they sum to 1, strictly adhering to the specification. This **maintenance** change guarantees **consistent and accurate HDR metadata processing**. A new `Mix-Normalization` test case in `tests/HdrMetadataTest.cpp` has been added to verify this correct normalization behavior.Feb 122waste
a4ed47cThis commit **introduces `kR16_float_SkColorType`**, a new single-channel half-float color type, which is more semantically appropriate for representing single-channel float16 data than `kA16_float_SkColorType`. This **new capability** involves comprehensive updates across **core Skia modules** such as `SkImageInfo`, `SkPixmap`, and `SkRasterPipeline` to correctly process this format. Furthermore, it extends support to **GPU rendering backends** for both Ganesh (D3D, GL, Metal, Vulkan) and Graphite (Dawn, Metal, Vulkan), ensuring seamless handling of R16F textures and operations. The change enables efficient and accurate processing of single-channel float16 data throughout the entire rendering pipeline, from pixel conversions to GPU texture management.Feb 940grow
2e456f4This commit introduces **new feature support** for the `kR8_unorm_SkColorType` across the **Direct3D** and **Metal GPU backends**. It updates `GrD3DCaps` and `GrMtlCaps` to correctly recognize `GrColorType::kR_8` with `DXGI_FORMAT_R8_UNORM` and `MTLPixelFormatR8Unorm` respectively, expanding the range of supported color formats for these platforms. Concurrently, a **bug fix** is applied to **Skia's core color handling** in `src/core/SkPixmap.cpp`. This fix corrects an erroneous scaling factor in `SkPixmap::getColor` and `SkPixmap::getColor4f` for `kR16G16_unorm_SkColorType`. The change ensures proper 16-bit color component conversion, preventing incorrect color values when retrieving pixel data and improving both **GPU rendering capabilities** and the **accuracy of color data retrieval** within Skia.Feb 33waste
6f9511cThis commit **enhances color type support** by adding recognition for `kR8_unorm_SkColorType` and `kR16_unorm_SkColorType`. The `SkYUVAPixmapInfo::NumChannelsAndDataType` function is updated to correctly identify channels and data types for `kR8_unorm_SkColorType`. Crucially, the **Vulkan backend** (`GrVkCaps`) now properly supports these new R-channel color types, including their Vulkan formats in `initFormatTable` and adding them to `getTestingCombinations`. This **feature enhancement** expands the range of supported pixel formats, particularly for **Vulkan rendering**, ensuring proper handling and testing of single-channel unorm textures.Jan 302grow
7578ad6This commit **enhances the robustness and compliance** of the `skhdr::AdaptiveGlobalToneMap` subsystem by **implementing comprehensive validation** for HDR metadata. New `Validate` functions in `src/codec/SkHdrAgtm.cpp` enforce normative constraints from ST 2094-50 CD2, rejecting invalid metadata during both serialization and deserialization within `src/codec/SkHdrAgtmParse.cpp`. Additionally, comments referencing specification clauses are updated in `src/codec/SkHdrAgtmPriv.h`, and the `tests/HdrMetadataTest.cpp` suite is expanded with new validation tests and improved serialization checks to ensure correct binary output and equivalence handling. This work ensures that the HDR tone mapping metadata strictly adheres to the specified standard, preventing malformed data from being processed.Jan 275grow
2512697This commit **updates the `skhdr::AdaptiveGlobalToneMap` component** to conform with the **2094-50 committee draft 2 specification**. It **modifies the encoding of control point Y values** in AGTM metadata from `[-12, 12]` to `[-6, 0]` or `[0, 6]`, and introduces separate `application_version` and `minimum_application_version` fields. This **spec compliance update** primarily affects the **parsing and serialization logic** within `src/codec/SkHdrAgtmParse.cpp`, ensuring accurate handling of AGTM data. The `parse_application_info`, `write_application_info`, `parse`, and `serialize` functions are specifically updated to reflect these changes. Corresponding **test cases** in `tests/HdrMetadataTest.cpp` have been adjusted to validate these updated encoding and decoding rules, maintaining data integrity.Jan 242grow
6060659This commit performs a **refactoring** of the **HDR metadata handling** within Skia by **removing the `skhdr::Agtm` interface**. The `Agtm` class definition, its implementation in `src/codec/SkHdrMetadata.cpp`, and corresponding tests in `tests/HdrMetadataTest.cpp` are eliminated, with the `Metadata` structure now exclusively using the `skhdr::AdaptiveGlobalToneMap` member. This **maintenance** effort streamlines the internal representation and access of adaptive global tone mapping parameters, ensuring consistency with the intended new interface for the `SkHdrMetadata` component.Jan 235maint
e3f6bfaThis commit provides a **bug fix** and **optimization** for the **Adaptive Global Tone Mapping (AGTM)** system within `skhdr::`. It resolves an issue where the gain curve parameters, stored in a texture, were using an F32 format that failed on real implementations, by switching to a more compatible **F16** texture format. Additionally, the commit **optimizes** resource usage by dynamically sizing this parameter texture in `MakeGainCurveXYMImage` to precisely match the number of images and control points, rather than a theoretical maximum. This improves the robustness and efficiency of AGTM processing.Jan 201waste
5cef23eThis commit **enhances the `skhdr::AdaptiveGlobalToneMap` structure** by introducing an `operator==` for robust comparison of its instances and related `SkHdrMetadata` structs. It also **refactors the initialization process** for `AdaptiveGlobalToneMap` and `HeadroomAdaptiveToneMap` to support **designated aggregate initialization**. This is achieved by removing explicit default constructors and providing default member values, making these **HDR metadata structures** easier and safer to instantiate. The changes simplify client code and tests, which are updated to leverage the new initialization pattern and implicitly verify the comparison operators.Jan 204maint
bc94efdThis commit **completes the shader implementation** for `skhdr::Metadata::makeToneMapColorFilter`, introducing **new capabilities** for **HDR content processing**. It now compensates for the input color space's white level by scaling colors in linear space to match the white level specified in AGTM metadata. Additionally, it implements **default RWTMO tone mapping** for PQ or HLG inputs, automatically deriving HDR headroom from CLLI or MDCV metadata when available. This enhancement to the **HDR rendering pipeline** within the `SkHdrAgtm` and `SkHdrMetadata` modules ensures more accurate and consistent display of HDR content.Jan 204grow
99ca068This commit **enhances the SkColorSpace core library** by introducing an `operator==` for the `SkColorSpacePrimaries` struct. This **new capability** allows for direct, semantic comparison of color space primary definitions, simplifying equality checks within the **color management subsystem**. The addition provides a convenient and robust way to determine if two `SkColorSpacePrimaries` instances represent the same set of color primaries, improving code clarity and maintainability. A corresponding release note documents this new API for users.Jan 154grow
b4b89d7This commit **enhances API consistency** and **facilitates Chromium integration** by adding and refactoring equality operators for several core Skia structures. It introduces a **new default `operator==`** for the `SkColorSpacePrimaries` struct within the **SkColorSpace module**, along with a macro `SKIA_COLOR_SPACE_PRIMARIES_OPERATOR_EQUAL` to signal its presence. Concurrently, it **refactors existing `operator==` implementations** for `ContentLightLevelInformation`, `MasteringDisplayColorVolume`, and nested structs in `AdaptiveGlobalToneMap` within the **SkHdrMetadata module** to use default definitions. This **maintenance and growth work** is crucial for **preventing compile errors during Chromium integration** and improves the overall usability of these data structures.Jan 156grow
50baf92This commit **refactors** the **Adaptive Global Tone Mapping (AGTM)** subsystem within the `skhdr` module, preparing for the removal of the `skhdr::Agtm` interface. It moves core helper functions, such as `ApplyGain` and `MakeColorFilter`, from `skhdr::AgtmImpl` into a new `skhdr::AgtmHelpers` namespace to improve modularity. Concurrently, **new capabilities** are introduced for **HDR metadata management** via `skhdr::Metadata::get/setAdaptiveGlobalToneMap` methods. A new helper, `AgtmHelpers::PopulateToneMapAgtmParams`, is added to facilitate default tone mapping for HDR content and adjust for reference white metadata, alongside a new `makeToneMapColorFilter` helper, enhancing the project's **HDR content processing** and **API evolution**.Jan 145maint
0b5631bThis commit performs **maintenance** and **refactoring** within the **Skia HDR metadata handling** by modifying the `skhdr::AdaptiveGlobalToneMap` structure. It **adds the `SK_API` macro** to several of its nested sub-structures in `include/private/SkHdrMetadata.h`, ensuring proper symbol export and API visibility for these components. Additionally, the commit **removes the declarations for `operator==` and `operator!=`** from these structures, as their implementations were missing, thus cleaning up the API surface without functional change. This work improves the **robustness and correctness of the Skia API** for HDR metadata, particularly for cross-module usage.Jan 131maint
8f31342This commit **fixes a bug** by adding the missing `SK_API` macro to the `AdaptiveGlobalToneMap` struct definition in `include/private/SkHdrMetadata.h`. This **maintenance change** ensures proper **API visibility** for the **HDR metadata handling** component within the `skhdr` namespace. By correctly marking the `AdaptiveGlobalToneMap` struct, it prevents potential **linking errors** for external consumers of the Skia library when built as a shared library, thereby improving the robustness of the Skia API.Jan 121maint
309216dThis commit introduces **public HDR metadata handling** by adding a new `AdaptiveGlobalToneMap` struct to `include/private/SkHdrMetadata.h`. This **new feature** provides essential methods like `parse` and `serialize` for representing and exchanging HDR metadata, specifically enabling **IPC serialization for Chrome**. Concurrently, it **refactors** the existing `skhdr::AdaptiveGlobalToneMap` by moving it to this private header and adds warnings about its impending removal. This change enhances Skia's ability to manage and communicate HDR display characteristics, with a direct impact on **Chrome's inter-process communication** of HDR data.Jan 92grow
6e2c1ebMar 30

This commit **introduces a new fuzzer** specifically designed to test the **AdaptiveGlobalToneMap parsing logic**, focusing on the `parse` method. It **expands the fuzzing infrastructure** by adding `fuzz/oss_fuzz/FuzzHdrAgtm.cpp` to process and validate input data, ensuring the robustness of HDR tone mapping configuration handling. This **new capability** involves **integrating the fuzzer** into the build system via `BUILD.gn` and extending `fuzz/FuzzMain.cpp` to dispatch the new `hdr_agtm` fuzzer type. The primary goal is to proactively identify and prevent issues related to malformed or unexpected input within the **AdaptiveGlobalToneMap** component, thereby enhancing its stability and security.

3 filesgrow
81ef223Mar 24

This commit delivers a **bug fix** and **robustness improvement** to the **`skhdr::AGTM` module's** implementation of **PCHIP slope computations** for SMPTE ST 2094-50. The `PopulateSlopeFromPCHIP` function in `src/codec/SkHdrAgtm.cpp` was updated to correctly handle repeated control points and various edge cases, including changing indices to signed integers as required by the specification. This ensures more accurate and reliable **HDR tone mapping** and metadata processing. New tests were added in `tests/HdrMetadataTest.cpp` to thoroughly validate these enhanced computations.

2 fileswaste
9c227d1Mar 19

This commit **introduces a `uint16` interface** for the **`skhdr::ContentLightLevelInformation` structure**, adding helper functions like `getUint16MaxCLL` and `getUint16MaxFALL` in `include/private/SkHdrMetadata.h`. This **new capability** simplifies integration with CTA-defined libraries that expect integer-only Content Light Level Information, eliminating the need for frequent `float` to `uint16_t` casts. The `serialize` method in `src/codec/SkHdrMetadata.cpp` is **refactored** to utilize these new helpers, improving internal consistency. Ultimately, this change streamlines data access and **enhances the usability** of `SkHdrMetadata` for consumers requiring `uint16` representations.

2 filesgrow
df5f123Mar 9

This commit delivers a **bug fix** addressing an **out-of-bounds read** vulnerability within the `SkJpegMultiPictureParameters::Make` function in `src/codec/SkJpegMultiPicture.cpp`. The issue arose from an overflow in bounds checking when processing `MPEntries` arrays, which could lead to crashes or incorrect data handling. The solution involves utilizing `SkSafeMath` for secure size calculations and ensuring that each `MPEntry` data subset is safely extracted, failing gracefully if the extraction is unsuccessful. This significantly enhances the **robustness and security** of the **JPEG multi-picture parameter parsing** subsystem.

1 fileswaste
4ff32faFeb 12

This commit **fixes a bug** in the **`skhdr::Agtm`** component by enforcing normalization of component mixing coefficients during parsing. Previously, various implementations used inconsistent "close enough to 1" thresholds, leading to potential inaccuracies. The `parse` function in `src/codec/SkHdrAgtmParse.cpp` now explicitly normalizes these coefficients to ensure they sum to 1, strictly adhering to the specification. This **maintenance** change guarantees **consistent and accurate HDR metadata processing**. A new `Mix-Normalization` test case in `tests/HdrMetadataTest.cpp` has been added to verify this correct normalization behavior.

2 fileswaste
a4ed47cFeb 9

This commit **introduces `kR16_float_SkColorType`**, a new single-channel half-float color type, which is more semantically appropriate for representing single-channel float16 data than `kA16_float_SkColorType`. This **new capability** involves comprehensive updates across **core Skia modules** such as `SkImageInfo`, `SkPixmap`, and `SkRasterPipeline` to correctly process this format. Furthermore, it extends support to **GPU rendering backends** for both Ganesh (D3D, GL, Metal, Vulkan) and Graphite (Dawn, Metal, Vulkan), ensuring seamless handling of R16F textures and operations. The change enables efficient and accurate processing of single-channel float16 data throughout the entire rendering pipeline, from pixel conversions to GPU texture management.

40 filesgrow
2e456f4Feb 3

This commit introduces **new feature support** for the `kR8_unorm_SkColorType` across the **Direct3D** and **Metal GPU backends**. It updates `GrD3DCaps` and `GrMtlCaps` to correctly recognize `GrColorType::kR_8` with `DXGI_FORMAT_R8_UNORM` and `MTLPixelFormatR8Unorm` respectively, expanding the range of supported color formats for these platforms. Concurrently, a **bug fix** is applied to **Skia's core color handling** in `src/core/SkPixmap.cpp`. This fix corrects an erroneous scaling factor in `SkPixmap::getColor` and `SkPixmap::getColor4f` for `kR16G16_unorm_SkColorType`. The change ensures proper 16-bit color component conversion, preventing incorrect color values when retrieving pixel data and improving both **GPU rendering capabilities** and the **accuracy of color data retrieval** within Skia.

3 fileswaste
6f9511cJan 30

This commit **enhances color type support** by adding recognition for `kR8_unorm_SkColorType` and `kR16_unorm_SkColorType`. The `SkYUVAPixmapInfo::NumChannelsAndDataType` function is updated to correctly identify channels and data types for `kR8_unorm_SkColorType`. Crucially, the **Vulkan backend** (`GrVkCaps`) now properly supports these new R-channel color types, including their Vulkan formats in `initFormatTable` and adding them to `getTestingCombinations`. This **feature enhancement** expands the range of supported pixel formats, particularly for **Vulkan rendering**, ensuring proper handling and testing of single-channel unorm textures.

2 filesgrow
7578ad6Jan 27

This commit **enhances the robustness and compliance** of the `skhdr::AdaptiveGlobalToneMap` subsystem by **implementing comprehensive validation** for HDR metadata. New `Validate` functions in `src/codec/SkHdrAgtm.cpp` enforce normative constraints from ST 2094-50 CD2, rejecting invalid metadata during both serialization and deserialization within `src/codec/SkHdrAgtmParse.cpp`. Additionally, comments referencing specification clauses are updated in `src/codec/SkHdrAgtmPriv.h`, and the `tests/HdrMetadataTest.cpp` suite is expanded with new validation tests and improved serialization checks to ensure correct binary output and equivalence handling. This work ensures that the HDR tone mapping metadata strictly adheres to the specified standard, preventing malformed data from being processed.

5 filesgrow
2512697Jan 24

This commit **updates the `skhdr::AdaptiveGlobalToneMap` component** to conform with the **2094-50 committee draft 2 specification**. It **modifies the encoding of control point Y values** in AGTM metadata from `[-12, 12]` to `[-6, 0]` or `[0, 6]`, and introduces separate `application_version` and `minimum_application_version` fields. This **spec compliance update** primarily affects the **parsing and serialization logic** within `src/codec/SkHdrAgtmParse.cpp`, ensuring accurate handling of AGTM data. The `parse_application_info`, `write_application_info`, `parse`, and `serialize` functions are specifically updated to reflect these changes. Corresponding **test cases** in `tests/HdrMetadataTest.cpp` have been adjusted to validate these updated encoding and decoding rules, maintaining data integrity.

2 filesgrow
6060659Jan 23

This commit performs a **refactoring** of the **HDR metadata handling** within Skia by **removing the `skhdr::Agtm` interface**. The `Agtm` class definition, its implementation in `src/codec/SkHdrMetadata.cpp`, and corresponding tests in `tests/HdrMetadataTest.cpp` are eliminated, with the `Metadata` structure now exclusively using the `skhdr::AdaptiveGlobalToneMap` member. This **maintenance** effort streamlines the internal representation and access of adaptive global tone mapping parameters, ensuring consistency with the intended new interface for the `SkHdrMetadata` component.

5 filesmaint
e3f6bfaJan 20

This commit provides a **bug fix** and **optimization** for the **Adaptive Global Tone Mapping (AGTM)** system within `skhdr::`. It resolves an issue where the gain curve parameters, stored in a texture, were using an F32 format that failed on real implementations, by switching to a more compatible **F16** texture format. Additionally, the commit **optimizes** resource usage by dynamically sizing this parameter texture in `MakeGainCurveXYMImage` to precisely match the number of images and control points, rather than a theoretical maximum. This improves the robustness and efficiency of AGTM processing.

1 fileswaste
5cef23eJan 20

This commit **enhances the `skhdr::AdaptiveGlobalToneMap` structure** by introducing an `operator==` for robust comparison of its instances and related `SkHdrMetadata` structs. It also **refactors the initialization process** for `AdaptiveGlobalToneMap` and `HeadroomAdaptiveToneMap` to support **designated aggregate initialization**. This is achieved by removing explicit default constructors and providing default member values, making these **HDR metadata structures** easier and safer to instantiate. The changes simplify client code and tests, which are updated to leverage the new initialization pattern and implicitly verify the comparison operators.

4 filesmaint
bc94efdJan 20

This commit **completes the shader implementation** for `skhdr::Metadata::makeToneMapColorFilter`, introducing **new capabilities** for **HDR content processing**. It now compensates for the input color space's white level by scaling colors in linear space to match the white level specified in AGTM metadata. Additionally, it implements **default RWTMO tone mapping** for PQ or HLG inputs, automatically deriving HDR headroom from CLLI or MDCV metadata when available. This enhancement to the **HDR rendering pipeline** within the `SkHdrAgtm` and `SkHdrMetadata` modules ensures more accurate and consistent display of HDR content.

4 filesgrow
99ca068Jan 15

This commit **enhances the SkColorSpace core library** by introducing an `operator==` for the `SkColorSpacePrimaries` struct. This **new capability** allows for direct, semantic comparison of color space primary definitions, simplifying equality checks within the **color management subsystem**. The addition provides a convenient and robust way to determine if two `SkColorSpacePrimaries` instances represent the same set of color primaries, improving code clarity and maintainability. A corresponding release note documents this new API for users.

4 filesgrow
b4b89d7Jan 15

This commit **enhances API consistency** and **facilitates Chromium integration** by adding and refactoring equality operators for several core Skia structures. It introduces a **new default `operator==`** for the `SkColorSpacePrimaries` struct within the **SkColorSpace module**, along with a macro `SKIA_COLOR_SPACE_PRIMARIES_OPERATOR_EQUAL` to signal its presence. Concurrently, it **refactors existing `operator==` implementations** for `ContentLightLevelInformation`, `MasteringDisplayColorVolume`, and nested structs in `AdaptiveGlobalToneMap` within the **SkHdrMetadata module** to use default definitions. This **maintenance and growth work** is crucial for **preventing compile errors during Chromium integration** and improves the overall usability of these data structures.

6 filesgrow
50baf92Jan 14

This commit **refactors** the **Adaptive Global Tone Mapping (AGTM)** subsystem within the `skhdr` module, preparing for the removal of the `skhdr::Agtm` interface. It moves core helper functions, such as `ApplyGain` and `MakeColorFilter`, from `skhdr::AgtmImpl` into a new `skhdr::AgtmHelpers` namespace to improve modularity. Concurrently, **new capabilities** are introduced for **HDR metadata management** via `skhdr::Metadata::get/setAdaptiveGlobalToneMap` methods. A new helper, `AgtmHelpers::PopulateToneMapAgtmParams`, is added to facilitate default tone mapping for HDR content and adjust for reference white metadata, alongside a new `makeToneMapColorFilter` helper, enhancing the project's **HDR content processing** and **API evolution**.

5 filesmaint
0b5631bJan 13

This commit performs **maintenance** and **refactoring** within the **Skia HDR metadata handling** by modifying the `skhdr::AdaptiveGlobalToneMap` structure. It **adds the `SK_API` macro** to several of its nested sub-structures in `include/private/SkHdrMetadata.h`, ensuring proper symbol export and API visibility for these components. Additionally, the commit **removes the declarations for `operator==` and `operator!=`** from these structures, as their implementations were missing, thus cleaning up the API surface without functional change. This work improves the **robustness and correctness of the Skia API** for HDR metadata, particularly for cross-module usage.

1 filesmaint
8f31342Jan 12

This commit **fixes a bug** by adding the missing `SK_API` macro to the `AdaptiveGlobalToneMap` struct definition in `include/private/SkHdrMetadata.h`. This **maintenance change** ensures proper **API visibility** for the **HDR metadata handling** component within the `skhdr` namespace. By correctly marking the `AdaptiveGlobalToneMap` struct, it prevents potential **linking errors** for external consumers of the Skia library when built as a shared library, thereby improving the robustness of the Skia API.

1 filesmaint
309216dJan 9

This commit introduces **public HDR metadata handling** by adding a new `AdaptiveGlobalToneMap` struct to `include/private/SkHdrMetadata.h`. This **new feature** provides essential methods like `parse` and `serialize` for representing and exchanging HDR metadata, specifically enabling **IPC serialization for Chrome**. Concurrently, it **refactors** the existing `skhdr::AdaptiveGlobalToneMap` by moving it to this private header and adds warnings about its impending removal. This change enhances Skia's ability to manage and communicate HDR display characteristics, with a direct impact on **Chrome's inter-process communication** of HDR data.

2 filesgrow

Work Patterns

Beta

Commit activity distribution by hour and day of week. Shows when this developer is most active.

Collaboration

Beta

Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.

NavigaraNavigara
OrganizationsDistributionCompareResearch