| //////////////////////////////////////////////////////////////////////////// | |
| // File: ProgramGPU.h | |
| // Author: Changchang Wu | |
| // Description : Based class for GPU programs | |
| // ProgramGPU: base class of ProgramGLSL | |
| // FilterProgram: base class of FilterGLSL, FilterPKSL | |
| // | |
| // Copyright (c) 2007 University of North Carolina at Chapel Hill | |
| // All Rights Reserved | |
| // | |
| // Permission to use, copy, modify and distribute this software and its | |
| // documentation for educational, research and non-profit purposes, without | |
| // fee, and without a written agreement is hereby granted, provided that the | |
| // above copyright notice and the following paragraph appear in all copies. | |
| // | |
| // The University of North Carolina at Chapel Hill make no representations | |
| // about the suitability of this software for any purpose. It is provided | |
| // 'as is' without express or implied warranty. | |
| // | |
| // Please send BUG REPORTS to ccwu@cs.unc.edu | |
| // | |
| //////////////////////////////////////////////////////////////////////////// | |
| //////////////////////////////////////////////////////////////////////////// | |
| //class ProgramGPU | |
| //description: pure virtual class | |
| // provides a common interface for shader programs | |
| /////////////////////////////////////////////////////////////////////////// | |
| class ProgramGPU | |
| { | |
| public: | |
| //use a gpu program | |
| virtual int UseProgram() = 0; | |
| virtual void* GetProgramID() = 0; | |
| //not used | |
| virtual ~ProgramGPU(){}; | |
| }; | |
| /////////////////////////////////////////////////////////////////////////// | |
| //class FilterProgram | |
| /////////////////////////////////////////////////////////////////////////// | |
| class FilterProgram | |
| { | |
| public: | |
| ProgramGPU* s_shader_h; | |
| ProgramGPU* s_shader_v; | |
| int _size; | |
| int _id; | |
| public: | |
| FilterProgram() { s_shader_h = s_shader_v = NULL; _size = _id = 0; } | |
| virtual ~FilterProgram() { if(s_shader_h) delete s_shader_h; if(s_shader_v) delete s_shader_v;} | |
| }; | |