Beatmup
display_switch.cpp
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
#include "
display_switch.h
"
20
#include "../gpu/pipeline.h"
21
22
using namespace
Beatmup
;
23
24
bool
DisplaySwitch::processOnGPU
(
GraphicPipeline
& gpu,
TaskThread
&) {
25
gpuIsOk
=
true
;
26
#ifdef BEATMUP_PLATFORM_ANDROID
27
gpu.
switchDisplay
(
switchingData
);
28
#endif
29
return
true
;
30
}
31
32
33
bool
DisplaySwitch::process
(
TaskThread
& thread) {
34
gpuIsOk
=
false
;
35
return
true
;
36
}
37
38
39
AbstractTask::TaskDeviceRequirement
DisplaySwitch::getUsedDevices
()
const
{
40
return
TaskDeviceRequirement::GPU_OR_CPU
;
41
}
42
43
44
DisplaySwitch::DisplaySwitch
() : switchingData(nullptr), gpuIsOk(false) {}
45
46
47
bool
DisplaySwitch::run
(
Context
&
ctx
,
void
* switchingData) {
48
DisplaySwitch
task
;
49
task
.switchingData =
switchingData
;
50
ctx
.
performTask
(
task
);
51
return
task
.gpuIsOk;
52
}
Beatmup::AbstractTask::TaskDeviceRequirement
TaskDeviceRequirement
Specifies which device (CPU and/or GPU) is used to run the task.
Definition:
parallelism.h:95
Beatmup::AbstractTask::TaskDeviceRequirement::GPU_OR_CPU
@ GPU_OR_CPU
this task uses GPU if it is available, but CPU fallback is possible
Beatmup::Context
Basic class: task and memory management, any kind of static data.
Definition:
context.h:59
Beatmup::Context::performTask
float performTask(AbstractTask &task, const PoolIndex pool=DEFAULT_POOL)
Performs a given task.
Definition:
context.cpp:240
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::GraphicPipeline::switchDisplay
void switchDisplay(void *data)
Definition:
pipeline.cpp:871
Beatmup::TaskThread
Thread executing tasks.
Definition:
parallelism.h:154
display_switch.h
Beatmup
Definition:
basic_types.h:22
ctx
Beatmup::Context * ctx
Definition:
wrapper_core.cpp:80
task
Beatmup::NNets::InferenceTask * task
Definition:
wrapper_nnets.cpp:179
core
gpu
display_switch.cpp
Generated on Tue Nov 21 2023 13:54:26 for Beatmup by
1.9.1