David Odin <[EMAIL PROTECTED]> writes:
> > Actually the plan was to let the plug-in previews respect the settings
> > from gimprc that already exist:
> > (transparency-size medium-checks)
> > Sets the size of the checkerboard used to display transparency.
> > Possible values are small-checks, medium-checks and large-
> > checks.
> > (transparency-type gray-checks)
> > Sets the manner in which transparency is displayed in images.
> > Possible values are light-checks, gray-checks, dark-checks,
> > white-only, gray-only and black-only.
> How hard would this be to implement?
It would involve two changes:
(1) Add transparency-size and transparency-type properties to
GimpPreviewArea and use them when drawing the checkerboard.
(2) Somehow get the preferences to the plug-in.
Step 1 should be pretty much straight-forward. The properties can be
copied more or less directly from GimpDisplayConfig (app/config).
Checkerboard rendering will become slightly more complex but I don't
expect any noticeable slowdown. The code has still some room for
There are two possibilities to implement step 2. Either we add a PDB
API to access the checkerboard settings:
or (and I'd prefer that), we pass these settings to the plug-in in the
GPConfig message. This is a message that is sent to each plug-in when
it is started. We handle this in libgimp and allow the plug-in to
access the settings using a simple API. See for example
gimp_show_tool_tips() or gimp_display_name().
Using the config message is definitely the prefered way of doing this
but unfortunately we are completely braindead and didn't add any
padding to the GPConfig struct :( However, there's still hope but
things are becoming ugly now. Readers with a weak stomach, please
The GPConfig struct contains an unused member which is "gamma". This
is a double and IIRC a double is guaranteed to be always 8 bytes. So
we could remove "gamma" and replace it with two 32bit integers and use
those for the transparency settings. We could even squeeze the
transparency settings into less than 8 bytes and keep the remaining
bytes for future use. Might become useful pretty soon, for example as
a way to pass whether color management should be enabled or disabled.
Can anyone think of better ways to do this? Are there any strong
objections against the ugly hack I outlined above? Did I overlook
something (like for example platforms where a gdouble is not 8 bytes)?
Gimp-developer mailing list