|
GCVL
Multi-platform (Windows, Unix and Mac OS) C++/OpenCL/CUDA library with several Computer Vision algorithms.
|
00001 /* 00002 * 00003 * GPGPU Computer Vision Library (GCVL) 00004 * 00005 * Copyright (c) Luis Omar Alvarez Mures 2015 <omar.alvarez@udc.es> 00006 * Copyright (c) Emilio Padron Gonzalez 2015 <emilioj@gmail.com> 00007 * 00008 * All rights reserved. 00009 * 00010 * This library is free software; you can redistribute it and/or 00011 * modify it under the terms of the GNU General Public 00012 * License as published by the Free Software Foundation; either 00013 * version 3 of the License, or (at your option) any later version. 00014 * 00015 * This library is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU General Public 00021 * License along with this library. 00022 * 00023 */ 00024 00025 #pragma once 00026 00027 #include "../export.h" 00028 #include "../gcvlconfig.h" 00029 #include "oclutils.h" 00030 #include "oclcore.h" 00031 00032 #include <string> 00033 #include <vector> 00034 00035 namespace gcvl { namespace opencl { 00036 00037 class GCVL_EXPORT Algorithm { 00038 00039 public: 00040 double compute(); 00042 virtual void prepare() = 0; 00044 virtual void setArgs() = 0; 00046 virtual void launch() = 0; 00048 virtual void postpare() = 0; 00049 00050 protected: 00051 OpenCL_Kernel _kernel; 00052 Core * _core; 00053 00054 }; 00055 00056 } }