~ubuntu-branches/ubuntu/jaunty/gimp/jaunty-security

« back to all changes in this revision

Viewing changes to plug-ins/common/bumpmap.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Holbach
  • Date: 2007-05-02 16:33:03 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20070502163303-bvzhjzbpw8qglc4y
Tags: 2.3.16-1ubuntu1
* Resynchronized with Debian, remaining Ubuntu changes:
  - debian/rules: i18n magic.
* debian/control.in:
  - Maintainer: Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com>
* debian/patches/02_help-message.patch,
  debian/patches/03_gimp.desktop.in.in.patch,
  debian/patches/10_dont_show_wizard.patch: updated.
* debian/patches/04_composite-signedness.patch,
  debian/patches/05_add-letter-spacing.patch: dropped, used upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* The GIMP -- an image manipulation program
 
1
/* GIMP - The GNU Image Manipulation Program
2
2
 * Copyright (C) 1995 Spencer Kimball and Peter Mattis
3
3
 *
4
4
 * Bump map plug-in --- emboss an image by using another image as a bump map
102
102
 
103
103
#include "config.h"
104
104
 
105
 
#include <stdio.h>
106
 
#include <stdlib.h>
107
105
#include <string.h>
108
 
#ifdef HAVE_UNISTD_H
109
 
#include <unistd.h>
110
 
#endif
111
 
 
112
 
#include <gtk/gtk.h>
113
106
 
114
107
#include <libgimp/gimp.h>
115
108
#include <libgimp/gimpui.h>
119
112
 
120
113
/***** Magic numbers *****/
121
114
 
122
 
#define PLUG_IN_VERSION "April 2000, 3.0-pre1-ac2"
 
115
#define PLUG_IN_PROC       "plug-in-bump-map"
 
116
#define PLUG_IN_TILED_PROC "plug-in-bump-map-tiled"
 
117
#define PLUG_IN_BINARY     "bumpmap"
 
118
#define PLUG_IN_VERSION    "April 2000, 3.0-pre1-ac2"
123
119
 
124
 
#define SCALE_WIDTH       0
 
120
#define SCALE_WIDTH       100
125
121
 
126
122
/***** Types *****/
127
123
 
247
243
 
248
244
/***** Variables *****/
249
245
 
250
 
GimpPlugInInfo PLUG_IN_INFO =
 
246
const GimpPlugInInfo PLUG_IN_INFO =
251
247
{
252
248
  NULL,  /* init_proc  */
253
249
  NULL,  /* quit_proc  */
310
306
static void
311
307
query (void)
312
308
{
313
 
  static GimpParamDef args[] =
 
309
  static const GimpParamDef args[] =
314
310
  {
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))" }
329
327
  };
330
328
 
331
 
  gimp_install_procedure ("plug_in_bump_map",
332
 
                          "Create an embossing effect using an image as a "
333
 
                          "bump map",
 
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). "
346
343
                          G_N_ELEMENTS (args), 0,
347
344
                          args, NULL);
348
345
 
349
 
  gimp_plugin_menu_register ("plug_in_bump_map", "<Image>/Filters/Map");
 
346
  gimp_plugin_menu_register (PLUG_IN_PROC, "<Image>/Filters/Map");
350
347
 
