Beatmup
display_switch.h
Go to the documentation of this file.
1
/*
2
Beatmup image and signal processing library
3
Copyright (C) 2019, lnstadrum
4
5
This program is free software: you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation, either version 3 of the License, or
8
(at your option) any later version.
9
10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
GNU General Public License for more details.
14
15
You should have received a copy of the GNU General Public License
16
along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#pragma once
20
#include "../parallelism.h"
21
#include "../context.h"
22
23
namespace
Beatmup
{
24
25
/*
26
A task to switch display used by GPU.
27
*/
28
class
DisplaySwitch
:
public
AbstractTask
{
29
private
:
30
void
*
switchingData
;
31
bool
gpuIsOk
;
32
bool
processOnGPU
(
GraphicPipeline
& gpu,
TaskThread
&);
33
bool
process
(
TaskThread
& thread);
34
TaskDeviceRequirement
getUsedDevices
()
const
;
35
DisplaySwitch
();
36
public
:
37
static
bool
run
(
Context
&
ctx
,
void
*
switchingData
=
nullptr
);
38
};
39
}
Beatmup::AbstractTask
Task: an operation that can be executed by multiple threads in parallel.
Definition:
parallelism.h:90
Beatmup::AbstractTask::TaskDeviceRequirement
TaskDeviceRequirement
Specifies which device (CPU and/or GPU) is used to run the task.
Definition:
parallelism.h:95
Beatmup::Context
Basic class: task and memory management, any kind of static data.
Definition:
context.h:59
Beatmup::DisplaySwitch
Definition:
display_switch.h:28
Beatmup::DisplaySwitch::switchingData
void * switchingData
Definition:
display_switch.h:30
Beatmup::DisplaySwitch::processOnGPU
bool processOnGPU(GraphicPipeline &gpu, TaskThread &)
Executes the task on GPU.
Definition:
display_switch.cpp:24
Beatmup::DisplaySwitch::process
bool process(TaskThread &thread)
Executes the task on CPU within a given thread.
Definition:
display_switch.cpp:33
Beatmup::DisplaySwitch::run
static bool run(Context &ctx, void *switchingData=nullptr)
Definition:
display_switch.cpp:47
Beatmup::DisplaySwitch::gpuIsOk
bool gpuIsOk
Definition:
display_switch.h:31
Beatmup::DisplaySwitch::getUsedDevices
TaskDeviceRequirement getUsedDevices() const
Communicates devices (CPU and/or GPU) the task is run on.
Definition:
display_switch.cpp:39
Beatmup::DisplaySwitch::DisplaySwitch
DisplaySwitch()
Definition:
display_switch.cpp:44
Beatmup::GraphicPipeline
Internal low-level GPU control API.
Definition:
pipeline.h:33
Beatmup::TaskThread
Thread executing tasks.
Definition:
parallelism.h:154
Beatmup
Definition:
basic_types.h:22
ctx
Beatmup::Context * ctx
Definition:
wrapper_core.cpp:80
core
gpu
display_switch.h
Generated on Tue Nov 21 2023 13:54:26 for Beatmup by
1.9.1