Changeset View
Changeset View
Standalone View
Standalone View
plugins/platforms/drm/screens_drm.cpp
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Line(s) | 63 | { | |||
---|---|---|---|---|---|
65 | if (screen >= outputs.size()) { | 65 | if (screen >= outputs.size()) { | ||
66 | return QSize(); | 66 | return QSize(); | ||
67 | } | 67 | } | ||
68 | return outputs.at(screen)->geometry().size(); | 68 | return outputs.at(screen)->geometry().size(); | ||
69 | } | 69 | } | ||
70 | 70 | | |||
71 | void DrmScreens::updateCount() | 71 | void DrmScreens::updateCount() | ||
72 | { | 72 | { | ||
73 | setCount(m_backend->enabledOutputs().size()); | 73 | setCount(m_backend->drmEnabledOutputs().size()); | ||
74 | } | 74 | } | ||
75 | 75 | | |||
76 | int DrmScreens::number(const QPoint &pos) const | 76 | int DrmScreens::number(const QPoint &pos) const | ||
77 | { | 77 | { | ||
78 | int bestScreen = 0; | 78 | int bestScreen = 0; | ||
79 | int minDistance = INT_MAX; | 79 | int minDistance = INT_MAX; | ||
80 | const auto outputs = m_backend->enabledOutputs(); | 80 | const auto outputs = m_backend->drmEnabledOutputs(); | ||
81 | for (int i = 0; i < outputs.size(); ++i) { | 81 | for (int i = 0; i < outputs.size(); ++i) { | ||
82 | const QRect &geo = outputs.at(i)->geometry(); | 82 | auto o = outputs.at(i); | ||
83 | const QRect &geo = o->geometry(); | ||||
83 | if (geo.contains(pos)) { | 84 | if (geo.contains(pos)) { | ||
84 | return i; | 85 | return i; | ||
85 | } | 86 | } | ||
86 | int distance = QPoint(geo.topLeft() - pos).manhattanLength(); | 87 | int distance = QPoint(geo.topLeft() - pos).manhattanLength(); | ||
87 | distance = qMin(distance, QPoint(geo.topRight() - pos).manhattanLength()); | 88 | distance = qMin(distance, QPoint(geo.topRight() - pos).manhattanLength()); | ||
88 | distance = qMin(distance, QPoint(geo.bottomRight() - pos).manhattanLength()); | 89 | distance = qMin(distance, QPoint(geo.bottomRight() - pos).manhattanLength()); | ||
89 | distance = qMin(distance, QPoint(geo.bottomLeft() - pos).manhattanLength()); | 90 | distance = qMin(distance, QPoint(geo.bottomLeft() - pos).manhattanLength()); | ||
90 | if (distance < minDistance) { | 91 | if (distance < minDistance) { | ||
91 | minDistance = distance; | 92 | minDistance = distance; | ||
92 | bestScreen = i; | 93 | bestScreen = i; | ||
93 | } | 94 | } | ||
94 | } | 95 | } | ||
95 | return bestScreen; | 96 | return bestScreen; | ||
96 | } | 97 | } | ||
97 | 98 | | |||
98 | QString DrmScreens::name(int screen) const | 99 | QString DrmScreens::name(int screen) const | ||
99 | { | 100 | { | ||
100 | const auto outputs = m_backend->enabledOutputs(); | 101 | const auto outputs = m_backend->drmEnabledOutputs(); | ||
101 | if (screen >= outputs.size()) { | 102 | if (screen >= outputs.size()) { | ||
102 | return Screens::name(screen); | 103 | return Screens::name(screen); | ||
103 | } | 104 | } | ||
104 | return outputs.at(screen)->name(); | 105 | return outputs.at(screen)->name(); | ||
105 | } | 106 | } | ||
106 | 107 | | |||
107 | float DrmScreens::refreshRate(int screen) const | 108 | float DrmScreens::refreshRate(int screen) const | ||
108 | { | 109 | { | ||
109 | const auto outputs = m_backend->enabledOutputs(); | 110 | const auto outputs = m_backend->drmEnabledOutputs(); | ||
110 | if (screen >= outputs.size()) { | 111 | if (screen >= outputs.size()) { | ||
111 | return Screens::refreshRate(screen); | 112 | return Screens::refreshRate(screen); | ||
112 | } | 113 | } | ||
113 | return outputs.at(screen)->currentRefreshRate() / 1000.0f; | 114 | return outputs.at(screen)->currentRefreshRate() / 1000.0f; | ||
114 | } | 115 | } | ||
115 | 116 | | |||
116 | QSizeF DrmScreens::physicalSize(int screen) const | 117 | QSizeF DrmScreens::physicalSize(int screen) const | ||
117 | { | 118 | { | ||
118 | const auto outputs = m_backend->enabledOutputs(); | 119 | const auto outputs = m_backend->drmEnabledOutputs(); | ||
119 | if (screen >= outputs.size()) { | 120 | if (screen >= outputs.size()) { | ||
120 | return Screens::physicalSize(screen); | 121 | return Screens::physicalSize(screen); | ||
121 | } | 122 | } | ||
122 | return outputs.at(screen)->physicalSize(); | 123 | return outputs.at(screen)->physicalSize(); | ||
123 | } | 124 | } | ||
124 | 125 | | |||
125 | bool DrmScreens::isInternal(int screen) const | 126 | bool DrmScreens::isInternal(int screen) const | ||
126 | { | 127 | { | ||
127 | const auto outputs = m_backend->enabledOutputs(); | 128 | const auto outputs = m_backend->drmEnabledOutputs(); | ||
128 | if (screen >= outputs.size()) { | 129 | if (screen >= outputs.size()) { | ||
129 | return false; | 130 | return false; | ||
130 | } | 131 | } | ||
131 | return outputs.at(screen)->isInternal(); | 132 | return outputs.at(screen)->isInternal(); | ||
132 | } | 133 | } | ||
133 | 134 | | |||
134 | bool DrmScreens::supportsTransformations(int screen) const | 135 | bool DrmScreens::supportsTransformations(int screen) const | ||
135 | { | 136 | { | ||
136 | const auto outputs = m_backend->enabledOutputs(); | 137 | const auto outputs = m_backend->drmEnabledOutputs(); | ||
137 | if (screen >= outputs.size()) { | 138 | if (screen >= outputs.size()) { | ||
138 | return false; | 139 | return false; | ||
139 | } | 140 | } | ||
140 | return outputs.at(screen)->supportsTransformations(); | 141 | return outputs.at(screen)->supportsTransformations(); | ||
141 | } | 142 | } | ||
142 | 143 | | |||
143 | Qt::ScreenOrientation DrmScreens::orientation(int screen) const | 144 | Qt::ScreenOrientation DrmScreens::orientation(int screen) const | ||
144 | { | 145 | { | ||
145 | const auto outputs = m_backend->outputs(); | 146 | const auto outputs = m_backend->drmOutputs(); | ||
146 | if (screen >= outputs.size()) { | 147 | if (screen >= outputs.size()) { | ||
147 | return Qt::PrimaryOrientation; | 148 | return Qt::PrimaryOrientation; | ||
148 | } | 149 | } | ||
149 | return outputs.at(screen)->orientation(); | 150 | return outputs.at(screen)->orientation(); | ||
150 | } | 151 | } | ||
151 | 152 | | |||
152 | } | 153 | } |