| /*
|
| * Copyright 2006 Sony Computer Entertainment Inc.
|
| *
|
| * Licensed under the MIT Open Source License, for details please see license.txt or the website
|
| * http://www.opensource.org/licenses/mit-license.php
|
| *
|
| */ |
| |
| #ifndef __domProfile_GLSL_h__ |
| #define __domProfile_GLSL_h__ |
| |
| #include <dae/daeDocument.h> |
| #include <dom/domTypes.h> |
| #include <dom/domElements.h> |
| |
| #include <dom/domFx_profile_abstract.h> |
| #include <dom/domAsset.h> |
| #include <dom/domImage.h> |
| #include <dom/domExtra.h> |
| #include <dom/domFx_code_profile.h> |
| #include <dom/domFx_include_common.h> |
| #include <dom/domGlsl_newparam.h> |
| #include <dom/domFx_annotate_common.h> |
| #include <dom/domGlsl_setparam.h> |
| #include <dom/domGl_pipeline_settings.h> |
| #include <dom/domFx_colortarget_common.h> |
| #include <dom/domFx_depthtarget_common.h> |
| #include <dom/domFx_stenciltarget_common.h> |
| #include <dom/domFx_clearcolor_common.h> |
| #include <dom/domFx_cleardepth_common.h> |
| #include <dom/domFx_clearstencil_common.h> |
| #include <dom/domGlsl_param_type.h> |
| class DAE; |
| |
| /** |
| * Opens a block of GLSL platform-specific data types and technique declarations. |
| */ |
| class domProfile_GLSL : public domFx_profile_abstract |
| { |
| public: |
| virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PROFILE_GLSL; } |
| static daeInt ID() { return 730; } |
| virtual daeInt typeID() const { return ID(); } |
| public: |
| class domTechnique; |
| |
| typedef daeSmartRef<domTechnique> domTechniqueRef; |
| typedef daeTArray<domTechniqueRef> domTechnique_Array; |
| |
| /** |
| * Holds a description of the textures, samplers, shaders, parameters, and |
| * passes necessary for rendering this effect using one method. |
| */ |
| class domTechnique : public daeElement |
| { |
| public: |
| virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::TECHNIQUE; } |
| static daeInt ID() { return 731; } |
| virtual daeInt typeID() const { return ID(); } |
| public: |
| class domPass; |
| |
| typedef daeSmartRef<domPass> domPassRef; |
| typedef daeTArray<domPassRef> domPass_Array; |
| |
| /** |
| * A static declaration of all the render states, shaders, and settings for |
| * one rendering pipeline. |
| */ |
| class domPass : public daeElement |
| { |
| public: |
| virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PASS; } |
| static daeInt ID() { return 732; } |
| virtual daeInt typeID() const { return ID(); } |
| public: |
| class domDraw; |
| |
| typedef daeSmartRef<domDraw> domDrawRef; |
| typedef daeTArray<domDrawRef> domDraw_Array; |
| |
| class domDraw : public daeElement |
| { |
| public: |
| virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::DRAW; } |
| static daeInt ID() { return 733; } |
| virtual daeInt typeID() const { return ID(); } |
| |
| protected: // Value |
| /** |
| * The domFx_draw_common value of the text data of this element. |
| */ |
| domFx_draw_common _value; |
| |
| public: //Accessors and Mutators |
| /** |
| * Gets the value of this element. |
| * @return a domFx_draw_common of the value. |
| */ |
| domFx_draw_common getValue() const { return _value; } |
| /** |
| * Sets the _value of this element. |
| * @param val The new value for this element. |
| */ |
| void setValue( domFx_draw_common val ) { _value = val; } |
| |
| protected: |
| /** |
| * Constructor |
| */ |
| domDraw(DAE& dae) : daeElement(dae), _value() {} |
| /** |
| * Destructor |
| */ |
| virtual ~domDraw() {} |
| /** |
| * Overloaded assignment operator |
| */ |
| virtual domDraw &operator=( const domDraw &cpy ) { (void)cpy; return *this; } |
| |
| public: // STATIC METHODS |
| /** |
| * Creates an instance of this class and returns a daeElementRef referencing it. |
| * @return a daeElementRef referencing an instance of this object. |
| */ |
| static DLLSPEC daeElementRef create(DAE& dae); |
| /** |
| * Creates a daeMetaElement object that describes this element in the meta object reflection framework. |
| * If a daeMetaElement already exists it will return that instead of creating a new one. |
| * @return A daeMetaElement describing this COLLADA element. |
| */ |
| static DLLSPEC daeMetaElement* registerElement(DAE& dae); |
| }; |
| |
| class domShader; |
| |
| typedef daeSmartRef<domShader> domShaderRef; |
| typedef daeTArray<domShaderRef> domShader_Array; |
| |
| /** |
| * Declare and prepare a shader for execution in the rendering pipeline of |
| * a pass. |
| */ |
| class domShader : public daeElement |
| { |
| public: |
| virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::SHADER; } |
| static daeInt ID() { return 734; } |
| virtual daeInt typeID() const { return ID(); } |
| public: |
| class domCompiler_target; |
| |
| typedef daeSmartRef<domCompiler_target> domCompiler_targetRef; |
| typedef daeTArray<domCompiler_targetRef> domCompiler_target_Array; |
| |
| /** |
| * A string declaring which profile or platform the compiler is targeting |
| * this shader for. |
| */ |
| class domCompiler_target : public daeElement |
| { |
| public: |
| virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMPILER_TARGET; } |
| static daeInt ID() { return 735; } |
| virtual daeInt typeID() const { return ID(); } |
| |
| protected: // Value |
| /** |
| * The xsNMTOKEN value of the text data of this element. |
| */ |
| xsNMTOKEN _value; |
| |
| public: //Accessors and Mutators |
| /** |
| * Gets the value of this element. |
| * @return Returns a xsNMTOKEN of the value. |
| */ |
| xsNMTOKEN getValue() const { return _value; } |
| /** |
| * Sets the _value of this element. |
| * @param val The new value for this element. |
| */ |
| void setValue( xsNMTOKEN val ) { *(daeStringRef*)&_value = val; } |
| |
| protected: |
| /** |
| * Constructor |
| */ |
| domCompiler_target(DAE& dae) : daeElement(dae), _value() {} |
| /** |
| * Destructor |
| */ |
| virtual ~domCompiler_target() {} |
| /** |
| * Overloaded assignment operator |
| */ |
| virtual domCompiler_target &operator=( const domCompiler_target &cpy ) { (void)cpy; return *this; } |
| |
| public: // STATIC METHODS |
| /** |
| * Creates an instance of this class and returns a daeElementRef referencing it. |
| * @return a daeElementRef referencing an instance of this object. |
| */ |
| static DLLSPEC daeElementRef create(DAE& dae); |
| /** |
| * Creates a daeMetaElement object that describes this element in the meta object reflection framework. |
| * If a daeMetaElement already exists it will return that instead of creating a new one. |
| * @return A daeMetaElement describing this COLLADA element. |
| */ |
| static DLLSPEC daeMetaElement* registerElement(DAE& dae); |
| }; |
| |
| class domCompiler_options; |
| |
| typedef daeSmartRef<domCompiler_options> domCompiler_optionsRef; |
| typedef daeTArray<domCompiler_optionsRef> domCompiler_options_Array; |
| |
| /** |
| * A string containing command-line operations for the shader compiler. |
| */ |
| class domCompiler_options : public daeElement |
| { |
| public: |
| virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::COMPILER_OPTIONS; } |
| static daeInt ID() { return 736; } |
| virtual daeInt typeID() const { return ID(); } |
| |
| protected: // Value |
| /** |
| * The xsString value of the text data of this element. |
| */ |
| xsString _value; |
| |
| public: //Accessors and Mutators |
| /** |
| * Gets the value of this element. |
| * @return Returns a xsString of the value. |
| */ |
| xsString getValue() const { return _value; } |
| /** |
| * Sets the _value of this element. |
| * @param val The new value for this element. |
| */ |
| void setValue( xsString val ) { *(daeStringRef*)&_value = val; } |
| |
| protected: |
| /** |
| * Constructor |
| */ |
| domCompiler_options(DAE& dae) : daeElement(dae), _value() {} |
| /** |
| * Destructor |
| */ |
| virtual ~domCompiler_options() {} |
| /** |
| * Overloaded assignment operator |
| */ |
| virtual domCompiler_options &operator=( const domCompiler_options &cpy ) { (void)cpy; return *this; } |
| |
| public: // STATIC METHODS |
| /** |
| * Creates an instance of this class and returns a daeElementRef referencing it. |
| * @return a daeElementRef referencing an instance of this object. |
| */ |
| static DLLSPEC daeElementRef create(DAE& dae); |
| /** |
| * Creates a daeMetaElement object that describes this element in the meta object reflection framework. |
| * If a daeMetaElement already exists it will return that instead of creating a new one. |
| * @return A daeMetaElement describing this COLLADA element. |
| */ |
| static DLLSPEC daeMetaElement* registerElement(DAE& dae); |
| }; |
| |
| class domName; |
| |
| typedef daeSmartRef<domName> domNameRef; |
| typedef daeTArray<domNameRef> domName_Array; |
| |
| /** |
| * The entry symbol for the shader function. |
| */ |
| class domName : public daeElement |
| { |
| public: |
| virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::NAME; } |
| static daeInt ID() { return 737; } |
| virtual daeInt typeID() const { return ID(); } |
| protected: // Attribute |
| xsNCName attrSource; |
| |
| protected: // Value |
| /** |
| * The xsNCName value of the text data of this element. |
| */ |
| xsNCName _value; |
| |
| public: //Accessors and Mutators |
| /** |
| * Gets the source attribute. |
| * @return Returns a xsNCName of the source attribute. |
| */ |
| xsNCName getSource() const { return attrSource; } |
| /** |
| * Sets the source attribute. |
| * @param atSource The new value for the source attribute. |
| */ |
| void setSource( xsNCName atSource ) { *(daeStringRef*)&attrSource = atSource; _validAttributeArray[0] = true; } |
| |
| /** |
| * Gets the value of this element. |
| * @return Returns a xsNCName of the value. |
| */ |
| xsNCName getValue() const { return _value; } |
| /** |
| * Sets the _value of this element. |
| * @param val The new value for this element. |
| */ |
| void setValue( xsNCName val ) { *(daeStringRef*)&_value = val; } |
| |
| protected: |
| /** |
| * Constructor |
| */ |
| domName(DAE& dae) : daeElement(dae), attrSource(), _value() {} |
| /** |
| * Destructor |
| */ |
| virtual ~domName() {} |
| /** |
| * Overloaded assignment operator |
| */ |
| virtual domName &operator=( const domName &cpy ) { (void)cpy; return *this; } |
| |
| public: // STATIC METHODS |
| /** |
| * Creates an instance of this class and returns a daeElementRef referencing it. |
| * @return a daeElementRef referencing an instance of this object. |
| */ |
| static DLLSPEC daeElementRef create(DAE& dae); |
| /** |
| * Creates a daeMetaElement object that describes this element in the meta object reflection framework. |
| * If a daeMetaElement already exists it will return that instead of creating a new one. |
| * @return A daeMetaElement describing this COLLADA element. |
| */ |
| static DLLSPEC daeMetaElement* registerElement(DAE& dae); |
| }; |
| |
| class domBind; |
| |
| typedef daeSmartRef<domBind> domBindRef; |
| typedef daeTArray<domBindRef> domBind_Array; |
| |
| /** |
| * Binds values to uniform inputs of a shader. |
| */ |
| class domBind : public daeElement |
| { |
| public: |
| virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::BIND; } |
| static daeInt ID() { return 738; } |
| virtual daeInt typeID() const { return ID(); } |
| public: |
| class domParam; |
| |
| typedef daeSmartRef<domParam> domParamRef; |
| typedef daeTArray<domParamRef> domParam_Array; |
| |
| class domParam : public daeElement |
| { |
| public: |
| virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::PARAM; } |
| static daeInt ID() { return 739; } |
| virtual daeInt typeID() const { return ID(); } |
| protected: // Attribute |
| xsString attrRef; |
| |
| |
| public: //Accessors and Mutators |
| /** |
| * Gets the ref attribute. |
| * @return Returns a xsString of the ref attribute. |
| */ |
| xsString getRef() const { return attrRef; } |
| /** |
| * Sets the ref attribute. |
| * @param atRef The new value for the ref attribute. |
| */ |
| void setRef( xsString atRef ) { *(daeStringRef*)&attrRef = atRef; _validAttributeArray[0] = true; } |
| |
| protected: |
| /** |
| * Constructor |
| */ |
| domParam(DAE& dae) : daeElement(dae), attrRef() {} |
| /** |
| * Destructor |
| */ |
| virtual ~domParam() {} |
| /** |
| * Overloaded assignment operator |
| */ |
| virtual domParam &operator=( const domParam &cpy ) { (void)cpy; return *this; } |
| |
| public: // STATIC METHODS |
| /** |
| * Creates an instance of this class and returns a daeElementRef referencing it. |
| * @return a daeElementRef referencing an instance of this object. |
| */ |
| static DLLSPEC daeElementRef create(DAE& dae); |
| /** |
| * Creates a daeMetaElement object that describes this element in the meta object reflection framework. |
| * If a daeMetaElement already exists it will return that instead of creating a new one. |
| * @return A daeMetaElement describing this COLLADA element. |
| */ |
| static DLLSPEC daeMetaElement* registerElement(DAE& dae); |
| }; |
| |
| |
| protected: // Attribute |
| /** |
| * The identifier for a uniform input parameter to the shader (a formal function |
| * parameter or in-scope global) that will be bound to an external resource. |
| */ |
| xsNCName attrSymbol; |
| |
| protected: // Elements |
| domGlsl_param_typeRef elemGlsl_param_type; |
| domParamRef elemParam; |
| /** |
| * Used to preserve order in elements that do not specify strict sequencing of sub-elements. |
| */ |
| daeElementRefArray _contents; |
| /** |
| * Used to preserve order in elements that have a complex content model. |
| */ |
| daeUIntArray _contentsOrder; |
| |
| /** |
| * Used to store information needed for some content model objects. |
| */ |
| daeTArray< daeCharArray * > _CMData; |
| |
| |
| public: //Accessors and Mutators |
| /** |
| * Gets the symbol attribute. |
| * @return Returns a xsNCName of the symbol attribute. |
| */ |
| xsNCName getSymbol() const { return attrSymbol; } |
| /** |
| * Sets the symbol attribute. |
| * @param atSymbol The new value for the symbol attribute. |
| */ |
| void setSymbol( xsNCName atSymbol ) { *(daeStringRef*)&attrSymbol = atSymbol; _validAttributeArray[0] = true; } |
| |
| /** |
| * Gets the glsl_param_type element. |
| * @return a daeSmartRef to the glsl_param_type element. |
| */ |
| const domGlsl_param_typeRef getGlsl_param_type() const { return elemGlsl_param_type; } |
| /** |
| * Gets the param element. |
| * @return a daeSmartRef to the param element. |
| */ |
| const domParamRef getParam() const { return elemParam; } |
| /** |
| * Gets the _contents array. |
| * @return Returns a reference to the _contents element array. |
| */ |
| daeElementRefArray &getContents() { return _contents; } |
| /** |
| * Gets the _contents array. |
| * @return Returns a constant reference to the _contents element array. |
| */ |
| const daeElementRefArray &getContents() const { return _contents; } |
| |
| protected: |
| /** |
| * Constructor |
| */ |
| domBind(DAE& dae) : daeElement(dae), attrSymbol(), elemGlsl_param_type(), elemParam() {} |
| /** |
| * Destructor |
| */ |
| virtual ~domBind() { daeElement::deleteCMDataArray(_CMData); } |
| /** |
| * Overloaded assignment operator |
| */ |
| virtual domBind &operator=( const domBind &cpy ) { (void)cpy; return *this; } |
| |
| public: // STATIC METHODS |
| /** |
| * Creates an instance of this class and returns a daeElementRef referencing it. |
| * @return a daeElementRef referencing an instance of this object. |
| */ |
| static DLLSPEC daeElementRef create(DAE& dae); |
| /** |
| * Creates a daeMetaElement object that describes this element in the meta object reflection framework. |
| * If a daeMetaElement already exists it will return that instead of creating a new one. |
| * @return A daeMetaElement describing this COLLADA element. |
| */ |
| static DLLSPEC daeMetaElement* registerElement(DAE& dae); |
| }; |
| |
| |
| protected: // Attribute |
| /** |
| * In which pipeline stage this programmable shader is designed to execute, |
| * for example, VERTEX, FRAGMENT, etc. |
| */ |
| domGlsl_pipeline_stage attrStage; |
| |
| protected: // Elements |
| domFx_annotate_common_Array elemAnnotate_array; |
| /** |
| * A string declaring which profile or platform the compiler is targeting |
| * this shader for. @see domCompiler_target |
| */ |
| domCompiler_targetRef elemCompiler_target; |
| /** |
| * A string containing command-line operations for the shader compiler. @see |
| * domCompiler_options |
| */ |
| domCompiler_optionsRef elemCompiler_options; |
| /** |
| * The entry symbol for the shader function. @see domName |
| */ |
| domNameRef elemName; |
| /** |
| * Binds values to uniform inputs of a shader. @see domBind |
| */ |
| domBind_Array elemBind_array; |
| |
| public: //Accessors and Mutators |
| /** |
| * Gets the stage attribute. |
| * @return Returns a domGlsl_pipeline_stage of the stage attribute. |
| */ |
| domGlsl_pipeline_stage getStage() const { return attrStage; } |
| /** |
| * Sets the stage attribute. |
| * @param atStage The new value for the stage attribute. |
| */ |
| void setStage( domGlsl_pipeline_stage atStage ) { attrStage = atStage; _validAttributeArray[0] = true; } |
| |
| /** |
| * Gets the annotate element array. |
| * @return Returns a reference to the array of annotate elements. |
| */ |
| domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } |
| /** |
| * Gets the annotate element array. |
| * @return Returns a constant reference to the array of annotate elements. |
| */ |
| const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } |
| /** |
| * Gets the compiler_target element. |
| * @return a daeSmartRef to the compiler_target element. |
| */ |
| const domCompiler_targetRef getCompiler_target() const { return elemCompiler_target; } |
| /** |
| * Gets the compiler_options element. |
| * @return a daeSmartRef to the compiler_options element. |
| */ |
| const domCompiler_optionsRef getCompiler_options() const { return elemCompiler_options; } |
| /** |
| * Gets the name element. |
| * @return a daeSmartRef to the name element. |
| */ |
| const domNameRef getName() const { return elemName; } |
| /** |
| * Gets the bind element array. |
| * @return Returns a reference to the array of bind elements. |
| */ |
| domBind_Array &getBind_array() { return elemBind_array; } |
| /** |
| * Gets the bind element array. |
| * @return Returns a constant reference to the array of bind elements. |
| */ |
| const domBind_Array &getBind_array() const { return elemBind_array; } |
| protected: |
| /** |
| * Constructor |
| */ |
| domShader(DAE& dae) : daeElement(dae), attrStage(), elemAnnotate_array(), elemCompiler_target(), elemCompiler_options(), elemName(), elemBind_array() {} |
| /** |
| * Destructor |
| */ |
| virtual ~domShader() {} |
| /** |
| * Overloaded assignment operator |
| */ |
| virtual domShader &operator=( const domShader &cpy ) { (void)cpy; return *this; } |
| |
| public: // STATIC METHODS |
| /** |
| * Creates an instance of this class and returns a daeElementRef referencing it. |
| * @return a daeElementRef referencing an instance of this object. |
| */ |
| static DLLSPEC daeElementRef create(DAE& dae); |
| /** |
| * Creates a daeMetaElement object that describes this element in the meta object reflection framework. |
| * If a daeMetaElement already exists it will return that instead of creating a new one. |
| * @return A daeMetaElement describing this COLLADA element. |
| */ |
| static DLLSPEC daeMetaElement* registerElement(DAE& dae); |
| }; |
| |
| |
| protected: // Attribute |
| /** |
| * The sid attribute is a text string value containing the sub-identifier |
| * of this element. This value must be unique within the scope of the parent |
| * element. Optional attribute. |
| */ |
| xsNCName attrSid; |
| |
| protected: // Elements |
| domFx_annotate_common_Array elemAnnotate_array; |
| domFx_colortarget_common_Array elemColor_target_array; |
| domFx_depthtarget_common_Array elemDepth_target_array; |
| domFx_stenciltarget_common_Array elemStencil_target_array; |
| domFx_clearcolor_common_Array elemColor_clear_array; |
| domFx_cleardepth_common_Array elemDepth_clear_array; |
| domFx_clearstencil_common_Array elemStencil_clear_array; |
| domDrawRef elemDraw; |
| domGl_pipeline_settings_Array elemGl_pipeline_settings_array; |
| /** |
| * Declare and prepare a shader for execution in the rendering pipeline of |
| * a pass. @see domShader |
| */ |
| domShader_Array elemShader_array; |
| domExtra_Array elemExtra_array; |
| /** |
| * Used to preserve order in elements that do not specify strict sequencing of sub-elements. |
| */ |
| daeElementRefArray _contents; |
| /** |
| * Used to preserve order in elements that have a complex content model. |
| */ |
| daeUIntArray _contentsOrder; |
| |
| /** |
| * Used to store information needed for some content model objects. |
| */ |
| daeTArray< daeCharArray * > _CMData; |
| |
| |
| public: //Accessors and Mutators |
| /** |
| * Gets the sid attribute. |
| * @return Returns a xsNCName of the sid attribute. |
| */ |
| xsNCName getSid() const { return attrSid; } |
| /** |
| * Sets the sid attribute. |
| * @param atSid The new value for the sid attribute. |
| */ |
| void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[0] = true; } |
| |
| /** |
| * Gets the annotate element array. |
| * @return Returns a reference to the array of annotate elements. |
| */ |
| domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } |
| /** |
| * Gets the annotate element array. |
| * @return Returns a constant reference to the array of annotate elements. |
| */ |
| const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } |
| /** |
| * Gets the color_target element array. |
| * @return Returns a reference to the array of color_target elements. |
| */ |
| domFx_colortarget_common_Array &getColor_target_array() { return elemColor_target_array; } |
| /** |
| * Gets the color_target element array. |
| * @return Returns a constant reference to the array of color_target elements. |
| */ |
| const domFx_colortarget_common_Array &getColor_target_array() const { return elemColor_target_array; } |
| /** |
| * Gets the depth_target element array. |
| * @return Returns a reference to the array of depth_target elements. |
| */ |
| domFx_depthtarget_common_Array &getDepth_target_array() { return elemDepth_target_array; } |
| /** |
| * Gets the depth_target element array. |
| * @return Returns a constant reference to the array of depth_target elements. |
| */ |
| const domFx_depthtarget_common_Array &getDepth_target_array() const { return elemDepth_target_array; } |
| /** |
| * Gets the stencil_target element array. |
| * @return Returns a reference to the array of stencil_target elements. |
| */ |
| domFx_stenciltarget_common_Array &getStencil_target_array() { return elemStencil_target_array; } |
| /** |
| * Gets the stencil_target element array. |
| * @return Returns a constant reference to the array of stencil_target elements. |
| */ |
| const domFx_stenciltarget_common_Array &getStencil_target_array() const { return elemStencil_target_array; } |
| /** |
| * Gets the color_clear element array. |
| * @return Returns a reference to the array of color_clear elements. |
| */ |
| domFx_clearcolor_common_Array &getColor_clear_array() { return elemColor_clear_array; } |
| /** |
| * Gets the color_clear element array. |
| * @return Returns a constant reference to the array of color_clear elements. |
| */ |
| const domFx_clearcolor_common_Array &getColor_clear_array() const { return elemColor_clear_array; } |
| /** |
| * Gets the depth_clear element array. |
| * @return Returns a reference to the array of depth_clear elements. |
| */ |
| domFx_cleardepth_common_Array &getDepth_clear_array() { return elemDepth_clear_array; } |
| /** |
| * Gets the depth_clear element array. |
| * @return Returns a constant reference to the array of depth_clear elements. |
| */ |
| const domFx_cleardepth_common_Array &getDepth_clear_array() const { return elemDepth_clear_array; } |
| /** |
| * Gets the stencil_clear element array. |
| * @return Returns a reference to the array of stencil_clear elements. |
| */ |
| domFx_clearstencil_common_Array &getStencil_clear_array() { return elemStencil_clear_array; } |
| /** |
| * Gets the stencil_clear element array. |
| * @return Returns a constant reference to the array of stencil_clear elements. |
| */ |
| const domFx_clearstencil_common_Array &getStencil_clear_array() const { return elemStencil_clear_array; } |
| /** |
| * Gets the draw element. |
| * @return a daeSmartRef to the draw element. |
| */ |
| const domDrawRef getDraw() const { return elemDraw; } |
| /** |
| * Gets the gl_pipeline_settings element array. |
| * @return Returns a reference to the array of gl_pipeline_settings elements. |
| */ |
| domGl_pipeline_settings_Array &getGl_pipeline_settings_array() { return elemGl_pipeline_settings_array; } |
| /** |
| * Gets the gl_pipeline_settings element array. |
| * @return Returns a constant reference to the array of gl_pipeline_settings elements. |
| */ |
| const domGl_pipeline_settings_Array &getGl_pipeline_settings_array() const { return elemGl_pipeline_settings_array; } |
| /** |
| * Gets the shader element array. |
| * @return Returns a reference to the array of shader elements. |
| */ |
| domShader_Array &getShader_array() { return elemShader_array; } |
| /** |
| * Gets the shader element array. |
| * @return Returns a constant reference to the array of shader elements. |
| */ |
| const domShader_Array &getShader_array() const { return elemShader_array; } |
| /** |
| * Gets the extra element array. |
| * @return Returns a reference to the array of extra elements. |
| */ |
| domExtra_Array &getExtra_array() { return elemExtra_array; } |
| /** |
| * Gets the extra element array. |
| * @return Returns a constant reference to the array of extra elements. |
| */ |
| const domExtra_Array &getExtra_array() const { return elemExtra_array; } |
| /** |
| * Gets the _contents array. |
| * @return Returns a reference to the _contents element array. |
| */ |
| daeElementRefArray &getContents() { return _contents; } |
| /** |
| * Gets the _contents array. |
| * @return Returns a constant reference to the _contents element array. |
| */ |
| const daeElementRefArray &getContents() const { return _contents; } |
| |
| protected: |
| /** |
| * Constructor |
| */ |
| domPass(DAE& dae) : daeElement(dae), attrSid(), elemAnnotate_array(), elemColor_target_array(), elemDepth_target_array(), elemStencil_target_array(), elemColor_clear_array(), elemDepth_clear_array(), elemStencil_clear_array(), elemDraw(), elemGl_pipeline_settings_array(), elemShader_array(), elemExtra_array() {} |
| /** |
| * Destructor |
| */ |
| virtual ~domPass() { daeElement::deleteCMDataArray(_CMData); } |
| /** |
| * Overloaded assignment operator |
| */ |
| virtual domPass &operator=( const domPass &cpy ) { (void)cpy; return *this; } |
| |
| public: // STATIC METHODS |
| /** |
| * Creates an instance of this class and returns a daeElementRef referencing it. |
| * @return a daeElementRef referencing an instance of this object. |
| */ |
| static DLLSPEC daeElementRef create(DAE& dae); |
| /** |
| * Creates a daeMetaElement object that describes this element in the meta object reflection framework. |
| * If a daeMetaElement already exists it will return that instead of creating a new one. |
| * @return A daeMetaElement describing this COLLADA element. |
| */ |
| static DLLSPEC daeMetaElement* registerElement(DAE& dae); |
| }; |
| |
| |
| protected: // Attributes |
| /** |
| * The id attribute is a text string containing the unique identifier of |
| * this element. This value must be unique within the instance document. |
| * Optional attribute. |
| */ |
| xsID attrId; |
| /** |
| * The sid attribute is a text string value containing the sub-identifier |
| * of this element. This value must be unique within the scope of the parent |
| * element. Optional attribute. |
| */ |
| xsNCName attrSid; |
| |
| protected: // Elements |
| domFx_annotate_common_Array elemAnnotate_array; |
| domFx_code_profile_Array elemCode_array; |
| domFx_include_common_Array elemInclude_array; |
| domImage_Array elemImage_array; |
| domGlsl_newparam_Array elemNewparam_array; |
| domGlsl_setparam_Array elemSetparam_array; |
| /** |
| * A static declaration of all the render states, shaders, and settings for |
| * one rendering pipeline. @see domPass |
| */ |
| domPass_Array elemPass_array; |
| domExtra_Array elemExtra_array; |
| /** |
| * Used to preserve order in elements that do not specify strict sequencing of sub-elements. |
| */ |
| daeElementRefArray _contents; |
| /** |
| * Used to preserve order in elements that have a complex content model. |
| */ |
| daeUIntArray _contentsOrder; |
| |
| /** |
| * Used to store information needed for some content model objects. |
| */ |
| daeTArray< daeCharArray * > _CMData; |
| |
| |
| public: //Accessors and Mutators |
| /** |
| * Gets the id attribute. |
| * @return Returns a xsID of the id attribute. |
| */ |
| xsID getId() const { return attrId; } |
| /** |
| * Sets the id attribute. |
| * @param atId The new value for the id attribute. |
| */ |
| void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; |
| if( _document != NULL ) _document->changeElementID( this, attrId ); |
| } |
| |
| /** |
| * Gets the sid attribute. |
| * @return Returns a xsNCName of the sid attribute. |
| */ |
| xsNCName getSid() const { return attrSid; } |
| /** |
| * Sets the sid attribute. |
| * @param atSid The new value for the sid attribute. |
| */ |
| void setSid( xsNCName atSid ) { *(daeStringRef*)&attrSid = atSid; _validAttributeArray[1] = true; } |
| |
| /** |
| * Gets the annotate element array. |
| * @return Returns a reference to the array of annotate elements. |
| */ |
| domFx_annotate_common_Array &getAnnotate_array() { return elemAnnotate_array; } |
| /** |
| * Gets the annotate element array. |
| * @return Returns a constant reference to the array of annotate elements. |
| */ |
| const domFx_annotate_common_Array &getAnnotate_array() const { return elemAnnotate_array; } |
| /** |
| * Gets the code element array. |
| * @return Returns a reference to the array of code elements. |
| */ |
| domFx_code_profile_Array &getCode_array() { return elemCode_array; } |
| /** |
| * Gets the code element array. |
| * @return Returns a constant reference to the array of code elements. |
| */ |
| const domFx_code_profile_Array &getCode_array() const { return elemCode_array; } |
| /** |
| * Gets the include element array. |
| * @return Returns a reference to the array of include elements. |
| */ |
| domFx_include_common_Array &getInclude_array() { return elemInclude_array; } |
| /** |
| * Gets the include element array. |
| * @return Returns a constant reference to the array of include elements. |
| */ |
| const domFx_include_common_Array &getInclude_array() const { return elemInclude_array; } |
| /** |
| * Gets the image element array. |
| * @return Returns a reference to the array of image elements. |
| */ |
| domImage_Array &getImage_array() { return elemImage_array; } |
| /** |
| * Gets the image element array. |
| * @return Returns a constant reference to the array of image elements. |
| */ |
| const domImage_Array &getImage_array() const { return elemImage_array; } |
| /** |
| * Gets the newparam element array. |
| * @return Returns a reference to the array of newparam elements. |
| */ |
| domGlsl_newparam_Array &getNewparam_array() { return elemNewparam_array; } |
| /** |
| * Gets the newparam element array. |
| * @return Returns a constant reference to the array of newparam elements. |
| */ |
| const domGlsl_newparam_Array &getNewparam_array() const { return elemNewparam_array; } |
| /** |
| * Gets the setparam element array. |
| * @return Returns a reference to the array of setparam elements. |
| */ |
| domGlsl_setparam_Array &getSetparam_array() { return elemSetparam_array; } |
| /** |
| * Gets the setparam element array. |
| * @return Returns a constant reference to the array of setparam elements. |
| */ |
| const domGlsl_setparam_Array &getSetparam_array() const { return elemSetparam_array; } |
| /** |
| * Gets the pass element array. |
| * @return Returns a reference to the array of pass elements. |
| */ |
| domPass_Array &getPass_array() { return elemPass_array; } |
| /** |
| * Gets the pass element array. |
| * @return Returns a constant reference to the array of pass elements. |
| */ |
| const domPass_Array &getPass_array() const { return elemPass_array; } |
| /** |
| * Gets the extra element array. |
| * @return Returns a reference to the array of extra elements. |
| */ |
| domExtra_Array &getExtra_array() { return elemExtra_array; } |
| /** |
| * Gets the extra element array. |
| * @return Returns a constant reference to the array of extra elements. |
| */ |
| const domExtra_Array &getExtra_array() const { return elemExtra_array; } |
| /** |
| * Gets the _contents array. |
| * @return Returns a reference to the _contents element array. |
| */ |
| daeElementRefArray &getContents() { return _contents; } |
| /** |
| * Gets the _contents array. |
| * @return Returns a constant reference to the _contents element array. |
| */ |
| const daeElementRefArray &getContents() const { return _contents; } |
| |
| protected: |
| /** |
| * Constructor |
| */ |
| domTechnique(DAE& dae) : daeElement(dae), attrId(), attrSid(), elemAnnotate_array(), elemCode_array(), elemInclude_array(), elemImage_array(), elemNewparam_array(), elemSetparam_array(), elemPass_array(), elemExtra_array() {} |
| /** |
| * Destructor |
| */ |
| virtual ~domTechnique() { daeElement::deleteCMDataArray(_CMData); } |
| /** |
| * Overloaded assignment operator |
| */ |
| virtual domTechnique &operator=( const domTechnique &cpy ) { (void)cpy; return *this; } |
| |
| public: // STATIC METHODS |
| /** |
| * Creates an instance of this class and returns a daeElementRef referencing it. |
| * @return a daeElementRef referencing an instance of this object. |
| */ |
| static DLLSPEC daeElementRef create(DAE& dae); |
| /** |
| * Creates a daeMetaElement object that describes this element in the meta object reflection framework. |
| * If a daeMetaElement already exists it will return that instead of creating a new one. |
| * @return A daeMetaElement describing this COLLADA element. |
| */ |
| static DLLSPEC daeMetaElement* registerElement(DAE& dae); |
| }; |
| |
| |
| protected: // Attribute |
| /** |
| * The id attribute is a text string containing the unique identifier of |
| * this element. This value must be unique within the instance document. |
| * Optional attribute. |
| */ |
| xsID attrId; |
| |
| protected: // Elements |
| domAssetRef elemAsset; |
| domFx_code_profile_Array elemCode_array; |
| domFx_include_common_Array elemInclude_array; |
| domImage_Array elemImage_array; |
| domGlsl_newparam_Array elemNewparam_array; |
| /** |
| * Holds a description of the textures, samplers, shaders, parameters, and |
| * passes necessary for rendering this effect using one method. @see domTechnique |
| */ |
| domTechnique_Array elemTechnique_array; |
| domExtra_Array elemExtra_array; |
| /** |
| * Used to preserve order in elements that do not specify strict sequencing of sub-elements. |
| */ |
| daeElementRefArray _contents; |
| /** |
| * Used to preserve order in elements that have a complex content model. |
| */ |
| daeUIntArray _contentsOrder; |
| |
| /** |
| * Used to store information needed for some content model objects. |
| */ |
| daeTArray< daeCharArray * > _CMData; |
| |
| |
| public: //Accessors and Mutators |
| /** |
| * Gets the id attribute. |
| * @return Returns a xsID of the id attribute. |
| */ |
| xsID getId() const { return attrId; } |
| /** |
| * Sets the id attribute. |
| * @param atId The new value for the id attribute. |
| */ |
| void setId( xsID atId ) { *(daeStringRef*)&attrId = atId; _validAttributeArray[0] = true; |
| if( _document != NULL ) _document->changeElementID( this, attrId ); |
| } |
| |
| /** |
| * Gets the asset element. |
| * @return a daeSmartRef to the asset element. |
| */ |
| const domAssetRef getAsset() const { return elemAsset; } |
| /** |
| * Gets the code element array. |
| * @return Returns a reference to the array of code elements. |
| */ |
| domFx_code_profile_Array &getCode_array() { return elemCode_array; } |
| /** |
| * Gets the code element array. |
| * @return Returns a constant reference to the array of code elements. |
| */ |
| const domFx_code_profile_Array &getCode_array() const { return elemCode_array; } |
| /** |
| * Gets the include element array. |
| * @return Returns a reference to the array of include elements. |
| */ |
| domFx_include_common_Array &getInclude_array() { return elemInclude_array; } |
| /** |
| * Gets the include element array. |
| * @return Returns a constant reference to the array of include elements. |
| */ |
| const domFx_include_common_Array &getInclude_array() const { return elemInclude_array; } |
| /** |
| * Gets the image element array. |
| * @return Returns a reference to the array of image elements. |
| */ |
| domImage_Array &getImage_array() { return elemImage_array; } |
| /** |
| * Gets the image element array. |
| * @return Returns a constant reference to the array of image elements. |
| */ |
| const domImage_Array &getImage_array() const { return elemImage_array; } |
| /** |
| * Gets the newparam element array. |
| * @return Returns a reference to the array of newparam elements. |
| */ |
| domGlsl_newparam_Array &getNewparam_array() { return elemNewparam_array; } |
| /** |
| * Gets the newparam element array. |
| * @return Returns a constant reference to the array of newparam elements. |
| */ |
| const domGlsl_newparam_Array &getNewparam_array() const { return elemNewparam_array; } |
| /** |
| * Gets the technique element array. |
| * @return Returns a reference to the array of technique elements. |
| */ |
| domTechnique_Array &getTechnique_array() { return elemTechnique_array; } |
| /** |
| * Gets the technique element array. |
| * @return Returns a constant reference to the array of technique elements. |
| */ |
| const domTechnique_Array &getTechnique_array() const { return elemTechnique_array; } |
| /** |
| * Gets the extra element array. |
| * @return Returns a reference to the array of extra elements. |
| */ |
| domExtra_Array &getExtra_array() { return elemExtra_array; } |
| /** |
| * Gets the extra element array. |
| * @return Returns a constant reference to the array of extra elements. |
| */ |
| const domExtra_Array &getExtra_array() const { return elemExtra_array; } |
| /** |
| * Gets the _contents array. |
| * @return Returns a reference to the _contents element array. |
| */ |
| daeElementRefArray &getContents() { return _contents; } |
| /** |
| * Gets the _contents array. |
| * @return Returns a constant reference to the _contents element array. |
| */ |
| const daeElementRefArray &getContents() const { return _contents; } |
| |
| protected: |
| /** |
| * Constructor |
| */ |
| domProfile_GLSL(DAE& dae) : domFx_profile_abstract(dae), attrId(), elemAsset(), elemCode_array(), elemInclude_array(), elemImage_array(), elemNewparam_array(), elemTechnique_array(), elemExtra_array() {} |
| /** |
| * Destructor |
| */ |
| virtual ~domProfile_GLSL() { daeElement::deleteCMDataArray(_CMData); } |
| /** |
| * Overloaded assignment operator |
| */ |
| virtual domProfile_GLSL &operator=( const domProfile_GLSL &cpy ) { (void)cpy; return *this; } |
| |
| public: // STATIC METHODS |
| /** |
| * Creates an instance of this class and returns a daeElementRef referencing it. |
| * @return a daeElementRef referencing an instance of this object. |
| */ |
| static DLLSPEC daeElementRef create(DAE& dae); |
| /** |
| * Creates a daeMetaElement object that describes this element in the meta object reflection framework. |
| * If a daeMetaElement already exists it will return that instead of creating a new one. |
| * @return A daeMetaElement describing this COLLADA element. |
| */ |
| static DLLSPEC daeMetaElement* registerElement(DAE& dae); |
| }; |
| |
| |
| #endif |