summaryrefslogtreecommitdiff
path: root/src/helpers
diff options
context:
space:
mode:
authorUjinT34 <41110182+UjinT34@users.noreply.github.com>2026-03-26 02:48:06 +0300
committerGitHub <noreply@github.com>2026-03-25 23:48:06 +0000
commit2e5e800e4b334240689df5a4c2c4607f751da908 (patch)
treec20aeda15d3641692f274a65a5e1956a3a653c7a /src/helpers
parent8196711aaa78c8f62e6f720636ef707783685036 (diff)
renderer/cm: Support wp-cm-v1 version 2 (#12817)
Diffstat (limited to 'src/helpers')
-rw-r--r--src/helpers/cm/ColorManagement.cpp6
-rw-r--r--src/helpers/cm/ColorManagement.hpp20
2 files changed, 16 insertions, 10 deletions
diff --git a/src/helpers/cm/ColorManagement.cpp b/src/helpers/cm/ColorManagement.cpp
index bac9f25a..829adbe7 100644
--- a/src/helpers/cm/ColorManagement.cpp
+++ b/src/helpers/cm/ColorManagement.cpp
@@ -72,7 +72,7 @@ const Hyprgraphics::CMatrix3& CPrimaries::convertMatrix(const WP<const CPrimarie
return primariesConversion[cacheKey];
}
-CImageDescription::CImageDescription(const SImageDescription& imageDescription, const uint32_t imageDescriptionId) :
+CImageDescription::CImageDescription(const SImageDescription& imageDescription, const uint64_t imageDescriptionId) :
m_id(imageDescriptionId), m_imageDescription(imageDescription) {
m_primariesId = CPrimaries::from(m_imageDescription.getPrimaries())->id();
}
@@ -87,7 +87,7 @@ PImageDescription CImageDescription::from(const SImageDescription& imageDescript
return knownDescriptions.back();
}
-PImageDescription CImageDescription::from(const uint32_t imageDescriptionId) {
+PImageDescription CImageDescription::from(const uint64_t imageDescriptionId) {
ASSERT(imageDescriptionId <= knownDescriptions.size());
return knownDescriptions[imageDescriptionId - 1];
}
@@ -102,7 +102,7 @@ const SImageDescription& CImageDescription::value() const {
return m_imageDescription;
}
-uint CImageDescription::id() const {
+uint64_t CImageDescription::id() const {
return m_id;
}
diff --git a/src/helpers/cm/ColorManagement.hpp b/src/helpers/cm/ColorManagement.hpp
index 0103e2a4..0bb80f42 100644
--- a/src/helpers/cm/ColorManagement.hpp
+++ b/src/helpers/cm/ColorManagement.hpp
@@ -65,10 +65,16 @@ namespace NColorManagement {
return sc<ePrimaries>(primaries);
}
inline wpColorManagerV1TransferFunction convertTransferFunction(eTransferFunction tf) {
- return sc<wpColorManagerV1TransferFunction>(tf);
+ switch (tf) {
+ case CM_TRANSFER_FUNCTION_SRGB: return WP_COLOR_MANAGER_V1_TRANSFER_FUNCTION_COMPOUND_POWER_2_4;
+ default: return sc<wpColorManagerV1TransferFunction>(tf);
+ }
}
inline eTransferFunction convertTransferFunction(wpColorManagerV1TransferFunction tf) {
- return sc<eTransferFunction>(tf);
+ switch (tf) {
+ case WP_COLOR_MANAGER_V1_TRANSFER_FUNCTION_COMPOUND_POWER_2_4: return CM_TRANSFER_FUNCTION_SRGB;
+ default: return sc<eTransferFunction>(tf);
+ }
}
using SPCPRimaries = Hyprgraphics::SPCPRimaries;
@@ -304,19 +310,19 @@ namespace NColorManagement {
class CImageDescription {
public:
static WP<const CImageDescription> from(const SImageDescription& imageDescription);
- static WP<const CImageDescription> from(const uint32_t imageDescriptionId);
+ static WP<const CImageDescription> from(const uint64_t imageDescriptionId);
WP<const CImageDescription> with(const SImageDescription::SPCLuminances& luminances) const;
const SImageDescription& value() const;
- uint32_t id() const;
+ uint64_t id() const;
WP<const CPrimaries> getPrimaries() const;
private:
- CImageDescription(const SImageDescription& imageDescription, const uint imageDescriptionId);
- uint32_t m_id = 0;
- uint32_t m_primariesId = 0;
+ CImageDescription(const SImageDescription& imageDescription, const uint64_t imageDescriptionId);
+ uint64_t m_id = 0;
+ uint m_primariesId = 0;
SImageDescription m_imageDescription;
};