Basic Image AlgorithmS Library
2.8.0
Main Page
Related Pages
Modules
Classes
Examples
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
OpenCLFramework
Algorithm
clfCopy.cpp
1
/*
2
* clfCopy.cpp
3
*
4
* Created on: Nov 7, 2012
5
* Author: fkellner
6
*/
7
8
#include <OpenCLFramework/Algorithm/clfCopy.hh>
9
#include <Base/Common/BIASpragma.hh>
10
#include <Base/Image/Image.hh>
11
#include <Base/Image/ImageIO.hh>
12
#include <Base/Debug/TimeMeasure.hh>
13
14
using namespace
BIAS;
15
using namespace
BIAS;
16
17
clfCopy::clfCopy
(
clfContext
*ctx,
bool
sharedGL,
unsigned
int
device) :
clfAlgorithm
(ctx,sharedGL,device) {
18
19
programCL_
->
AddSourceFromString
(
20
"__constant sampler_t smp_cpy = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;\n"
21
"\n"
22
"__kernel void SimpleCopy(__read_only image2d_t input, __write_only image2d_t output) {\n"
23
" int x = get_global_id(0);\n"
24
" int y = get_global_id(1);\n"
25
" if (x>=get_image_width(output) || y>=get_image_height(output)) return;\n"
26
" float4 res = read_imagef(input, smp_cpy, (int2)(x,y));"
27
" write_imagef(output, (int2)(x,y), res);\n"
28
"}\n"
29
);
30
//programCL_->AddSource("/OpenCLFramework/Algorithm/cl/copy.cl");
31
32
programCL_
->
Build
();
33
programCL_
->
AddKernel
(
"SimpleCopy"
);
34
}
35
36
clfCopy::~clfCopy
() {
37
}
38
39
void
clfCopy::Copy
(
clfImage2D
*src,
clfImage2D
*dest) {
40
programCL_
->
KernelSetArgument
(
"SimpleCopy"
, 0, *src);
41
programCL_
->
KernelSetArgument
(
"SimpleCopy"
, 1, *dest);
42
context_
->
RunOn2DRange
(*
programCL_
,
"SimpleCopy"
, src->
Width
(), src->
Height
(), 16,16);
43
}
BIAS::clfAlgorithm
Definition:
clfAlgorithm.hh:17
BIAS::clfAlgorithm::programCL_
clfProgram * programCL_
Definition:
clfAlgorithm.hh:35
BIAS::clfImage2D
OpenCL Image2D wrapper.
Definition:
clfImage2D.hh:46
BIAS::clfCopy::clfCopy
clfCopy(clfContext *ctx=NULL, bool sharedGL=false, unsigned int device=0)
Definition:
clfCopy.cpp:17
BIAS::clfProgram::Build
void Build(int deviceNr=0, std::string options="")
builds the sources added by AddSource and AddSourceFromString
Definition:
clfProgram.cpp:115
BIAS::clfCopy::~clfCopy
virtual ~clfCopy()
Definition:
clfCopy.cpp:36
BIAS::clfProgram::AddSourceFromString
void AddSourceFromString(std::string sourceCode)
adds source code from a string
Definition:
clfProgram.cpp:100
BIAS::clfContext
OpenCL Context wrapper.
Definition:
clfContext.hh:49
BIAS::clfCopy::Copy
void Copy(clfImage2D *src, clfImage2D *dest)
Definition:
clfCopy.cpp:39
BIAS::clfProgram::KernelSetArgument
void KernelSetArgument(std::string kernelname, unsigned int argnumber, clfBuffer &buffer)
set kernel argument
Definition:
clfProgram.cpp:177
BIAS::clfProgram::AddKernel
void AddKernel(std::string kernelname)
adds a kernel to the program.
Definition:
clfProgram.cpp:158
BIAS::clfContext::RunOn2DRange
void RunOn2DRange(clfProgram &program, std::string kernelname, unsigned int globalrangeX, unsigned int globalrangeY, unsigned int localrangeX=0, unsigned int localrangeY=0)
run a kernel on a 2D memory range
Definition:
clfContext.cpp:234
BIAS::clfImage2D::Width
unsigned int Width() const
Definition:
clfImage2D.hh:73
BIAS::clfAlgorithm::context_
clfContext * context_
Definition:
clfAlgorithm.hh:34
BIAS::clfImage2D::Height
unsigned int Height() const
Definition:
clfImage2D.hh:74
Generated on Tue Feb 6 2018 02:01:42 for Basic Image AlgorithmS Library by
1.8.5