//---------------------------------------------------------------
	void BindVertexInput::add( StreamWriter* sw )
	{
		sw->openElement ( CSWC::CSW_ELEMENT_BIND_VERTEX_INPUT);
		sw->appendAttribute ( CSWC::CSW_ATTRIBUTE_SEMANTIC, getSemantic() );
		sw->appendAttribute ( CSWC::CSW_ATTRIBUTE_INPUT_SEMANTIC, getInputSemantic() );
		sw->appendAttribute ( CSWC::CSW_ATTRIBUTE_INPUT_SET, getInputSet() );
		sw->closeElement();
	}
    bool VertexDeclaration::hasSemantic
    (
        VertexElementSemantic semantic
    ) const
    {
        for(auto it = m_declaration.begin(); it != m_declaration.end(); ++it)
        {
            if( it->getSemantic() == semantic )
                return true;
        }

        return false;
    }