1 //////////////////////////////////////////////////////////////////////////// 2 // File: FrameBufferObject.h 3 // Author: Changchang Wu 4 // Description : interface for the FrameBufferObject class. 5 // 6 // 7 // 8 // Copyright (c) 2007 University of North Carolina at Chapel Hill 9 // All Rights Reserved 10 // 11 // Permission to use, copy, modify and distribute this software and its 12 // documentation for educational, research and non-profit purposes, without 13 // fee, and without a written agreement is hereby granted, provided that the 14 // above copyright notice and the following paragraph appear in all copies. 15 // 16 // The University of North Carolina at Chapel Hill make no representations 17 // about the suitability of this software for any purpose. It is provided 18 // 'as is' without express or implied warranty. 19 // 20 // Please send BUG REPORTS to ccwu@cs.unc.edu 21 // 22 //////////////////////////////////////////////////////////////////////////// 23 24 25 #if !defined(_FRAME_BUFFER_OBJECT_H) 26 #define _FRAME_BUFFER_OBJECT_H 27 28 class FrameBufferObject 29 { 30 static GLuint GlobalFBO; //not thread-safe 31 GLuint _fboID; 32 public: 33 static int UseSingleFBO; 34 public: 35 static void DeleteGlobalFBO(); 36 static void UnattachTex(GLenum attachment); 37 static void UnbindFBO(); 38 static void AttachDepthTexture(GLenum textureTarget, GLuint texID); 39 static void AttachTexture( GLenum textureTarget, GLenum attachment, GLuint texID); 40 static void AttachRenderBuffer(GLenum attachment, GLuint buffID ); 41 static void UnattachRenderBuffer(GLenum attachment); 42 public: 43 void BindFBO(); 44 FrameBufferObject(int autobind = 1); 45 ~FrameBufferObject(); 46 47 }; 48 49 #endif 50