I recently changed all occurrences of rand() and friends to use
g_rand* from the glib 2.0 interface. And in doing so, some of the
flaws of the gimp random seed widget annoyed me. I have some
suggestions for changing it, which I thopught I'd run past the
list before I commit the changes (these are, for the most part,
minor changes which are already done on my machine).
The gimp_random_seed_new() function currently creates a
spinbutton for the seed, and a togglebutton for whether a Time
seed should be used. With the change over to g_rand* () the
default seeding (which is from /dev/urandom by default, and time
if that fails) is much better, so Time os probably no longer
appropriate as a label. But that's superficial.
The real change would be to do away with the toggle, replace the
toggle button with a normal button, and set a random seed in the
spin-box when the button is pressed. For this, I've been using
the global PRNG (g_random_int) rather than setting up what would be
a short-lived GRand * object, but again that would be a trivial
After that the only thing left to do is "intelligent" default
seeding. Do we seed with 0 as the default, and use the same seed
as the last time if "run with last vals" is used for a plug-in?
Should the gimp_random_seed_new() function set a random seed when
called? Or do we seed with a random number to start? Currently
the setting of an initial seed is entirely the plug-ins
responsibility. I propose we leave it that way. The "run with
last vals" should use, imho, the same seed value. This can, of
course, be modified from plug-in to plug-in, but I think it's a
Also, once the behaviour is decided, we should use the random
seed widget across more plug-ins. Several plug-ins currently do
their own thing in this respect, and there's no real need for it.
So there you go - nothing too contentious, but since it's an
interface change, it was suggested I send in a mail. My opinion
is that a random seed box, when used, should set a seed.
E-Mail: [EMAIL PROTECTED]
Gimp-developer mailing list