示例#1
0
	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);
		}
	}
示例#2
0
void Quads::uploadTransforms() const
{
    glBindBuffer(GL_ARRAY_BUFFER, transformBuf);
    glBufferData(
        GL_ARRAY_BUFFER,
        transformDataByteCount(),
        transformData(),
        GL_STATIC_DRAW
    );
}