Merge pull request #2250 from ilya-lavrenov:tapi_renaming

This commit is contained in:
Andrey Pavlenko
2014-02-05 09:27:06 +04:00
committed by OpenCV Buildbot
15 changed files with 169 additions and 293 deletions

View File

@@ -236,7 +236,7 @@ namespace ocl {
static bool g_isDirect3DDevice9Ex = false; // Direct3DDevice9Ex or Direct3DDevice9 was used
#endif
Context2& initializeContextFromD3D11Device(ID3D11Device* pD3D11Device)
Context& initializeContextFromD3D11Device(ID3D11Device* pD3D11Device)
{
(void)pD3D11Device;
#if !defined(HAVE_DIRECTX)
@@ -338,13 +338,13 @@ Context2& initializeContextFromD3D11Device(ID3D11Device* pD3D11Device)
}
Context2& ctx = Context2::getDefault(false);
Context& ctx = Context::getDefault(false);
initializeContextFromHandle(ctx, platforms[found], context, device);
return ctx;
#endif
}
Context2& initializeContextFromD3D10Device(ID3D10Device* pD3D10Device)
Context& initializeContextFromD3D10Device(ID3D10Device* pD3D10Device)
{
(void)pD3D10Device;
#if !defined(HAVE_DIRECTX)
@@ -446,13 +446,13 @@ Context2& initializeContextFromD3D10Device(ID3D10Device* pD3D10Device)
}
Context2& ctx = Context2::getDefault(false);
Context& ctx = Context::getDefault(false);
initializeContextFromHandle(ctx, platforms[found], context, device);
return ctx;
#endif
}
Context2& initializeContextFromDirect3DDevice9Ex(IDirect3DDevice9Ex* pDirect3DDevice9Ex)
Context& initializeContextFromDirect3DDevice9Ex(IDirect3DDevice9Ex* pDirect3DDevice9Ex)
{
(void)pDirect3DDevice9Ex;
#if !defined(HAVE_DIRECTX)
@@ -555,14 +555,14 @@ Context2& initializeContextFromDirect3DDevice9Ex(IDirect3DDevice9Ex* pDirect3DDe
CV_Error(cv::Error::OpenCLInitError, "OpenCL: Can't create context for DirectX interop");
}
Context2& ctx = Context2::getDefault(false);
Context& ctx = Context::getDefault(false);
initializeContextFromHandle(ctx, platforms[found], context, device);
g_isDirect3DDevice9Ex = true;
return ctx;
#endif
}
Context2& initializeContextFromDirect3DDevice9(IDirect3DDevice9* pDirect3DDevice9)
Context& initializeContextFromDirect3DDevice9(IDirect3DDevice9* pDirect3DDevice9)
{
(void)pDirect3DDevice9;
#if !defined(HAVE_DIRECTX)
@@ -665,7 +665,7 @@ Context2& initializeContextFromDirect3DDevice9(IDirect3DDevice9* pDirect3DDevice
CV_Error(cv::Error::OpenCLInitError, "OpenCL: Can't create context for DirectX interop");
}
Context2& ctx = Context2::getDefault(false);
Context& ctx = Context::getDefault(false);
initializeContextFromHandle(ctx, platforms[found], context, device);
g_isDirect3DDevice9Ex = false;
return ctx;
@@ -720,7 +720,7 @@ void convertToD3D11Texture2D(InputArray src, ID3D11Texture2D* pD3D11Texture2D)
CV_Assert(srcSize.width == (int)desc.Width && srcSize.height == (int)desc.Height);
using namespace cv::ocl;
Context2& ctx = Context2::getDefault();
Context& ctx = Context::getDefault();
cl_context context = (cl_context)ctx.ptr();
UMat u = src.getUMat();
@@ -777,7 +777,7 @@ void convertFromD3D11Texture2D(ID3D11Texture2D* pD3D11Texture2D, OutputArray dst
CV_Assert(textureType >= 0);
using namespace cv::ocl;
Context2& ctx = Context2::getDefault();
Context& ctx = Context::getDefault();
cl_context context = (cl_context)ctx.ptr();
// TODO Need to specify ACCESS_WRITE here somehow to prevent useless data copying!
@@ -868,7 +868,7 @@ void convertToD3D10Texture2D(InputArray src, ID3D10Texture2D* pD3D10Texture2D)
CV_Assert(srcSize.width == (int)desc.Width && srcSize.height == (int)desc.Height);
using namespace cv::ocl;
Context2& ctx = Context2::getDefault();
Context& ctx = Context::getDefault();
cl_context context = (cl_context)ctx.ptr();
UMat u = src.getUMat();
@@ -925,7 +925,7 @@ void convertFromD3D10Texture2D(ID3D10Texture2D* pD3D10Texture2D, OutputArray dst
CV_Assert(textureType >= 0);
using namespace cv::ocl;
Context2& ctx = Context2::getDefault();
Context& ctx = Context::getDefault();
cl_context context = (cl_context)ctx.ptr();
// TODO Need to specify ACCESS_WRITE here somehow to prevent useless data copying!
@@ -1019,7 +1019,7 @@ void convertToDirect3DSurface9(InputArray src, IDirect3DSurface9* pDirect3DSurfa
CV_Assert(srcSize.width == (int)desc.Width && srcSize.height == (int)desc.Height);
using namespace cv::ocl;
Context2& ctx = Context2::getDefault();
Context& ctx = Context::getDefault();
cl_context context = (cl_context)ctx.ptr();
UMat u = src.getUMat();
@@ -1083,7 +1083,7 @@ void convertFromDirect3DSurface9(IDirect3DSurface9* pDirect3DSurface9, OutputArr
CV_Assert(surfaceType >= 0);
using namespace cv::ocl;
Context2& ctx = Context2::getDefault();
Context& ctx = Context::getDefault();
cl_context context = (cl_context)ctx.ptr();
// TODO Need to specify ACCESS_WRITE here somehow to prevent useless data copying!

View File

@@ -1545,7 +1545,7 @@ class PlanCache
clStridesOut[2] = dft_rows ? clStridesOut[1] : dft_size.width * clStridesOut[1];
// TODO remove all plans if context changed
CLAMDDFT_Assert(clAmdFftCreateDefaultPlan(&plHandle, (cl_context)ocl::Context2::getDefault().ptr(), dim, clLengthsIn))
CLAMDDFT_Assert(clAmdFftCreateDefaultPlan(&plHandle, (cl_context)ocl::Context::getDefault().ptr(), dim, clLengthsIn))
// setting plan properties
CLAMDDFT_Assert(clAmdFftSetPlanPrecision(plHandle, doubleFP ? CLFFT_DOUBLE : CLFFT_SINGLE));
@@ -1560,8 +1560,8 @@ class PlanCache
CLAMDDFT_Assert(clAmdFftSetPlanScale(plHandle, dft_inverse ? CLFFT_BACKWARD : CLFFT_FORWARD, scale))
// ready to bake
cl_command_queue commandQueue = (cl_command_queue)ocl::Queue::getDefault().ptr();
CLAMDDFT_Assert(clAmdFftBakePlan(plHandle, 1, &commandQueue, NULL, NULL))
cl_command_queue queue = (cl_command_queue)ocl::Queue::getDefault().ptr();
CLAMDDFT_Assert(clAmdFftBakePlan(plHandle, 1, &queue, NULL, NULL))
}
~FftPlan()
@@ -1593,7 +1593,7 @@ public:
clAmdFftPlanHandle getPlanHandle(const Size & dft_size, int src_step, int dst_step, bool doubleFP,
bool inplace, int flags, FftType fftType)
{
cl_context currentContext = (cl_context)ocl::Context2::getDefault().ptr();
cl_context currentContext = (cl_context)ocl::Context::getDefault().ptr();
for (size_t i = 0, size = planStorage.size(); i < size; i ++)
{
@@ -1704,11 +1704,11 @@ static bool ocl_dft(InputArray _src, OutputArray _dst, int flags)
cl_mem srcarg = (cl_mem)src.handle(ACCESS_READ);
cl_mem dstarg = (cl_mem)dst.handle(ACCESS_RW);
cl_command_queue commandQueue = (cl_command_queue)ocl::Queue::getDefault().ptr();
cl_command_queue queue = (cl_command_queue)ocl::Queue::getDefault().ptr();
cl_event e = 0;
CLAMDDFT_Assert(clAmdFftEnqueueTransform(plHandle, dft_inverse ? CLFFT_BACKWARD : CLFFT_FORWARD,
1, &commandQueue, 0, NULL, &e,
1, &queue, 0, NULL, &e,
&srcarg, &dstarg, (cl_mem)tmpBuffer.handle(ACCESS_RW)))
tmpBuffer.addref();

View File

@@ -1495,11 +1495,6 @@ Size _InputArray::size(int i) const
return d_mat->size();
}
if( k == OCL_MAT )
{
CV_Error(CV_StsNotImplemented, "This method is not implemented for oclMat yet");
}
CV_Assert( k == CUDA_MEM );
//if( k == CUDA_MEM )
{
@@ -1679,11 +1674,6 @@ int _InputArray::dims(int i) const
return 2;
}
if( k == OCL_MAT )
{
return 2;
}
CV_Assert( k == CUDA_MEM );
//if( k == CUDA_MEM )
{
@@ -1841,11 +1831,6 @@ bool _InputArray::empty() const
if( k == OPENGL_BUFFER )
return ((const ogl::Buffer*)obj)->empty();
if( k == OCL_MAT )
{
CV_Error(CV_StsNotImplemented, "This method is not implemented for oclMat yet");
}
if( k == GPU_MAT )
return ((const cuda::GpuMat*)obj)->empty();
@@ -1881,7 +1866,7 @@ bool _InputArray::isContinuous(int i) const
return vv[i].isContinuous();
}
CV_Error(CV_StsNotImplemented, "This method is not implemented for oclMat yet");
CV_Error(CV_StsNotImplemented, "Unknown/unsupported array type");
return false;
}

View File

@@ -1572,7 +1572,7 @@ bool haveAmdFft()
#endif
void finish2()
void finish()
{
Queue::getDefault().finish();
}
@@ -2025,7 +2025,7 @@ size_t Device::profilingTimerResolution() const
const Device& Device::getDefault()
{
const Context2& ctx = Context2::getDefault();
const Context& ctx = Context::getDefault();
int idx = coreTlsData.get()->device;
return ctx.device(idx);
}
@@ -2230,7 +2230,7 @@ not_found:
return NULL;
}
struct Context2::Impl
struct Context::Impl
{
Impl()
{
@@ -2337,7 +2337,7 @@ struct Context2::Impl
devices.clear();
}
Program getProg(const ProgramSource2& src,
Program getProg(const ProgramSource& src,
const String& buildflags, String& errmsg)
{
String prefix = Program::getPrefix(buildflags);
@@ -2357,7 +2357,7 @@ struct Context2::Impl
cl_context handle;
std::vector<Device> devices;
typedef ProgramSource2::hash_t hash_t;
typedef ProgramSource::hash_t hash_t;
struct HashKey
{
@@ -2372,18 +2372,18 @@ struct Context2::Impl
};
Context2::Context2()
Context::Context()
{
p = 0;
}
Context2::Context2(int dtype)
Context::Context(int dtype)
{
p = 0;
create(dtype);
}
bool Context2::create()
bool Context::create()
{
if( !haveOpenCL() )
return false;
@@ -2398,7 +2398,7 @@ bool Context2::create()
return p != 0;
}
bool Context2::create(int dtype0)
bool Context::create(int dtype0)
{
if( !haveOpenCL() )
return false;
@@ -2413,7 +2413,7 @@ bool Context2::create(int dtype0)
return p != 0;
}
Context2::~Context2()
Context::~Context()
{
if (p)
{
@@ -2422,14 +2422,14 @@ Context2::~Context2()
}
}
Context2::Context2(const Context2& c)
Context::Context(const Context& c)
{
p = (Impl*)c.p;
if(p)
p->addref();
}
Context2& Context2::operator = (const Context2& c)
Context& Context::operator = (const Context& c)
{
Impl* newp = (Impl*)c.p;
if(newp)
@@ -2440,34 +2440,34 @@ Context2& Context2::operator = (const Context2& c)
return *this;
}
void* Context2::ptr() const
void* Context::ptr() const
{
return p == NULL ? NULL : p->handle;
}
size_t Context2::ndevices() const
size_t Context::ndevices() const
{
return p ? p->devices.size() : 0;
}
const Device& Context2::device(size_t idx) const
const Device& Context::device(size_t idx) const
{
static Device dummy;
return !p || idx >= p->devices.size() ? dummy : p->devices[idx];
}
Context2& Context2::getDefault(bool initialize)
Context& Context::getDefault(bool initialize)
{
static Context2 ctx;
static Context ctx;
if(!ctx.p && haveOpenCL())
{
if (!ctx.p)
ctx.p = new Impl();
if (initialize)
{
// do not create new Context2 right away.
// do not create new Context right away.
// First, try to retrieve existing context of the same type.
// In its turn, Platform::getContext() may call Context2::create()
// In its turn, Platform::getContext() may call Context::create()
// if there is no such context.
if (ctx.p->handle == NULL)
ctx.p->setDefault();
@@ -2477,19 +2477,19 @@ Context2& Context2::getDefault(bool initialize)
return ctx;
}
Program Context2::getProg(const ProgramSource2& prog,
Program Context::getProg(const ProgramSource& prog,
const String& buildopts, String& errmsg)
{
return p ? p->getProg(prog, buildopts, errmsg) : Program();
}
void initializeContextFromHandle(Context2& ctx, void* platform, void* _context, void* _device)
void initializeContextFromHandle(Context& ctx, void* platform, void* _context, void* _device)
{
cl_context context = (cl_context)_context;
cl_device_id device = (cl_device_id)_device;
// cleanup old context
Context2::Impl * impl = ctx.p;
Context::Impl * impl = ctx.p;
if (impl->handle)
{
CV_OclDbgAssert(clReleaseContext(impl->handle) == CL_SUCCESS);
@@ -2509,14 +2509,14 @@ void initializeContextFromHandle(Context2& ctx, void* platform, void* _context,
struct Queue::Impl
{
Impl(const Context2& c, const Device& d)
Impl(const Context& c, const Device& d)
{
refcount = 1;
const Context2* pc = &c;
const Context* pc = &c;
cl_context ch = (cl_context)pc->ptr();
if( !ch )
{
pc = &Context2::getDefault();
pc = &Context::getDefault();
ch = (cl_context)pc->ptr();
}
cl_device_id dh = (cl_device_id)d.ptr();
@@ -2553,7 +2553,7 @@ Queue::Queue()
p = 0;
}
Queue::Queue(const Context2& c, const Device& d)
Queue::Queue(const Context& c, const Device& d)
{
p = 0;
create(c, d);
@@ -2583,7 +2583,7 @@ Queue::~Queue()
p->release();
}
bool Queue::create(const Context2& c, const Device& d)
bool Queue::create(const Context& c, const Device& d)
{
if(p)
p->release();
@@ -2608,7 +2608,7 @@ Queue& Queue::getDefault()
{
Queue& q = coreTlsData.get()->oclQueue;
if( !q.p && haveOpenCL() )
q.create(Context2::getDefault());
q.create(Context::getDefault());
return q;
}
@@ -2725,7 +2725,7 @@ Kernel::Kernel(const char* kname, const Program& prog)
create(kname, prog);
}
Kernel::Kernel(const char* kname, const ProgramSource2& src,
Kernel::Kernel(const char* kname, const ProgramSource& src,
const String& buildopts, String* errmsg)
{
p = 0;
@@ -2769,7 +2769,7 @@ bool Kernel::create(const char* kname, const Program& prog)
return p != 0;
}
bool Kernel::create(const char* kname, const ProgramSource2& src,
bool Kernel::create(const char* kname, const ProgramSource& src,
const String& buildopts, String* errmsg)
{
if(p)
@@ -2779,7 +2779,7 @@ bool Kernel::create(const char* kname, const ProgramSource2& src,
}
String tempmsg;
if( !errmsg ) errmsg = &tempmsg;
const Program& prog = Context2::getDefault().getProg(src, buildopts, *errmsg);
const Program& prog = Context::getDefault().getProg(src, buildopts, *errmsg);
return create(kname, prog);
}
@@ -2984,11 +2984,11 @@ size_t Kernel::localMemSize() const
struct Program::Impl
{
Impl(const ProgramSource2& _src,
Impl(const ProgramSource& _src,
const String& _buildflags, String& errmsg)
{
refcount = 1;
const Context2& ctx = Context2::getDefault();
const Context& ctx = Context::getDefault();
src = _src;
buildflags = _buildflags;
const String& srcstr = src.source();
@@ -3044,7 +3044,7 @@ struct Program::Impl
if(_buf.empty())
return;
String prefix0 = Program::getPrefix(buildflags);
const Context2& ctx = Context2::getDefault();
const Context& ctx = Context::getDefault();
const Device& dev = Device::getDefault();
const char* pos0 = _buf.c_str();
const char* pos1 = strchr(pos0, '\n');
@@ -3099,7 +3099,7 @@ struct Program::Impl
IMPLEMENT_REFCOUNTABLE();
ProgramSource2 src;
ProgramSource src;
String buildflags;
cl_program handle;
};
@@ -3107,7 +3107,7 @@ struct Program::Impl
Program::Program() { p = 0; }
Program::Program(const ProgramSource2& src,
Program::Program(const ProgramSource& src,
const String& buildflags, String& errmsg)
{
p = 0;
@@ -3138,7 +3138,7 @@ Program::~Program()
p->release();
}
bool Program::create(const ProgramSource2& src,
bool Program::create(const ProgramSource& src,
const String& buildflags, String& errmsg)
{
if(p)
@@ -3152,9 +3152,9 @@ bool Program::create(const ProgramSource2& src,
return p != 0;
}
const ProgramSource2& Program::source() const
const ProgramSource& Program::source() const
{
static ProgramSource2 dummy;
static ProgramSource dummy;
return p ? p->src : dummy;
}
@@ -3188,15 +3188,15 @@ String Program::getPrefix() const
String Program::getPrefix(const String& buildflags)
{
const Context2& ctx = Context2::getDefault();
const Context& ctx = Context::getDefault();
const Device& dev = ctx.device(0);
return format("name=%s\ndriver=%s\nbuildflags=%s\n",
dev.name().c_str(), dev.driverVersion().c_str(), buildflags.c_str());
}
///////////////////////////////////////// ProgramSource2 ///////////////////////////////////////////////
///////////////////////////////////////// ProgramSource ///////////////////////////////////////////////
struct ProgramSource2::Impl
struct ProgramSource::Impl
{
Impl(const char* _src)
{
@@ -3215,39 +3215,39 @@ struct ProgramSource2::Impl
IMPLEMENT_REFCOUNTABLE();
String src;
ProgramSource2::hash_t h;
ProgramSource::hash_t h;
};
ProgramSource2::ProgramSource2()
ProgramSource::ProgramSource()
{
p = 0;
}
ProgramSource2::ProgramSource2(const char* prog)
ProgramSource::ProgramSource(const char* prog)
{
p = new Impl(prog);
}
ProgramSource2::ProgramSource2(const String& prog)
ProgramSource::ProgramSource(const String& prog)
{
p = new Impl(prog);
}
ProgramSource2::~ProgramSource2()
ProgramSource::~ProgramSource()
{
if(p)
p->release();
}
ProgramSource2::ProgramSource2(const ProgramSource2& prog)
ProgramSource::ProgramSource(const ProgramSource& prog)
{
p = prog.p;
if(p)
p->addref();
}
ProgramSource2& ProgramSource2::operator = (const ProgramSource2& prog)
ProgramSource& ProgramSource::operator = (const ProgramSource& prog)
{
Impl* newp = (Impl*)prog.p;
if(newp)
@@ -3258,13 +3258,13 @@ ProgramSource2& ProgramSource2::operator = (const ProgramSource2& prog)
return *this;
}
const String& ProgramSource2::source() const
const String& ProgramSource::source() const
{
static String dummy;
return p ? p->src : dummy;
}
ProgramSource2::hash_t ProgramSource2::hash() const
ProgramSource::hash_t ProgramSource::hash() const
{
return p ? p->h : 0;
}
@@ -3365,7 +3365,7 @@ protected:
{
CV_DbgAssert(entry.clBuffer_ == NULL);
entry.capacity_ = alignSize(size, (int)_allocationGranularity(size));
Context2& ctx = Context2::getDefault();
Context& ctx = Context::getDefault();
cl_int retval = CL_SUCCESS;
entry.clBuffer_ = clCreateBuffer((cl_context)ctx.ptr(), CL_MEM_READ_WRITE, entry.capacity_, 0, &retval);
CV_Assert(retval == CL_SUCCESS);
@@ -3482,7 +3482,7 @@ public:
return u;
}
void getBestFlags(const Context2& ctx, int /*flags*/, int& createFlags, int& flags0) const
void getBestFlags(const Context& ctx, int /*flags*/, int& createFlags, int& flags0) const
{
const Device& dev = ctx.device(0);
createFlags = CL_MEM_READ_WRITE;
@@ -3507,7 +3507,7 @@ public:
total *= sizes[i];
}
Context2& ctx = Context2::getDefault();
Context& ctx = Context::getDefault();
int createFlags = 0, flags0 = 0;
getBestFlags(ctx, flags, createFlags, flags0);
@@ -3536,7 +3536,7 @@ public:
if(u->handle == 0)
{
CV_Assert(u->origdata != 0);
Context2& ctx = Context2::getDefault();
Context& ctx = Context::getDefault();
int createFlags = 0, flags0 = 0;
getBestFlags(ctx, accessFlags, createFlags, flags0);
@@ -3982,7 +3982,7 @@ static void getDevices(std::vector<cl_device_id>& devices, cl_platform_id platfo
numDevices, &devices[0], &numDevices) == CL_SUCCESS);
}
struct PlatformInfo2::Impl
struct PlatformInfo::Impl
{
Impl(void* id)
{
@@ -4004,30 +4004,30 @@ struct PlatformInfo2::Impl
cl_platform_id handle;
};
PlatformInfo2::PlatformInfo2()
PlatformInfo::PlatformInfo()
{
p = 0;
}
PlatformInfo2::PlatformInfo2(void* platform_id)
PlatformInfo::PlatformInfo(void* platform_id)
{
p = new Impl(platform_id);
}
PlatformInfo2::~PlatformInfo2()
PlatformInfo::~PlatformInfo()
{
if(p)
p->release();
}
PlatformInfo2::PlatformInfo2(const PlatformInfo2& i)
PlatformInfo::PlatformInfo(const PlatformInfo& i)
{
if (i.p)
i.p->addref();
p = i.p;
}
PlatformInfo2& PlatformInfo2::operator =(const PlatformInfo2& i)
PlatformInfo& PlatformInfo::operator =(const PlatformInfo& i)
{
if (i.p != p)
{
@@ -4040,29 +4040,29 @@ PlatformInfo2& PlatformInfo2::operator =(const PlatformInfo2& i)
return *this;
}
int PlatformInfo2::deviceNumber() const
int PlatformInfo::deviceNumber() const
{
return p ? (int)p->devices.size() : 0;
}
void PlatformInfo2::getDevice(Device& device, int d) const
void PlatformInfo::getDevice(Device& device, int d) const
{
CV_Assert(p && d < (int)p->devices.size() );
if(p)
device.set(p->devices[d]);
}
String PlatformInfo2::name() const
String PlatformInfo::name() const
{
return p ? p->getStrProp(CL_PLATFORM_NAME) : String();
}
String PlatformInfo2::vendor() const
String PlatformInfo::vendor() const
{
return p ? p->getStrProp(CL_PLATFORM_VENDOR) : String();
}
String PlatformInfo2::version() const
String PlatformInfo::version() const
{
return p ? p->getStrProp(CL_PLATFORM_VERSION) : String();
}
@@ -4082,13 +4082,13 @@ static void getPlatforms(std::vector<cl_platform_id>& platforms)
CV_OclDbgAssert(clGetPlatformIDs(numPlatforms, &platforms[0], &numPlatforms) == CL_SUCCESS);
}
void getPlatfomsInfo(std::vector<PlatformInfo2>& platformsInfo)
void getPlatfomsInfo(std::vector<PlatformInfo>& platformsInfo)
{
std::vector<cl_platform_id> platforms;
getPlatforms(platforms);
for (size_t i = 0; i < platforms.size(); i++)
platformsInfo.push_back( PlatformInfo2((void*)&platforms[i]) );
platformsInfo.push_back( PlatformInfo((void*)&platforms[i]) );
}
const char* typeToStr(int type)
@@ -4233,7 +4233,7 @@ struct Image2D::Impl
format.image_channel_data_type = (cl_channel_type)channelType;
format.image_channel_order = (cl_channel_order)channelOrder;
cl_context context = (cl_context)Context2::getDefault().ptr();
cl_context context = (cl_context)Context::getDefault().ptr();
cl_command_queue queue = (cl_command_queue)Queue::getDefault().ptr();
#ifdef CL_VERSION_1_2

View File

@@ -25,7 +25,7 @@
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other oclMaterials provided with the distribution.
// and/or other materials provided with the distribution.
//
// * The name of the copyright holders may not be used to endorse or promote products
// derived from this software without specific prior written permission.