texture.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00036 #ifndef __texture__header__
00037 #define __texture__header__
00038
00039 #include "gpucalc/gpu_resource.h"
00040 #include "gpucalc/bindable.h"
00041
00042 #include "gpucalc/graphic_core.h"
00043
00044 namespace gpucalc
00045 {
00046
00047
00048 const char _TextureClassName [] = "Texture";
00049
00070 class _GpuCalcExport Texture: public Bindable, public GPUResource
00071 {
00072
00073 OBJ_DISABLE_COPY(Texture)
00074
00075
00076 public:
00077 Texture(const std::string & TextureClassName, const std::string & TextureName, TextureUsage , GraphicCore * graphiccore):
00078 Object(TextureClassName, TextureName), Bindable(TextureClassName, TextureName), GPUResource(TextureClassName, TextureName),
00079 mDefaultGraphicCore(graphiccore)
00080 {
00081 }
00082
00083 virtual ~Texture()
00084 {
00085 }
00086
00087
00091 virtual bool isRenderTexture() const = 0;
00092
00093
00094 void bind()
00095 {
00096 mDefaultGraphicCore->bind(this);
00097 }
00098
00099
00100 void unbind()
00101 {
00102 mDefaultGraphicCore->unbind(this);
00103 }
00104
00105
00106 bool isActive() const
00107 {
00108 return (this == mDefaultGraphicCore->getActiveTexture());
00109 }
00110
00111
00112 void reInitialize(const Data & data)
00113 {
00114 mDefaultGraphicCore->initialize(data, *this);
00115 }
00116
00117
00118 protected:
00119
00120 void addSpecificParameter(const std::string & ParameterName, void * ParameterValue, unsigned int Size)
00121 {
00122 Bindable::addSpecificParameter(ParameterName, ParameterValue, Size);
00123 }
00124
00125
00126 private:
00127 GraphicCore * mDefaultGraphicCore;
00128
00129 };
00130 }
00131
00132 #endif