Exemplo n.º 1
0
 TreeNode *maxTreeRecur(vector<int> &nums, int left, int right) {
     if (left > right)
         return NULL;
     if(left == right) {
         TreeNode *node = new TreeNode (nums[left]);
         return node;
     }
     int maxIndex = findMaxIndex(nums, left, right);
     TreeNode *node = new TreeNode (nums[maxIndex]);
     node->left = maxTreeRecur(nums, left, maxIndex-1);
     node->right = maxTreeRecur(nums, maxIndex+1, right);
     return node;
 }
Exemplo n.º 2
0
void GLEScontext::convertIndirect(GLESConversionArrays& cArrs,GLsizei count,GLenum indices_type,const GLvoid* indices,GLenum array_id,GLESpointer* p) {
    GLenum type    = p->getType();
    int maxElements = findMaxIndex(count,type,indices) + 1;

    int attribSize = p->getSize();
    int size = attribSize * maxElements;
    unsigned int bytes = type == GL_FIXED ? sizeof(GLfixed):sizeof(GLbyte);
    cArrs.allocArr(size,type);
    int stride = p->getStride()?p->getStride():bytes*attribSize;

    const char* data = (const char*)p->getArrayData();
    if(type == GL_FIXED) {
        convertFixedIndirectLoop(data,stride,cArrs.getCurrentData(),count,indices_type,indices,attribSize*sizeof(GLfloat),attribSize);
    } else if(type == GL_BYTE){
        convertByteIndirectLoop(data,stride,cArrs.getCurrentData(),count,indices_type,indices,attribSize*sizeof(GLshort),attribSize);
    }
}