> +        while(size < IndexCount * sizeof(WORD))
> +        {
> +            size <<= 1;

> +        }
Thinking about it, is there a reason for growing the buffer in power of two 
sizes, and not simply set it to the size required for the draw call? E.g. if 
the app passes index data with a size somewhere between 2^31 and 2^32-1(which 
still still fits in the UINT variable) the power of two growing will try to 
create a 2^32 byte buffer which overflows and fails. So you're cutting the 
possible index buffer size in half.

(Of course if an app actually tries to create a >2GB index buffer we have 
bigger problems than the UINT, especially in a 32 bit process)



Reply via email to