| //////////////////////////////////////////////////////////////////////////// | |
| // File: FrameBufferObject.h | |
| // Author: Changchang Wu | |
| // Description : interface for the FrameBufferObject class. | |
| // | |
| // | |
| // | |
| // 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 FrameBufferObject | |
| { | |
| static GLuint GlobalFBO; //not thread-safe | |
| GLuint _fboID; | |
| public: | |
| static int UseSingleFBO; | |
| public: | |
| static void DeleteGlobalFBO(); | |
| static void UnattachTex(GLenum attachment); | |
| static void UnbindFBO(); | |
| static void AttachDepthTexture(GLenum textureTarget, GLuint texID); | |
| static void AttachTexture( GLenum textureTarget, GLenum attachment, GLuint texID); | |
| static void AttachRenderBuffer(GLenum attachment, GLuint buffID ); | |
| static void UnattachRenderBuffer(GLenum attachment); | |
| public: | |
| void BindFBO(); | |
| FrameBufferObject(int autobind = 1); | |
| ~FrameBufferObject(); | |
| }; | |