351
 
  gimp_install_procedure ("plug_in_bump_map_tiled",
 
348
  gimp_install_procedure (PLUG_IN_TILED_PROC,
352
349
                          "Create an embossing effect using a tiled image "
353
350
                          "as a bump map",
354
351
                          "This plug-in uses the algorithm described by John "
434
431
          bmvals.compensate = param[11].data.d_int32;
435
432
          bmvals.invert     = param[12].data.d_int32;
436
433
          bmvals.type       = param[13].data.d_int32;
437
 
          bmvals.tiled      = strcmp (name, "plug_in_bump_map_tiled") == 0;
 
434
          bmvals.tiled      = strcmp (name, PLUG_IN_TILED_PROC) == 0;
438
435
        }
439
436
      break;
440
437
 
489
486
  gint              progress;
490
487
  gint              drawable_tiles_per_row, bm_tiles_per_row;
491
488
 
492
 
  gimp_progress_init (_("Bump-mapping..."));
 
489
  gimp_progress_init (_("Bump-mapping"));
493
490
 
494
491
  /* Get the bumpmap drawable */
495
492
  if (bmvals.bumpmap_id != -1)
792
789
      {
793
790
        if (has_alpha)
794
791
          *p++ = lut[(gint) (bmvals.waterlevel +
795
 
                             (((gint) (GIMP_RGB_INTENSITY (row[0],
 
792
                             (((gint) (GIMP_RGB_LUMINANCE (row[0],
796
793
                                                           row[1],
797
794
                                                           row[2]) + 0.5) -
798
795
                               bmvals.waterlevel) * row[3]) / 255.0)];
799
796
        else
800
 
          *p++ = lut[(gint) (GIMP_RGB_INTENSITY (row[0],
 
797
          *p++ = lut[(gint) (GIMP_RGB_LUMINANCE (row[0],
801
798
                                                 row[1],
802
799
                                                 row[2]) + 0.5)];
803
800
 
831
828
  gboolean   run;
832
829
  gint       row = 0;
833
830
 
834
 
  gimp_ui_init ("bumpmap", TRUE);
 
831
  gimp_ui_init (PLUG_IN_BINARY, TRUE);
835
832
 
836
 
  dialog = gimp_dialog_new (_("Bump Map"), "bumpmap",
 
833
  dialog = gimp_dialog_new (_("Bump Map"), PLUG_IN_BINARY,
837
834
                            NULL, 0,
838
 
                            gimp_standard_help_func, "plug-in-bump-map",
 
835
                            gimp_standard_help_func, PLUG_IN_PROC,
839
836
 
840
837
                            GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
841
838
                            GTK_STOCK_OK,     GTK_RESPONSE_OK,
842
839
 
843
840
                            NULL);
844
841
 
 
842
  gtk_dialog_set_alternative_button_order (GTK_DIALOG (dialog),
 
843
                                           GTK_RESPONSE_OK,
 
844
                                           GTK_RESPONSE_CANCEL,
 
845
                                           -1);
 
846
 
 
847
  gimp_window_set_transient (GTK_WINDOW (dialog));
 
848
 
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,
957
961
                              TRUE, 0, 0,
958
962
                              NULL, NULL);
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),
964
968
                            preview);
965
969
 
968
972
                              bmvals.elevation, 0.5, 90.0, 1.0, 5.0, 2,
969
973
                              TRUE, 0, 0,
970
974
                              NULL, NULL);
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),
976
980
                            preview);
977
981
 
980
984
                              bmvals.depth, 1.0, 65.0, 1.0, 5.0, 0,
981
985
                              TRUE, 0, 0,
982
986
                              NULL, NULL);
983
 
  g_signal_connect (adj, "value_changed",
 
987
  g_signal_connect (adj, "value-changed",
984
988
                    G_CALLBACK (gimp_int_adjustment_update),
985
989
                    &bmvals.depth);
986
 
  g_signal_connect_swapped (adj, "value_changed",
 
990
  g_signal_connect_swapped (adj, "value-changed",
987
991
                            G_CALLBACK (gimp_preview_invalidate),
988
992
                            preview);
989
993
  gtk_table_set_row_spacing (GTK_TABLE (table), row++, 12);
995
999
                          TRUE, 0, 0,
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),
1000
1004
                    &bmvals.xofs);
1001
 
  g_signal_connect_swapped (adj, "value_changed",
 
1005
  g_signal_connect_swapped (adj, "value-changed",
1002
1006
                            G_CALLBACK (gimp_preview_invalidate),
1003
1007
                            preview);
1004
1008
 
1009
1013
                          TRUE, 0, 0,
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),
1014
1018
                    &bmvals.yofs);
1015
 
  g_signal_connect_swapped (adj, "value_changed",
 
1019
  g_signal_connect_swapped (adj, "value-changed",
1016
1020
                            G_CALLBACK (gimp_preview_invalidate),
1017
1021
                            preview);
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,
1023
1027
                              TRUE, 0, 0,
1024
1028
                              NULL, NULL);
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),
1030
1034
                            preview);
1031
1035
 
1034
1038
                              bmvals.ambient, 0.0, 255.0, 1.0, 8.0, 0,
1035
1039
                              TRUE, 0, 0,
1036
1040
                              NULL, NULL);
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),
1042
1046
                            preview);
1043
1047