RemoteSensingFrank/UAVProduct

View on GitHub
UAVProduct/SiftGPU/ProgramGPU.h

Summary

Maintainability
Test Coverage
////////////////////////////////////////////////////////////////////////////
//    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
//
////////////////////////////////////////////////////////////////////////////


#ifndef _PROGRAM_GPU_H
#define _PROGRAM_GPU_H

////////////////////////////////////////////////////////////////////////////
//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;}
};

#endif