void NodeStructe::processSubNode(ODDLParser::DDLNode* node) { if (!node) return; std::string tokenType = node->getType(); if (tokenType == "Transform") { DataArrayList *transformData(node->getDataArrayList()); if (NULL != transformData) { if (transformData->m_numItems != 16) { return; } setMatrix(this, transformData); } } else if (tokenType == "ObjectRef") { Reference* refValue = node->getReferences(); if (refValue) { Text* refId = refValue->m_referencedName[0]->m_id; objectRefName.assign(refId->m_buffer, refId->m_len); } } else { Structure::processSubNode(node); } }
void Quads::uploadTransforms() const { glBindBuffer(GL_ARRAY_BUFFER, transformBuf); glBufferData( GL_ARRAY_BUFFER, transformDataByteCount(), transformData(), GL_STATIC_DRAW ); }