void SdkMesh::load( uint32_t iMesh, VboMesh* target ) const { // create VB uint32_t iVB = 0;//TODO: more general std::vector<D3D11_INPUT_ELEMENT_DESC> dx11_elements; D3DVERTEXELEMENT9* dx9_elements = mSdkMesh->GetVertexElements(iMesh, iVB); HR(ConvertDeclaration(dx9_elements, dx11_elements)); void* pVertices = static_cast<void*>(mSdkMesh->GetRawVerticesAt(iVB)); size_t nVertices = mSdkMesh->GetNumVertices(iMesh, iVB); size_t VertexSize = mSdkMesh->GetVertexStride(iMesh, iVB); target->createVertexBuffer(pVertices, nVertices, &dx11_elements[0], dx11_elements.size(),VertexSize); // create IB uint32_t iIB = 0;//TODO: more general SDKMESH_INDEX_TYPE idxType = mSdkMesh->GetIndexType(iMesh); size_t nIndices = mSdkMesh->GetNumIndices(iMesh); if (idxType == IT_16BIT) { //TODO: potential bug here? uint16_t* indices = (uint16_t*)mSdkMesh->GetRawIndicesAt(iIB); target->createIndexBuffer(indices, nIndices); } else if (idxType == IT_32BIT) { uint32_t* indices = (uint32_t*)mSdkMesh->GetRawIndicesAt(iIB); target->createIndexBuffer(indices, nIndices); } else { assert(0); } }
/* Generate the JavaScript corresponding to one CSS1 rule. */ static void ConvertRule(css_node rule, StyleBuffer sb) { css_node selector_list, selector; css_node declaration_list; if (! rule || rule->node_id != NODE_RULESET) return; for (selector_list = rule->left; selector_list; selector_list = selector_list->left) { selector = selector_list->right; if (! selector) continue; for (declaration_list = rule->right; declaration_list; declaration_list = declaration_list->left) { if (declaration_list->right) { AnteRule(sb); ConvertSelector(selector->left, selector->right, sb); ConvertDeclaration(declaration_list->right, sb); PostRule(sb); } } } }