[libgens] CrazyEffect: Improve performance on systems where RAND_MAX >= 0x3FFFFFFF.
authorDavid Korth <gerbilsoft@gerbilsoft.com>
Wed, 2 Sep 2015 06:26:13 +0000 (02:26 -0400)
committerDavid Korth <gerbilsoft@gerbilsoft.com>
Wed, 2 Sep 2015 06:26:13 +0000 (02:26 -0400)
commit0eee2b88c25e9da13d98665f7451b6c225fa8495
treeac1ce508f464cefad870e50cba49ac1212858c72
parent57a5ca3c439480eeba588a4475fa6a6c57bbb22a
[libgens] CrazyEffect: Improve performance on systems where RAND_MAX >= 0x3FFFFFFF.

glibc's RAND_MAX is 0x7FFFFFFF. We can cache the high bits as a second
random number in order to cut the number of rand() calls in half.

This increases performance on my system from around ~45-50 fps to
~56-60 fps in both the debug and release builds. There's no difference
between the two, so I suspect that rand() is the main bottleneck.

TODO: Use a faster rand() implementation, e.g. Mersenne Twister?
src/libgens/Effects/CrazyEffect.cpp
src/libgens/Effects/CrazyEffect.hpp