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.
60 lines
1.9 KiB
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
|
|
|