File indexing completed on 2024-05-12 15:58:51
0001 #ifndef KISLODPREFERENCES_H 0002 #define KISLODPREFERENCES_H 0003 0004 #include <QFlags> 0005 #include "kis_assert.h" 0006 0007 struct KisLodPreferences 0008 { 0009 enum PreferenceFlag { 0010 None = 0x0, 0011 LodSupported = 0x1, 0012 LodPreferred = 0x2 0013 }; 0014 Q_DECLARE_FLAGS(PreferenceFlags, PreferenceFlag) 0015 0016 KisLodPreferences() = default; 0017 0018 KisLodPreferences(PreferenceFlags flags, int desiredLevelOfDetail) 0019 : m_flags(flags), m_desiredLevelOfDetail(desiredLevelOfDetail) 0020 { 0021 KIS_SAFE_ASSERT_RECOVER(m_desiredLevelOfDetail == 0 || m_flags & LodSupported) { 0022 m_desiredLevelOfDetail = 0; 0023 } 0024 } 0025 0026 KisLodPreferences(int desiredLevelOfDetail) 0027 : m_flags(LodSupported | LodPreferred), m_desiredLevelOfDetail(desiredLevelOfDetail) 0028 { 0029 } 0030 0031 PreferenceFlags flags() const { 0032 return m_flags; 0033 } 0034 0035 bool lodPreferred() const { 0036 return m_flags & LodPreferred; 0037 } 0038 0039 bool lodSupported() const { 0040 return m_flags & LodSupported; 0041 } 0042 0043 int desiredLevelOfDetail() const { 0044 return m_desiredLevelOfDetail; 0045 } 0046 0047 private: 0048 PreferenceFlags m_flags = None; 0049 int m_desiredLevelOfDetail = 0; 0050 }; 0051 0052 Q_DECLARE_OPERATORS_FOR_FLAGS(KisLodPreferences::PreferenceFlags) 0053 0054 #endif // KISLODPREFERENCES_H