Various Gimpressionist Cleanups. Made most remaining non-static global
variables static, and created functions that manipulate them. Created new headers. Renamed some variables and functions to make their names more menanigful.
This commit is contained in:
@ -37,6 +37,7 @@ gimpressionist_sources = \
|
||||
gimpressionist.c \
|
||||
gimpressionist.h \
|
||||
globals.c \
|
||||
infile.h \
|
||||
orientation.c \
|
||||
orientmap.c \
|
||||
paper.c \
|
||||
@ -49,7 +50,9 @@ gimpressionist_sources = \
|
||||
presets.h \
|
||||
preview.c \
|
||||
preview.h \
|
||||
random.h \
|
||||
repaint.c \
|
||||
size.h \
|
||||
size.c \
|
||||
sizemap.c \
|
||||
utils.c
|
||||
|
@ -36,6 +36,10 @@ static GtkObject *brushgammaadjust = NULL;
|
||||
|
||||
static gchar *last_selected_brush = NULL;
|
||||
|
||||
static gint brushfile = 2;
|
||||
|
||||
static ppm_t brushppm = {0, 0, NULL};
|
||||
|
||||
void brush_restore(void)
|
||||
{
|
||||
reselect (brushlist, pcvals.selectedbrush);
|
||||
@ -54,6 +58,14 @@ void brush_free(void)
|
||||
g_free (last_selected_brush);
|
||||
}
|
||||
|
||||
void brush_get_selected (ppm_t *p)
|
||||
{
|
||||
if(brushfile)
|
||||
reloadbrush(pcvals.selectedbrush, p);
|
||||
else
|
||||
copyppm(&brushppm, p);
|
||||
}
|
||||
|
||||
static void updatebrushprev (const char *fn);
|
||||
|
||||
static gboolean file_is_color (const char *fn)
|
||||
@ -95,8 +107,7 @@ brushdmenuselect (GtkWidget *widget,
|
||||
#if 0
|
||||
unselectall(brushlist);
|
||||
#endif
|
||||
if (GTK_IS_WIDGET (presetsavebutton))
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (presetsavebutton), FALSE);
|
||||
preset_save_button_set_sensitive (FALSE);
|
||||
}
|
||||
|
||||
gtk_adjustment_set_value (GTK_ADJUSTMENT (brushgammaadjust), 1.0);
|
||||
@ -404,7 +415,7 @@ static void
|
||||
selectbrushfile (GtkTreeSelection *selection, gpointer data)
|
||||
{
|
||||
brushfile = 1;
|
||||
gtk_widget_set_sensitive (presetsavebutton, TRUE);
|
||||
preset_save_button_set_sensitive (TRUE);
|
||||
selectbrush (selection, NULL);
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,12 @@
|
||||
#ifndef __BRUSH_H
|
||||
#define __BRUSH_H
|
||||
|
||||
#include "ppmtool.h"
|
||||
|
||||
void brush_store(void);
|
||||
void brush_restore(void);
|
||||
void brush_free(void);
|
||||
void create_brushpage(GtkNotebook *);
|
||||
void brush_get_selected (ppm_t *p);
|
||||
|
||||
#endif /* #ifndef __BRUSH_H */
|
||||
|
@ -14,12 +14,13 @@
|
||||
#define NUMCOLORRADIO 2
|
||||
|
||||
static GtkWidget *colorradio[NUMCOLORRADIO];
|
||||
static GtkObject *colornoiseadjust = NULL;
|
||||
|
||||
|
||||
void color_type_restore(void)
|
||||
void color_restore(void)
|
||||
{
|
||||
gtk_toggle_button_set_active
|
||||
(GTK_TOGGLE_BUTTON(colorradio[pcvals.colortype]), TRUE);
|
||||
gtk_adjustment_set_value(GTK_ADJUSTMENT(colornoiseadjust), pcvals.colornoise);
|
||||
}
|
||||
|
||||
void create_colorpage(GtkNotebook *notebook)
|
||||
@ -55,8 +56,6 @@ void create_colorpage(GtkNotebook *notebook)
|
||||
gtk_box_pack_start(GTK_BOX (vbox), frame, FALSE, FALSE, 0);
|
||||
gtk_widget_show(frame);
|
||||
|
||||
color_type_restore();
|
||||
|
||||
table = gtk_table_new (1, 3, FALSE);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), 6);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
|
||||
@ -74,5 +73,7 @@ void create_colorpage(GtkNotebook *notebook)
|
||||
G_CALLBACK (gimp_double_adjustment_update),
|
||||
&pcvals.colornoise);
|
||||
|
||||
color_restore();
|
||||
|
||||
gtk_notebook_append_page_menu (notebook, vbox, label, NULL);
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ enum COLOR_TYPE_ENUM
|
||||
COLOR_TYPE_CENTER = 1,
|
||||
};
|
||||
|
||||
void color_type_restore(void);
|
||||
void color_restore(void);
|
||||
|
||||
|
||||
#endif /* #ifndef __COLOR_H */
|
||||
|
@ -25,6 +25,7 @@ static GtkWidget *generalcolbutton;
|
||||
static GtkObject *generalshadowadjust = NULL;
|
||||
static GtkObject *generalshadowdepth = NULL;
|
||||
static GtkObject *generalshadowblur = NULL;
|
||||
static GtkObject *devthreshadjust = NULL;
|
||||
|
||||
static int normalize_bg(int n)
|
||||
{
|
||||
@ -38,33 +39,42 @@ static void general_bg_store(GtkWidget *wg, void *d)
|
||||
|
||||
void general_store(void)
|
||||
{
|
||||
pcvals.generalpaintedges = GTK_TOGGLE_BUTTON(generalpaintedges)->active;
|
||||
pcvals.generaldarkedge = GTK_ADJUSTMENT(generaldarkedgeadjust)->value;
|
||||
pcvals.generaltileable = GTK_TOGGLE_BUTTON(generaltileable)->active;
|
||||
pcvals.generaldropshadow = GTK_TOGGLE_BUTTON(generaldropshadow)->active;
|
||||
pcvals.generalshadowdarkness = GTK_ADJUSTMENT(generalshadowadjust)->value;
|
||||
pcvals.generalshadowdepth = GTK_ADJUSTMENT(generalshadowdepth)->value;
|
||||
pcvals.generalshadowblur = GTK_ADJUSTMENT(generalshadowblur)->value;
|
||||
pcvals.generalpaintedges = GTK_TOGGLE_BUTTON(generalpaintedges)->active;
|
||||
pcvals.generaldarkedge = GTK_ADJUSTMENT(generaldarkedgeadjust)->value;
|
||||
pcvals.generaltileable = GTK_TOGGLE_BUTTON(generaltileable)->active;
|
||||
pcvals.generaldropshadow = GTK_TOGGLE_BUTTON(generaldropshadow)->active;
|
||||
pcvals.generalshadowdarkness = GTK_ADJUSTMENT(generalshadowadjust)->value;
|
||||
pcvals.generalshadowdepth = GTK_ADJUSTMENT(generalshadowdepth)->value;
|
||||
pcvals.generalshadowblur = GTK_ADJUSTMENT(generalshadowblur)->value;
|
||||
pcvals.devthresh = GTK_ADJUSTMENT(devthreshadjust)->value;
|
||||
}
|
||||
|
||||
void general_restore(void)
|
||||
{
|
||||
gtk_toggle_button_set_active (
|
||||
GTK_TOGGLE_BUTTON (
|
||||
generalbgradio[normalize_bg (pcvals.generalbgtype)]
|
||||
),
|
||||
TRUE
|
||||
);
|
||||
gtk_toggle_button_set_active (
|
||||
GTK_TOGGLE_BUTTON (generalbgradio[normalize_bg (pcvals.generalbgtype)]
|
||||
),
|
||||
TRUE
|
||||
);
|
||||
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(generalpaintedges), pcvals.generalpaintedges);
|
||||
gtk_adjustment_set_value(GTK_ADJUSTMENT(generaldarkedgeadjust), pcvals.generaldarkedge);
|
||||
gtk_adjustment_set_value(GTK_ADJUSTMENT(generalshadowadjust), pcvals.generalshadowdarkness);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(generaldropshadow), pcvals.generaldropshadow);
|
||||
gtk_adjustment_set_value(GTK_ADJUSTMENT(generalshadowdepth), pcvals.generalshadowdepth);
|
||||
gtk_adjustment_set_value(GTK_ADJUSTMENT(generalshadowblur), pcvals.generalshadowblur);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(generaltileable), pcvals.generaltileable);
|
||||
gimp_color_button_set_color (GIMP_COLOR_BUTTON(generalcolbutton),
|
||||
&pcvals.color);
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (generalpaintedges),
|
||||
pcvals.generalpaintedges);
|
||||
gtk_adjustment_set_value (GTK_ADJUSTMENT (generaldarkedgeadjust),
|
||||
pcvals.generaldarkedge);
|
||||
gtk_adjustment_set_value (GTK_ADJUSTMENT (generalshadowadjust),
|
||||
pcvals.generalshadowdarkness);
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (generaldropshadow),
|
||||
pcvals.generaldropshadow);
|
||||
gtk_adjustment_set_value (GTK_ADJUSTMENT (generalshadowdepth),
|
||||
pcvals.generalshadowdepth);
|
||||
gtk_adjustment_set_value (GTK_ADJUSTMENT (generalshadowblur),
|
||||
pcvals.generalshadowblur);
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (generaltileable),
|
||||
pcvals.generaltileable);
|
||||
gimp_color_button_set_color (GIMP_COLOR_BUTTON (generalcolbutton),
|
||||
&pcvals.color);
|
||||
gtk_adjustment_set_value (GTK_ADJUSTMENT (devthreshadjust),
|
||||
pcvals.devthresh);
|
||||
}
|
||||
|
||||
static void selectcolor(GtkWidget *widget, gpointer data)
|
||||
|
@ -3,5 +3,6 @@
|
||||
|
||||
void general_restore(void);
|
||||
void general_store(void);
|
||||
void create_generalpage(GtkNotebook *);
|
||||
|
||||
#endif /* #ifndef __GENERAL_H */
|
||||
|
@ -7,10 +7,13 @@
|
||||
#include <libgimp/gimp.h>
|
||||
|
||||
#include "ppmtool.h"
|
||||
#include "infile.h"
|
||||
#include "gimpressionist.h"
|
||||
#include "preview.h"
|
||||
#include "brush.h"
|
||||
#include "presets.h"
|
||||
#include "random.h"
|
||||
|
||||
|
||||
#include "libgimp/stdplugins-intl.h"
|
||||
|
||||
@ -31,6 +34,24 @@ GimpPlugInInfo PLUG_IN_INFO = {
|
||||
}; /* PLUG_IN_INFO */
|
||||
|
||||
static GimpDrawable *drawable;
|
||||
static ppm_t infile = {0,0,NULL};
|
||||
static ppm_t inalpha = {0,0,NULL};
|
||||
|
||||
|
||||
void infile_copy_to_ppm(ppm_t * p)
|
||||
{
|
||||
if(!infile.col)
|
||||
grabarea();
|
||||
#if 0
|
||||
updatepreview (NULL, (void *)2); /* Force grabarea() */
|
||||
#endif
|
||||
copyppm(&infile, p);
|
||||
}
|
||||
|
||||
void infile_copy_alpha_to_ppm(ppm_t * p)
|
||||
{
|
||||
copyppm(&inalpha, p);
|
||||
}
|
||||
|
||||
MAIN()
|
||||
|
||||
@ -107,7 +128,7 @@ run (const gchar *name,
|
||||
drawable = gimp_drawable_get (param[2].data.d_drawable);
|
||||
img_has_alpha = gimp_drawable_has_alpha (drawable->drawable_id);
|
||||
|
||||
gr = g_rand_new ();
|
||||
random_generator = g_rand_new ();
|
||||
|
||||
switch (run_mode)
|
||||
{
|
||||
@ -173,7 +194,7 @@ run (const gchar *name,
|
||||
}
|
||||
|
||||
/* Resources Cleanup */
|
||||
g_rand_free (gr);
|
||||
g_rand_free (random_generator);
|
||||
free_parsepath_cache();
|
||||
reloadbrush(NULL, NULL);
|
||||
preview_free_resources();
|
||||
|
@ -32,24 +32,17 @@ void storevals(void)
|
||||
paper_store();
|
||||
brush_store();
|
||||
general_store();
|
||||
pcvals.devthresh = GTK_ADJUSTMENT(devthreshadjust)->value;
|
||||
}
|
||||
|
||||
void restorevals(void)
|
||||
{
|
||||
brush_restore();
|
||||
paper_restore();
|
||||
|
||||
orientation_restore();
|
||||
|
||||
size_restore();
|
||||
|
||||
place_restore();
|
||||
general_restore();
|
||||
|
||||
gtk_adjustment_set_value(GTK_ADJUSTMENT(devthreshadjust), pcvals.devthresh);
|
||||
gtk_adjustment_set_value(GTK_ADJUSTMENT(colornoiseadjust), pcvals.colornoise);
|
||||
color_type_restore();
|
||||
color_restore();
|
||||
|
||||
update_orientmap_dialog();
|
||||
}
|
||||
|
@ -5,6 +5,8 @@
|
||||
/* Includes necessary for the correct processing of this file. */
|
||||
#include <libgimp/gimp.h>
|
||||
#include <libgimp/gimpui.h>
|
||||
|
||||
#include "ppmtool.h"
|
||||
/* Defines */
|
||||
|
||||
#define PLUG_IN_NAME "plug_in_gimpressionist"
|
||||
@ -117,38 +119,16 @@ enum PRESETS_LIST_COLUMN_ENUM
|
||||
|
||||
/* Globals */
|
||||
|
||||
extern char *standalone;
|
||||
|
||||
extern gimpressionist_vals_t pcvals;
|
||||
extern char *path;
|
||||
extern struct ppm infile;
|
||||
extern struct ppm inalpha;
|
||||
extern GtkWidget *window;
|
||||
|
||||
extern int brushfile;
|
||||
extern struct ppm brushppm;
|
||||
|
||||
extern GtkObject *devthreshadjust;
|
||||
|
||||
extern GtkWidget *colortype;
|
||||
extern GtkObject *colornoiseadjust;
|
||||
|
||||
extern GtkWidget *previewbutton;
|
||||
|
||||
extern gboolean img_has_alpha;
|
||||
|
||||
extern GRand *gr;
|
||||
|
||||
/* Prototypes */
|
||||
|
||||
GList *parsepath(void);
|
||||
void free_parsepath_cache(void);
|
||||
|
||||
void create_paperpage(GtkNotebook *);
|
||||
void create_brushpage(GtkNotebook *);
|
||||
void create_orientationpage(GtkNotebook *);
|
||||
void create_generalpage(GtkNotebook *);
|
||||
void create_placementpage(GtkNotebook *);
|
||||
void create_colorpage(GtkNotebook *);
|
||||
|
||||
void grabarea(void);
|
||||
|
@ -6,21 +6,9 @@
|
||||
#include "gimpressionist.h"
|
||||
#include "ppmtool.h"
|
||||
|
||||
GtkWidget *presetsavebutton = NULL;
|
||||
GtkWidget *presetdesctext = NULL;
|
||||
GtkObject *devthreshadjust = NULL;
|
||||
gint brushfile = 2;
|
||||
ppm_t brushppm = {0, 0, NULL};
|
||||
gboolean img_has_alpha = FALSE;
|
||||
GRand *random_generator;
|
||||
gimpressionist_vals_t pcvals;
|
||||
ppm_t infile = {0,0,NULL};
|
||||
ppm_t inalpha = {0,0,NULL};
|
||||
GRand *gr;
|
||||
|
||||
GtkWidget *previewbutton = NULL;
|
||||
GtkObject *colornoiseadjust = NULL;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* The default values for the application, to be initialized at startup.
|
||||
|
9
plug-ins/gimpressionist/infile.h
Normal file
9
plug-ins/gimpressionist/infile.h
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef __INFILE_H
|
||||
#define __INFILE_H
|
||||
|
||||
#include "ppmtool.h"
|
||||
|
||||
void infile_copy_to_ppm(ppm_t * p);
|
||||
void infile_copy_alpha_to_ppm(ppm_t * p);
|
||||
|
||||
#endif
|
1307
plug-ins/gimpressionist/logo-pixbuf.h
Normal file
1307
plug-ins/gimpressionist/logo-pixbuf.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -12,6 +12,7 @@
|
||||
|
||||
#include "gimpressionist.h"
|
||||
#include "ppmtool.h"
|
||||
#include "infile.h"
|
||||
|
||||
#include "preview.h"
|
||||
|
||||
@ -174,9 +175,7 @@ static void updatevectorprev(void)
|
||||
else val = 0.5;
|
||||
|
||||
if(!ok || (val != lastval)) {
|
||||
if(!infile.col)
|
||||
updatepreview (NULL, (void *)2); /* Force grabarea() */
|
||||
copyppm(&infile, &backup);
|
||||
infile_copy_to_ppm(&backup);
|
||||
ppmbrightness(&backup, val, 1,1,1);
|
||||
if((backup.width != OMWIDTH) || (backup.height != OMHEIGHT))
|
||||
resize_fast(&backup, OMWIDTH, OMHEIGHT);
|
||||
|
@ -9,5 +9,6 @@ enum PLACEMENT_TYPE_ENUM
|
||||
|
||||
void place_store(void);
|
||||
void place_restore(void);
|
||||
void create_placementpage(GtkNotebook *);
|
||||
|
||||
#endif
|
||||
|
@ -9,6 +9,7 @@
|
||||
|
||||
#include "gimpressionist.h"
|
||||
#include "ppmtool.h"
|
||||
#include "random.h"
|
||||
|
||||
static int pfix(int n)
|
||||
{
|
||||
@ -33,21 +34,21 @@ static void mkplasma_sub(ppm_t *p, int x1, int x2, int y1, int y2, float turb)
|
||||
ny = (y1+y2)/2;
|
||||
if(!PIXEL(y1,nx,r))
|
||||
PIXEL(y1,nx,r) = pfix((PIXEL(y1,x1,r)+PIXEL(y1,x2,r))/2.0+
|
||||
turb * g_rand_double_range (gr, -xr/2.0, xr/2.0));
|
||||
turb * g_rand_double_range (random_generator, -xr/2.0, xr/2.0));
|
||||
if(!PIXEL(y2,nx,r))
|
||||
PIXEL(y2,nx,r) = pfix((PIXEL(y2,x1,r)+PIXEL(y2,x2,r))/2.0+
|
||||
turb * g_rand_double_range (gr, -xr/2.0, xr/2.0));
|
||||
turb * g_rand_double_range (random_generator, -xr/2.0, xr/2.0));
|
||||
if(!PIXEL(ny,x1,r))
|
||||
PIXEL(ny,x1,r) = pfix((PIXEL(y1,x1,r)+PIXEL(y2,x1,r))/2.0+
|
||||
turb * g_rand_double_range (gr, -yr/2.0, yr/2.0));
|
||||
turb * g_rand_double_range (random_generator, -yr/2.0, yr/2.0));
|
||||
if(!PIXEL(ny,x2,r))
|
||||
PIXEL(ny,x2,r) = pfix((PIXEL(y1,x2,r)+PIXEL(y2,x2,r))/2.0+
|
||||
turb * g_rand_double_range (gr, -yr/2.0, yr/2.0));
|
||||
turb * g_rand_double_range (random_generator, -yr/2.0, yr/2.0));
|
||||
if(!PIXEL(ny,nx,r))
|
||||
PIXEL(ny,nx,r) =
|
||||
pfix((PIXEL(y1,x1,r) + PIXEL(y1,x2,r) + PIXEL(y2,x1,r) +
|
||||
PIXEL(y2,x2,r))/4.0 + turb *
|
||||
g_rand_double_range (gr, -(xr + yr)/4.0, (xr + yr)/4.0));
|
||||
g_rand_double_range (random_generator, -(xr + yr)/4.0, (xr + yr)/4.0));
|
||||
|
||||
if(xr>1) {
|
||||
mkplasma_sub(p,x1,nx,y1,ny, turb);
|
||||
@ -68,10 +69,10 @@ static void mkplasma_red(ppm_t *p, float turb)
|
||||
for(y = 0; y < p->height; y++)
|
||||
PIXEL(y,x,0) = 0;
|
||||
x--; y--;
|
||||
PIXEL(0,0,0) = g_rand_int_range (gr, 1, 256);
|
||||
PIXEL(y,0,0) = g_rand_int_range (gr, 1, 256);
|
||||
PIXEL(0,x,0) = g_rand_int_range (gr, 1, 256);
|
||||
PIXEL(y,x,0) = g_rand_int_range (gr, 1, 256);
|
||||
PIXEL(0,0,0) = g_rand_int_range (random_generator, 1, 256);
|
||||
PIXEL(y,0,0) = g_rand_int_range (random_generator, 1, 256);
|
||||
PIXEL(0,x,0) = g_rand_int_range (random_generator, 1, 256);
|
||||
PIXEL(y,x,0) = g_rand_int_range (random_generator, 1, 256);
|
||||
mkplasma_sub(p, 0, x, 0, y, turb);
|
||||
}
|
||||
|
||||
|
@ -28,10 +28,18 @@
|
||||
static GtkWidget *presetnameentry = NULL;
|
||||
static GtkWidget *presetlist = NULL;
|
||||
static GtkWidget *presetdesclabel = NULL;
|
||||
static GtkWidget *presetsavebutton = NULL;
|
||||
static GtkListStore *store;
|
||||
static gchar *selected_preset_orig_name = NULL;
|
||||
static gchar *selected_preset_filename = NULL;
|
||||
|
||||
|
||||
void preset_save_button_set_sensitive (gboolean s)
|
||||
{
|
||||
if (GTK_IS_WIDGET (presetsavebutton))
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (presetsavebutton), s);
|
||||
}
|
||||
|
||||
void preset_free(void)
|
||||
{
|
||||
g_free (selected_preset_orig_name);
|
||||
|
@ -9,9 +9,9 @@ enum SELECT_PRESET_RETURN_VALUES
|
||||
};
|
||||
|
||||
void create_presetpage (GtkNotebook *);
|
||||
extern GtkWidget *presetsavebutton;
|
||||
int select_preset (const gchar *preset);
|
||||
void preset_free (void);
|
||||
void preset_save_button_set_sensitive (gboolean s);
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -14,12 +14,18 @@
|
||||
|
||||
#include "gimpressionist.h"
|
||||
#include "ppmtool.h"
|
||||
#include "infile.h"
|
||||
|
||||
#include "libgimp/stdplugins-intl.h"
|
||||
|
||||
|
||||
static GtkWidget *preview = NULL;
|
||||
static GtkWidget *previewbutton = NULL;
|
||||
|
||||
void preview_set_button_label(gchar * text)
|
||||
{
|
||||
gtk_label_set_text(GTK_LABEL(GTK_BIN(previewbutton)->child), text);
|
||||
}
|
||||
|
||||
static void drawalpha(ppm_t *p, ppm_t *a)
|
||||
{
|
||||
@ -65,10 +71,23 @@ updatepreview (GtkWidget *wg, gpointer d)
|
||||
gint i;
|
||||
guchar buf[PREVIEWSIZE*3];
|
||||
|
||||
/* This portion is remmed out because of the remming out of the
|
||||
* code below.
|
||||
* -- Shlomi Fish
|
||||
* */
|
||||
#if 0
|
||||
if(!infile.col && d)
|
||||
grabarea();
|
||||
#endif
|
||||
|
||||
/* It seems that infile.col must be true here. (after grabarea() that is.)
|
||||
* Thus, I'm removing this entire portion of the code in hope that
|
||||
* it works OK afterwards.
|
||||
* -- Shlomi Fish
|
||||
* */
|
||||
#if 0
|
||||
if(!infile.col && !d) {
|
||||
|
||||
memset(buf, 0, sizeof(buf));
|
||||
for(i = 0; i < PREVIEWSIZE; i++)
|
||||
{
|
||||
@ -76,15 +95,16 @@ updatepreview (GtkWidget *wg, gpointer d)
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if(!backup_ppm.col)
|
||||
{
|
||||
copyppm(&infile, &backup_ppm);
|
||||
infile_copy_to_ppm (&backup_ppm);
|
||||
if((backup_ppm.width != PREVIEWSIZE) || (backup_ppm.height != PREVIEWSIZE))
|
||||
resize_fast(&backup_ppm, PREVIEWSIZE, PREVIEWSIZE);
|
||||
if(img_has_alpha)
|
||||
{
|
||||
copyppm(&inalpha, &alpha_backup_ppm);
|
||||
infile_copy_alpha_to_ppm (&alpha_backup_ppm);
|
||||
if((alpha_backup_ppm.width != PREVIEWSIZE) || (alpha_backup_ppm.height != PREVIEWSIZE))
|
||||
resize_fast(&alpha_backup_ppm, PREVIEWSIZE, PREVIEWSIZE);
|
||||
}
|
||||
|
@ -4,5 +4,6 @@
|
||||
GtkWidget* create_preview (void);
|
||||
void updatepreview (GtkWidget *wg, gpointer d);
|
||||
void preview_free_resources(void);
|
||||
void preview_set_button_label(gchar * text);
|
||||
|
||||
#endif /* #ifndef __PREVIEW_H */
|
||||
|
7
plug-ins/gimpressionist/random.h
Normal file
7
plug-ins/gimpressionist/random.h
Normal file
@ -0,0 +1,7 @@
|
||||
#ifndef __RAND_H
|
||||
#define __RAND_H
|
||||
|
||||
extern GRand *random_generator;
|
||||
|
||||
#endif
|
||||
|
@ -8,9 +8,12 @@
|
||||
#include <libgimp/gimp.h>
|
||||
|
||||
#include "gimpressionist.h"
|
||||
#include "brush.h"
|
||||
#include "placement.h"
|
||||
#include "size.h"
|
||||
#include "ppmtool.h"
|
||||
#include "preview.h"
|
||||
#include "random.h"
|
||||
#include "size.h"
|
||||
|
||||
#include <libgimp/stdplugins-intl.h>
|
||||
|
||||
@ -160,7 +163,7 @@ static int bestbrush(ppm_t *p, ppm_t *a, int tx, int ty,
|
||||
return 0;
|
||||
}
|
||||
|
||||
i = g_rand_int_range (gr, 0, g_list_length(brlist));
|
||||
i = g_rand_int_range (random_generator, 0, g_list_length(brlist));
|
||||
best = (long)((g_list_nth(brlist,i))->data);
|
||||
g_list_free(brlist);
|
||||
|
||||
@ -314,10 +317,7 @@ void repaint(ppm_t *p, ppm_t *a)
|
||||
shadows = NULL;
|
||||
|
||||
brushes[0].col = NULL;
|
||||
if(brushfile)
|
||||
reloadbrush(runningvals.selectedbrush, &brushes[0]);
|
||||
else
|
||||
copyppm(&brushppm, &brushes[0]);
|
||||
brush_get_selected (&brushes[0]);
|
||||
|
||||
resize(&brushes[0], brushes[0].width, brushes[0].height * pow(10,runningvals.brushaspect));
|
||||
scale = runningvals.sizelast / MAX(brushes[0].width, brushes[0].height);
|
||||
@ -630,7 +630,7 @@ void repaint(ppm_t *p, ppm_t *a)
|
||||
}
|
||||
for(j = 0; j < i; j++) {
|
||||
int a, b;
|
||||
a = g_rand_int_range (gr, 0, i);
|
||||
a = g_rand_int_range (random_generator, 0, i);
|
||||
b = xpos[j]; xpos[j] = xpos[a]; xpos[a] = b;
|
||||
b = ypos[j]; ypos[j] = ypos[a]; ypos[a] = b;
|
||||
}
|
||||
@ -644,23 +644,24 @@ void repaint(ppm_t *p, ppm_t *a)
|
||||
char tmps[40];
|
||||
g_snprintf (tmps, sizeof (tmps),
|
||||
"%.1f %%", 100 * (1.0 - ((double)i / max_progress)));
|
||||
gtk_label_set_text(GTK_LABEL(GTK_BIN(previewbutton)->child), tmps);
|
||||
preview_set_button_label (tmps);
|
||||
|
||||
while(gtk_events_pending())
|
||||
gtk_main_iteration();
|
||||
}
|
||||
}
|
||||
|
||||
if(runningvals.placetype == PLACEMENT_TYPE_RANDOM) {
|
||||
tx = g_rand_int_range (gr, maxbrushwidth/2,
|
||||
tx = g_rand_int_range (random_generator, maxbrushwidth/2,
|
||||
tmp.width - maxbrushwidth/2);
|
||||
ty = g_rand_int_range (gr, maxbrushheight/2,
|
||||
ty = g_rand_int_range (random_generator, maxbrushheight/2,
|
||||
tmp.height - maxbrushheight/2);
|
||||
} else if(runningvals.placetype == PLACEMENT_TYPE_EVEN_DIST) {
|
||||
tx = xpos[i-1];
|
||||
ty = ypos[i-1];
|
||||
}
|
||||
if(runningvals.placecenter) {
|
||||
double z = g_rand_double_range (gr, 0, 0.75);
|
||||
double z = g_rand_double_range (random_generator, 0, 0.75);
|
||||
tx = tx * (1.0-z) + tmp.width/2 * z;
|
||||
ty = ty * (1.0-z) + tmp.height/2 * z;
|
||||
}
|
||||
@ -683,7 +684,7 @@ void repaint(ppm_t *p, ppm_t *a)
|
||||
|
||||
switch(runningvals.orienttype) {
|
||||
case ORIENTATION_RANDOM:
|
||||
on = g_rand_int_range (gr, 0, runningvals.orientnum);
|
||||
on = g_rand_int_range (random_generator, 0, runningvals.orientnum);
|
||||
break;
|
||||
case ORIENTATION_VALUE:
|
||||
case ORIENTATION_RADIUS:
|
||||
@ -703,7 +704,7 @@ void repaint(ppm_t *p, ppm_t *a)
|
||||
|
||||
switch(runningvals.sizetype) {
|
||||
case SIZE_TYPE_RANDOM:
|
||||
sn = g_rand_int_range (gr, 0, runningvals.sizenum);
|
||||
sn = g_rand_int_range (random_generator, 0, runningvals.sizenum);
|
||||
break;
|
||||
case SIZE_TYPE_VALUE:
|
||||
case SIZE_TYPE_RADIUS:
|
||||
@ -787,7 +788,7 @@ void repaint(ppm_t *p, ppm_t *a)
|
||||
#define BOUNDS(a) (((a) < 0) ? (a) : ((a) > 255) ? 255 : (a))
|
||||
#define MYASSIGN(a) \
|
||||
{ \
|
||||
a = a + g_rand_double_range (gr, -v/2.0, v/2.0); \
|
||||
a = a + g_rand_double_range (random_generator, -v/2.0, v/2.0); \
|
||||
a = BOUNDS(a) ; \
|
||||
}
|
||||
MYASSIGN(r);
|
||||
@ -900,7 +901,7 @@ void repaint(ppm_t *p, ppm_t *a)
|
||||
if(runningvals.run) {
|
||||
gimp_progress_update(0.8);
|
||||
} else {
|
||||
gtk_label_set_text(GTK_LABEL(GTK_BIN(previewbutton)->child), _("Update"));
|
||||
preview_set_button_label (_("Update"));
|
||||
}
|
||||
running = 0;
|
||||
}
|
||||
|
@ -103,9 +103,13 @@ static void updatesmvectorprev(void)
|
||||
|
||||
if(!ok || (val != lastval))
|
||||
{
|
||||
#if 0
|
||||
if(!infile.col)
|
||||
updatepreview (NULL, (void *)2); /* Force grabarea() */
|
||||
copyppm(&infile, &backup);
|
||||
#else
|
||||
infile_copy_to_ppm (&backup);
|
||||
#endif
|
||||
ppmbrightness(&backup, val, 1,1,1);
|
||||
if (backup.width != OMWIDTH || backup.height != OMHEIGHT)
|
||||
resize_fast(&backup, OMWIDTH, OMHEIGHT);
|
||||
|
Reference in New Issue
Block a user