2020-08-02 22:22:19 +00:00
|
|
|
/*
|
|
|
|
KWin - the KDE window manager
|
|
|
|
This file is part of the KDE project.
|
2019-06-13 09:36:07 +00:00
|
|
|
|
2020-08-02 22:22:19 +00:00
|
|
|
SPDX-FileCopyrightText: 2019 Roman Gilg <subdiff@gmail.com>
|
2019-06-13 09:36:07 +00:00
|
|
|
|
2020-08-02 22:22:19 +00:00
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
*/
|
2019-06-13 09:36:07 +00:00
|
|
|
#include "x11_output.h"
|
|
|
|
#include "screens.h"
|
|
|
|
|
|
|
|
namespace KWin
|
|
|
|
{
|
|
|
|
|
|
|
|
X11Output::X11Output(QObject *parent)
|
|
|
|
: AbstractOutput(parent)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QString X11Output::name() const
|
|
|
|
{
|
|
|
|
return m_name;
|
|
|
|
}
|
|
|
|
|
|
|
|
void X11Output::setName(QString set)
|
|
|
|
{
|
|
|
|
m_name = set;
|
|
|
|
}
|
|
|
|
|
|
|
|
QRect X11Output::geometry() const
|
|
|
|
{
|
|
|
|
if (m_geometry.isValid()) {
|
|
|
|
return m_geometry;
|
|
|
|
}
|
|
|
|
return QRect(QPoint(0, 0), Screens::self()->displaySize()); // xinerama, lacks RandR
|
|
|
|
}
|
|
|
|
|
|
|
|
void X11Output::setGeometry(QRect set)
|
|
|
|
{
|
|
|
|
m_geometry = set;
|
|
|
|
}
|
|
|
|
|
|
|
|
int X11Output::refreshRate() const
|
|
|
|
{
|
|
|
|
return m_refreshRate;
|
|
|
|
}
|
|
|
|
|
|
|
|
void X11Output::setRefreshRate(int set)
|
|
|
|
{
|
|
|
|
m_refreshRate = set;
|
|
|
|
}
|
|
|
|
|
Backport Night Color feature to X11
Summary:
The color correction manager doesn't make any specific assumptions about
underlying platform, e.g. whether it's x11, etc. The platform just
has to be capable of setting gamma ramps. Given that, there are no any
significant technical blockers for making this feature work on x.
Reviewers: #kwin, davidedmundson, romangg
Reviewed By: #kwin, davidedmundson, romangg
Subscribers: romangg, neobrain, GB_2, filipf, davidedmundson, ngraham, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D21345
2019-06-17 09:07:19 +00:00
|
|
|
int X11Output::gammaRampSize() const
|
|
|
|
{
|
|
|
|
return m_gammaRampSize;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool X11Output::setGammaRamp(const GammaRamp &gamma)
|
|
|
|
{
|
|
|
|
if (m_crtc == XCB_NONE) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
xcb_randr_set_crtc_gamma(connection(), m_crtc, gamma.size(), gamma.red(),
|
|
|
|
gamma.green(), gamma.blue());
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
void X11Output::setCrtc(xcb_randr_crtc_t crtc)
|
|
|
|
{
|
|
|
|
m_crtc = crtc;
|
|
|
|
}
|
|
|
|
|
|
|
|
void X11Output::setGammaRampSize(int size)
|
|
|
|
{
|
|
|
|
m_gammaRampSize = size;
|
|
|
|
}
|
|
|
|
|
2020-06-17 07:49:55 +00:00
|
|
|
QSize X11Output::physicalSize() const
|
|
|
|
{
|
|
|
|
return m_physicalSize;
|
|
|
|
}
|
|
|
|
|
|
|
|
void X11Output::setPhysicalSize(const QSize &size)
|
|
|
|
{
|
|
|
|
m_physicalSize = size;
|
|
|
|
}
|
|
|
|
|
2020-07-22 17:22:36 +00:00
|
|
|
QSize X11Output::pixelSize() const
|
|
|
|
{
|
|
|
|
return geometry().size();
|
|
|
|
}
|
|
|
|
|
2019-06-13 09:36:07 +00:00
|
|
|
}
|