You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
exercise_2/3rdparty/colmap-dev/lib/SiftGPU/ProgramGPU.h

60 lines
1.9 KiB

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