mirror of
https://github.com/hyprwm/aquamarine.git
synced 2026-05-09 07:38:08 +02:00
output: use bool instead of optional to not break API
use bool instead of std::optional to not break API.
This commit is contained in:
parent
81598c2291
commit
156ddca90f
3 changed files with 13 additions and 10 deletions
|
|
@ -76,10 +76,12 @@ namespace Aquamarine {
|
|||
uint32_t drmFormat = DRM_FORMAT_INVALID;
|
||||
Hyprutils::Memory::CSharedPointer<IBuffer> buffer;
|
||||
int32_t explicitInFence = -1, explicitOutFence = -1;
|
||||
std::optional<Hyprutils::Math::Mat3x3> ctm;
|
||||
Hyprutils::Math::Mat3x3 ctm;
|
||||
bool hasCtm = false;
|
||||
bool wideColorGamut = false;
|
||||
std::optional<hdr_output_metadata> hdrMetadata;
|
||||
uint16_t contentType = DRM_MODE_CONTENT_TYPE_GRAPHICS;
|
||||
hdr_output_metadata hdrMetadata;
|
||||
bool hasHdrMetadata = false;
|
||||
uint16_t contentType = DRM_MODE_CONTENT_TYPE_GRAPHICS;
|
||||
};
|
||||
|
||||
const SInternalState& state();
|
||||
|
|
|
|||
|
|
@ -422,9 +422,7 @@ void Aquamarine::CDRMBackend::restoreAfterVT() {
|
|||
newState.committed |= COutputState::AQ_OUTPUT_STATE_BUFFER;
|
||||
|
||||
if (c->crtc->props.values.ctm) {
|
||||
if (STATE.ctm.has_value())
|
||||
newState.ctm = STATE.ctm;
|
||||
else
|
||||
if (!STATE.hasCtm)
|
||||
newState.ctm = Hyprutils::Math::Mat3x3::identity();
|
||||
|
||||
newState.committed |= COutputState::AQ_OUTPUT_STATE_CTM;
|
||||
|
|
@ -440,7 +438,7 @@ void Aquamarine::CDRMBackend::restoreAfterVT() {
|
|||
newState.committed |= COutputState::AQ_OUTPUT_STATE_WCG;
|
||||
|
||||
if (c->props.values.hdr_output_metadata) {
|
||||
if (!STATE.hdrMetadata.has_value())
|
||||
if (!STATE.hasHdrMetadata)
|
||||
newState.hdrMetadata = {.hdmi_metadata_type1 = hdr_metadata_infoframe{.eotf = 0}};
|
||||
|
||||
newState.committed |= COutputState::AQ_OUTPUT_STATE_HDR;
|
||||
|
|
@ -1824,10 +1822,10 @@ bool Aquamarine::CDRMOutput::commitState(bool onlyTest) {
|
|||
}
|
||||
}
|
||||
|
||||
if (COMMITTED & COutputState::eOutputStateProperties::AQ_OUTPUT_STATE_CTM && STATE.ctm.has_value())
|
||||
if (COMMITTED & COutputState::eOutputStateProperties::AQ_OUTPUT_STATE_CTM)
|
||||
data.ctm = STATE.ctm;
|
||||
|
||||
if (COMMITTED & COutputState::eOutputStateProperties::AQ_OUTPUT_STATE_HDR && STATE.hdrMetadata.has_value())
|
||||
if (COMMITTED & COutputState::eOutputStateProperties::AQ_OUTPUT_STATE_HDR)
|
||||
data.hdrMetadata = STATE.hdrMetadata;
|
||||
|
||||
data.blocking = BLOCKING || formatMismatch;
|
||||
|
|
|
|||
|
|
@ -164,6 +164,8 @@ void Aquamarine::COutputState::resetExplicitFences() {
|
|||
}
|
||||
|
||||
void Aquamarine::COutputState::setCTM(const Hyprutils::Math::Mat3x3& ctm) {
|
||||
internalState.hasCtm = ctm != Hyprutils::Math::Mat3x3::identity();
|
||||
|
||||
if (internalState.ctm == ctm)
|
||||
return;
|
||||
|
||||
|
|
@ -180,7 +182,8 @@ void Aquamarine::COutputState::setWideColorGamut(bool wcg) {
|
|||
}
|
||||
|
||||
void Aquamarine::COutputState::setHDRMetadata(const hdr_output_metadata& metadata) {
|
||||
internalState.hdrMetadata = metadata;
|
||||
internalState.hasHdrMetadata = metadata.hdmi_metadata_type1.eotf != 0;
|
||||
internalState.hdrMetadata = metadata;
|
||||
internalState.committed |= AQ_OUTPUT_STATE_HDR;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue