00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __GL_OBJECT_H__
00025 #define __GL_OBJECT_H__
00026
00027 class GLObject
00028 {
00029 public:
00030 GLObject(void)
00031 {
00032 this->objectID = 0;
00033 }
00034
00035 virtual ~GLObject(void)
00036 {
00037 }
00038
00039 GLuint ObjectID(void) const
00040 {
00041 return this->objectID;
00042 }
00043
00044 bool ValidObject(void) const
00045 {
00046 return (this->objectID != 0);
00047 }
00048
00049 virtual void Gen(void) = 0;
00050 virtual void Del(void) = 0;
00051
00052 protected:
00053 GLuint objectID;
00054 };
00055
00056 class Bindable
00057 {
00058 public:
00059 Bindable(void)
00060 {
00061 this->bound = false;
00062 }
00063
00064 void Bind(void)
00065 {
00066 this->bound = true;
00067 this->DoBind();
00068 }
00069
00070 void Unbind(void)
00071 {
00072 this->DoUnbind();
00073 this->bound = false;
00074 }
00075
00076 bool IsBound(void) const
00077 {
00078 return this->bound;
00079 }
00080
00081 protected:
00082 bool bound;
00083
00084 virtual void DoBind(void) = 0;
00085 virtual void DoUnbind(void) = 0;
00086 };
00087
00088 #endif //__GL_OBJECT_H__