hla: For setting data types recurse into array data elements.

This commit is contained in:
Mathias Froehlich
2012-11-25 22:24:51 +01:00
parent 72a0ff706d
commit 1a68d34663
2 changed files with 17 additions and 0 deletions

View File

@@ -156,6 +156,21 @@ HLAArrayDataElement::getDataElement(HLADataElementIndex::const_iterator begin, H
return dataElement->getDataElement(++begin, end);
}
bool
HLAArrayDataElement::setDataType(const HLADataType* dataType)
{
if (!HLAAbstractArrayDataElement::setDataType(dataType))
return false;
for (unsigned i = 0; i < getNumElements(); ++i) {
HLADataElement* dataElement = getElement(i);
if (!dataElement)
continue;
if (!dataElement->setDataType(getElementDataType()))
return false;
}
return true;
}
bool
HLAArrayDataElement::setNumElements(unsigned size)
{

View File

@@ -63,6 +63,8 @@ public:
virtual HLADataElement* getDataElement(HLADataElementIndex::const_iterator begin, HLADataElementIndex::const_iterator end);
virtual const HLADataElement* getDataElement(HLADataElementIndex::const_iterator begin, HLADataElementIndex::const_iterator end) const;
virtual bool setDataType(const HLADataType* dataType);
virtual bool setNumElements(unsigned size);
virtual bool decodeElement(HLADecodeStream& stream, unsigned i);
virtual unsigned getNumElements() const;