Beatmup
swapper.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 
21 #include "../gpu/gpu_task.h"
22 #include "../bitmap/abstract_bitmap.h"
23 
24 namespace Beatmup {
25  class Swapper : public GpuTask {
26  private:
30 
31  public:
32  Swapper(bool fromGpuToCpu);
34 
35  /**
36  Copies bitmap from GPU memory to RAM
37  */
38  static void pullPixels(AbstractBitmap& bitmap);
39 
40  /**
41  Copies bitmap from RAM to GPU memory
42  */
43  static void pushPixels(AbstractBitmap& bitmap);
44  };
45 }
A very basic class for any image.
Template of a task using GPU.
Definition: gpu_task.h:27
Internal low-level GPU control API.
Definition: pipeline.h:33
bool processOnGPU(GraphicPipeline &gpu, TaskThread &)
Executes the task on GPU.
Definition: swapper.cpp:25
AbstractBitmap * bitmap
Definition: swapper.h:27
Swapper(bool fromGpuToCpu)
Definition: swapper.cpp:39
bool fromGpuToCpu
Definition: swapper.h:28
static void pushPixels(AbstractBitmap &bitmap)
Copies bitmap from RAM to GPU memory.
Definition: swapper.cpp:57
void setBitmap(AbstractBitmap &)
Definition: swapper.cpp:43
static void pullPixels(AbstractBitmap &bitmap)
Copies bitmap from GPU memory to RAM.
Definition: swapper.cpp:48
Thread executing tasks.
Definition: parallelism.h:154