KWin
Loading...
Searching...
No Matches
src
backends
drm
drm_abstract_output.cpp
Go to the documentation of this file.
1
/*
2
KWin - the KDE window manager
3
This file is part of the KDE project.
4
5
SPDX-FileCopyrightText: 2021 Xaver Hugl <xaver.hugl@gmail.com>
6
7
SPDX-License-Identifier: GPL-2.0-or-later
8
*/
9
#include "
drm_abstract_output.h
"
10
#include "
core/renderbackend.h
"
11
#include "
drm_backend.h
"
12
#include "
drm_gpu.h
"
13
#include "
drm_layer.h
"
14
15
namespace
KWin
16
{
17
18
DrmAbstractOutput::DrmAbstractOutput
(
DrmGpu
*gpu)
19
:
Output
(gpu->platform())
20
, m_renderLoop(std::make_unique<
RenderLoop
>(this))
21
, m_gpu(gpu)
22
{
23
}
24
25
RenderLoop
*
DrmAbstractOutput::renderLoop
()
const
26
{
27
return
m_renderLoop
.get();
28
}
29
30
void
DrmAbstractOutput::frameFailed
()
const
31
{
32
m_frame
->failed();
33
}
34
35
void
DrmAbstractOutput::pageFlipped
(std::chrono::nanoseconds timestamp,
PresentationMode
mode)
36
{
37
const
auto
gpuTime =
primaryLayer
() ?
primaryLayer
()->
queryRenderTime
() : std::chrono::nanoseconds::zero();
38
m_frame
->presented(std::chrono::nanoseconds(1'000'000'000'000 /
refreshRate
()), timestamp, gpuTime, mode);
39
m_frame
.reset();
40
}
41
42
DrmGpu
*
DrmAbstractOutput::gpu
()
const
43
{
44
return
m_gpu
;
45
}
46
47
void
DrmAbstractOutput::updateEnabled
(
bool
enabled)
48
{
49
State
next =
m_state
;
50
next.
enabled
= enabled;
51
setState
(next);
52
}
53
54
}
55
56
#include "moc_drm_abstract_output.cpp"
KWin::DrmAbstractOutput::pageFlipped
void pageFlipped(std::chrono::nanoseconds timestamp, PresentationMode mode)
Definition
drm_abstract_output.cpp:35
KWin::DrmAbstractOutput::m_gpu
DrmGpu *const m_gpu
Definition
drm_abstract_output.h:43
KWin::DrmAbstractOutput::frameFailed
void frameFailed() const
Definition
drm_abstract_output.cpp:30
KWin::DrmAbstractOutput::DrmAbstractOutput
DrmAbstractOutput(DrmGpu *gpu)
Definition
drm_abstract_output.cpp:18
KWin::DrmAbstractOutput::m_frame
std::shared_ptr< OutputFrame > m_frame
Definition
drm_abstract_output.h:42
KWin::DrmAbstractOutput::gpu
DrmGpu * gpu() const
Definition
drm_abstract_output.cpp:42
KWin::DrmAbstractOutput::m_renderLoop
std::unique_ptr< RenderLoop > m_renderLoop
Definition
drm_abstract_output.h:41
KWin::DrmAbstractOutput::updateEnabled
void updateEnabled(bool enabled)
Definition
drm_abstract_output.cpp:47
KWin::DrmAbstractOutput::primaryLayer
virtual DrmOutputLayer * primaryLayer() const =0
KWin::DrmAbstractOutput::renderLoop
RenderLoop * renderLoop() const override
Definition
drm_abstract_output.cpp:25
KWin::DrmGpu
Definition
drm_gpu.h:62
KWin::Output
Definition
output.h:132
KWin::Output::refreshRate
uint32_t refreshRate() const
Definition
output.cpp:475
KWin::Output::setState
void setState(const State &state)
Definition
output.cpp:562
KWin::Output::m_state
State m_state
Definition
output.h:477
KWin::OutputLayer::queryRenderTime
virtual std::chrono::nanoseconds queryRenderTime() const =0
KWin::RenderLoop
Definition
renderloop.h:30
drm_abstract_output.h
drm_backend.h
drm_gpu.h
drm_layer.h
KWin
Definition
activation_test.cpp:20
KWin::PresentationMode
PresentationMode
Definition
globals.h:276
renderbackend.h
KWin::Output::State
Definition
output.h:448
KWin::Output::State::enabled
bool enabled
Definition
output.h:457
Generated on Sat Feb 17 2024 01:42:09 for KWin by
1.10.0