00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef VRS_GL2_EXTSHADER_PROTOTYPEHANDLER_H
00023 #define VRS_GL2_EXTSHADER_PROTOTYPEHANDLER_H
00024
00025
00026
00027
00028 #include <vrs/sharedobj.h>
00029
00030
00031
00032
00033 #include <vrs/opengl/gl2/us/config.h>
00034
00035
00036 namespace VRS
00037 {
00038 namespace GL2
00039 {
00040 namespace EXTSHADER
00041 {
00042 class VRS_US_API PrototypeHandler : public SharedObj
00043 {
00044 public:
00045
00046 enum HandlerMode
00047 {
00048 Local = 1,
00049 Global = 2,
00050 Optional = 3,
00051 Ignore = 4,
00052
00053 };
00054 VRS_SERIALIZABLE_CLASS_ENUM (HandlerMode);
00055
00056
00057 PrototypeHandler(const std::string& prototypeHandlerName,
00058 HandlerMode defaultMode);
00059
00060 PrototypeHandler(SO<PrototypeHandler> prototypeHandler);
00061
00062 void setPrototypeHandlerName(const std::string& handlerName);
00063 inline const std::string& getPrototypeHandlerName(void) const
00064 {
00065 return this->prototypeHandlerName_;
00066 }
00067
00068 void setHandlerMode(HandlerMode handlerMode);
00069 inline HandlerMode getHandlerMode(void) const
00070 {
00071 return this->handlerMode_;
00072 }
00073
00074 VRS_TYPEINFO(PrototypeHandler, SharedObj);
00075 VRS_SERIALIZABLE(PrototypeHandler);
00076
00077 protected:
00078
00079 PrototypeHandler(void);
00080
00081 private:
00082
00083 std::string prototypeHandlerName_;
00084 HandlerMode handlerMode_;
00085
00086 };
00087
00088 };
00089
00090 };
00091
00092 };
00093
00094 #endif // VRS_GL2_EXTSHADER_PROTOTYPEHANDLER_H