00001 #ifndef __domGles2_shader_h__ 00002 #define __domGles2_shader_h__ 00003 00004 #include <dae/daeDocument.h> 00005 #include <dom/domTypes.h> 00006 #include <dom/domElements.h> 00007 00008 #include <dom/domFx_sources.h> 00009 #include <dom/domFx_target.h> 00010 #include <dom/domExtra.h> 00011 class DAE; 00012 00017 class domGles2_shader : public daeElement 00018 { 00019 public: 00020 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES2_SHADER; } 00021 static daeInt ID() { return 213; } 00022 virtual daeInt typeID() const { return ID(); } 00023 public: 00024 class domSources; 00025 00026 typedef daeSmartRef<domSources> domSourcesRef; 00027 typedef daeTArray<domSourcesRef> domSources_Array; 00028 00033 class domSources : public domFx_sources 00034 { 00035 public: 00036 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SOURCES; } 00037 static daeInt ID() { return 214; } 00038 virtual daeInt typeID() const { return ID(); } 00039 protected: // Attribute 00044 xsToken attrEntry; 00045 00046 00047 public: //Accessors and Mutators 00052 xsToken getEntry() const { return attrEntry; } 00057 void setEntry( xsToken atEntry ) { *(daeStringRef*)&attrEntry = atEntry; _validAttributeArray[0] = true; } 00058 00059 protected: 00063 domSources(DAE& dae) : domFx_sources(dae), attrEntry() {} 00067 virtual ~domSources() {} 00071 virtual domSources &operator=( const domSources &cpy ) { (void)cpy; return *this; } 00072 00073 public: // STATIC METHODS 00078 static DLLSPEC daeElementRef create(DAE& dae); 00084 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00085 }; 00086 00087 00088 protected: // Attribute 00094 domFx_pipeline_stage attrStage; 00095 00096 protected: // Elements 00101 domSourcesRef elemSources; 00106 domFx_target_Array elemCompiler_array; 00107 domExtra_Array elemExtra_array; 00108 00109 public: //Accessors and Mutators 00114 domFx_pipeline_stage getStage() const { return attrStage; } 00119 void setStage( domFx_pipeline_stage atStage ) { attrStage = atStage; } 00120 00125 const domSourcesRef getSources() const { return elemSources; } 00130 domFx_target_Array &getCompiler_array() { return elemCompiler_array; } 00135 const domFx_target_Array &getCompiler_array() const { return elemCompiler_array; } 00140 domExtra_Array &getExtra_array() { return elemExtra_array; } 00145 const domExtra_Array &getExtra_array() const { return elemExtra_array; } 00146 protected: 00150 domGles2_shader(DAE& dae) : daeElement(dae), attrStage(), elemSources(), elemCompiler_array(), elemExtra_array() {} 00154 virtual ~domGles2_shader() {} 00158 virtual domGles2_shader &operator=( const domGles2_shader &cpy ) { (void)cpy; return *this; } 00159 00160 public: // STATIC METHODS 00165 static DLLSPEC daeElementRef create(DAE& dae); 00171 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 00172 }; 00173 00174 00175 #endif