00001 #ifndef CSHADERPROPERTY_H 00002 #define CSHADERPROPERTY_H 00003 00004 /**************************************************************************\ 00005 * REQUIRED HEADERS * 00006 \**************************************************************************/ 00007 00008 00009 //QT 00010 #include "QSettings.h" 00011 //OWN 00012 #include "Memory/IManagedObject.h" 00013 00014 /**************************************************************************\ 00015 * DEFINITIONS * 00016 \**************************************************************************/ 00017 00018 class CVolume; 00019 00020 /**************************************************************************\ 00021 * CLASS * 00022 \**************************************************************************/ 00023 class CShaderProperty : public QObject,public IManagedObject 00024 { 00025 Q_OBJECT 00026 00027 friend class CVolume; 00028 00029 /**************************************************************************\ 00030 * PUBLIC CLASS FUNCTIONS * 00031 \**************************************************************************/ 00032 public: 00033 CShaderProperty(const char * pName,const char * pID) 00034 :propertyName(pName),propertyID(pID){} 00035 00036 virtual ~CShaderProperty(void){} 00037 00038 virtual void OpenState(QSettings &openFile){} 00039 virtual void SaveState(QSettings &saveFile){} 00040 virtual void SaveDefaultState(QSettings &openFile){} 00041 00042 /**************************************************************************\ 00043 * PUBLIC SIGNALS * 00044 \**************************************************************************/ 00045 signals: 00046 void Dirty(int); 00047 00048 /**************************************************************************\ 00049 * PROTECTED CLASS FUNCTIONS * 00050 \**************************************************************************/ 00051 protected: 00052 00053 virtual void UpdateShader(uint programID,int texUnit = -1,int texNum = -1){} 00054 virtual bool NeedTextureUnit(){return false;} 00055 00056 const char * propertyName; 00057 const char * propertyID; 00058 00059 /**************************************************************************\ 00060 * PRIVATE CLASS FUNCTIONS * 00061 \**************************************************************************/ 00062 private: 00063 00064 /**************************************************************************\ 00065 * PRIVATE CLASS MEMBERS * 00066 \**************************************************************************/ 00067 }; 00068 00069 #endif //CSHADERPROPERTY_H