313
static GimpParamDef args[] =
309
static const GimpParamDef args[] =
315
{ GIMP_PDB_INT32, "run_mode", "Interactive, non-interactive" },
316
{ GIMP_PDB_IMAGE, "image", "Input image" },
317
{ GIMP_PDB_DRAWABLE, "drawable", "Input drawable" },
318
{ GIMP_PDB_DRAWABLE, "bumpmap", "Bump map drawable" },
319
{ GIMP_PDB_FLOAT, "azimuth", "Azimuth" },
320
{ GIMP_PDB_FLOAT, "elevation", "Elevation" },
321
{ GIMP_PDB_INT32, "depth", "Depth" },
322
{ GIMP_PDB_INT32, "xofs", "X offset" },
323
{ GIMP_PDB_INT32, "yofs", "Y offset" },
324
{ GIMP_PDB_INT32, "waterlevel", "Level that full transparency should represent" },
325
{ GIMP_PDB_INT32, "ambient", "Ambient lighting factor" },
326
{ GIMP_PDB_INT32, "compensate", "Compensate for darkening" },
327
{ GIMP_PDB_INT32, "invert", "Invert bumpmap" },
328
{ GIMP_PDB_INT32, "type", "Type of map (LINEAR (0), SPHERICAL (1), SINUSOIDAL (2))" }
311
{ GIMP_PDB_INT32, "run-mode", "Interactive, non-interactive" },
312
{ GIMP_PDB_IMAGE, "image", "Input image" },
313
{ GIMP_PDB_DRAWABLE, "drawable", "Input drawable" },
314
{ GIMP_PDB_DRAWABLE, "bumpmap", "Bump map drawable" },
315
{ GIMP_PDB_FLOAT, "azimuth", "Azimuth" },
316
{ GIMP_PDB_FLOAT, "elevation", "Elevation" },
317
{ GIMP_PDB_INT32, "depth", "Depth" },
318
{ GIMP_PDB_INT32, "xofs", "X offset" },
319
{ GIMP_PDB_INT32, "yofs", "Y offset" },
320
{ GIMP_PDB_INT32, "waterlevel", "Level that full transparency "
321
"should represent" },
322
{ GIMP_PDB_INT32, "ambient", "Ambient lighting factor" },
323
{ GIMP_PDB_INT32, "compensate", "Compensate for darkening" },
324
{ GIMP_PDB_INT32, "invert", "Invert bumpmap" },
325
{ GIMP_PDB_INT32, "type", "Type of map (LINEAR (0), "
326
"SPHERICAL (1), SINUSOIDAL (2))" }
331
gimp_install_procedure ("plug_in_bump_map",
332
"Create an embossing effect using an image as a "
329
gimp_install_procedure (PLUG_IN_PROC,
330
N_("Create an embossing effect using a bump map"),
334
331
"This plug-in uses the algorithm described by John "
335
332
"Schlag, \"Fast Embossing Effects on Raster Image "
336
333
"Data\" in Graphics GEMS IV (ISBN 0-12-336155-9). "
834
gimp_ui_init ("bumpmap", TRUE);
831
gimp_ui_init (PLUG_IN_BINARY, TRUE);
836
dialog = gimp_dialog_new (_("Bump Map"), "bumpmap",
833
dialog = gimp_dialog_new (_("Bump Map"), PLUG_IN_BINARY,
838
gimp_standard_help_func, "plug-in-bump-map",
835
gimp_standard_help_func, PLUG_IN_PROC,
840
837
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
841
838
GTK_STOCK_OK, GTK_RESPONSE_OK,
842
gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
847
gimp_window_set_transient (GTK_WINDOW (dialog));
845
849
paned = gtk_hpaned_new ();
846
850
gtk_container_set_border_width (GTK_CONTAINER (paned), 12);
847
851
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), paned);
956
960
bmvals.azimuth, 0.0, 360.0, 1.0, 15.0, 2,
959
g_signal_connect (adj, "value_changed",
963
g_signal_connect (adj, "value-changed",
960
964
G_CALLBACK (gimp_double_adjustment_update),
961
965
&bmvals.azimuth);
962
g_signal_connect_swapped (adj, "value_changed",
966
g_signal_connect_swapped (adj, "value-changed",
963
967
G_CALLBACK (gimp_preview_invalidate),
968
972
bmvals.elevation, 0.5, 90.0, 1.0, 5.0, 2,
971
g_signal_connect (adj, "value_changed",
975
g_signal_connect (adj, "value-changed",
972
976
G_CALLBACK (gimp_double_adjustment_update),
973
977
&bmvals.elevation);
974
g_signal_connect_swapped (adj, "value_changed",
978
g_signal_connect_swapped (adj, "value-changed",
975
979
G_CALLBACK (gimp_preview_invalidate),
980
984
bmvals.depth, 1.0, 65.0, 1.0, 5.0, 0,
983
g_signal_connect (adj, "value_changed",
987
g_signal_connect (adj, "value-changed",
984
988
G_CALLBACK (gimp_int_adjustment_update),
986
g_signal_connect_swapped (adj, "value_changed",
990
g_signal_connect_swapped (adj, "value-changed",
987
991
G_CALLBACK (gimp_preview_invalidate),
989
993
gtk_table_set_row_spacing (GTK_TABLE (table), row++, 12);
996
1000
_("The offset can be adjusted by dragging the "
997
1001
"preview using the middle mouse button."), NULL);
998
g_signal_connect (adj, "value_changed",
1002
g_signal_connect (adj, "value-changed",
999
1003
G_CALLBACK (gimp_int_adjustment_update),
1001
g_signal_connect_swapped (adj, "value_changed",
1005
g_signal_connect_swapped (adj, "value-changed",
1002
1006
G_CALLBACK (gimp_preview_invalidate),
1010
1014
_("The offset can be adjusted by dragging the "
1011
1015
"preview using the middle mouse button."), NULL);
1012
g_signal_connect (adj, "value_changed",
1016
g_signal_connect (adj, "value-changed",
1013
1017
G_CALLBACK (gimp_int_adjustment_update),
1015
g_signal_connect_swapped (adj, "value_changed",
1019
g_signal_connect_swapped (adj, "value-changed",
1016
1020
G_CALLBACK (gimp_preview_invalidate),
1018
1022
gtk_table_set_row_spacing (GTK_TABLE (table), row++, 12);
1022
1026
bmvals.waterlevel, 0.0, 255.0, 1.0, 8.0, 0,
1025
g_signal_connect (adj, "value_changed",
1029
g_signal_connect (adj, "value-changed",
1026
1030
G_CALLBACK (gimp_int_adjustment_update),
1027
1031
&bmvals.waterlevel);
1028
g_signal_connect_swapped (adj, "value_changed",
1032
g_signal_connect_swapped (adj, "value-changed",
1029
1033
G_CALLBACK (gimp_preview_invalidate),
1034
1038
bmvals.ambient, 0.0, 255.0, 1.0, 8.0, 0,
1037
g_signal_connect (adj, "value_changed",
1041
g_signal_connect (adj, "value-changed",
1038
1042
G_CALLBACK (gimp_int_adjustment_update),
1039
1043
&bmvals.ambient);
1040
g_signal_connect_swapped (adj, "value_changed",
1044
g_signal_connect_swapped (adj, "value-changed",
1041
1045
G_CALLBACK (gimp_preview_invalidate),