Skip to content

Commit 51cd041

Browse files
authored
Add files via upload
1 parent 4c05022 commit 51cd041

6 files changed

Lines changed: 83 additions & 65 deletions

File tree

compile_bevel_here/bevel.c

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,16 @@
1919

2020
/*GEGL Bevel is a stand alone plugin but it is also part of GEGL Effects. The stand alone version does more then the GEGL Effects implementation of it. */
2121

22+
23+
/*
24+
Graph here to test without installing.
25+
26+
id=1 gimp:layer-mode layer-mode=normal composite-mode=clip-to-backdrop aux=[color value=#ffffff opacity value=0.1 ]
27+
gaussian-blur std-dev-x=2 std-dev-y=2
28+
emboss azimuth=44 depth=9
29+
gimp:threshold-alpha value=0.03
30+
*/
31+
2232
#include "config.h"
2333
#include <glib/gi18n-lib.h>
2434

@@ -55,7 +65,8 @@ property_int (bevel2, _("Depth"), 40)
5565
value_range (1, 100)
5666

5767

58-
property_double (th, _("Bevel's coverage threshold. Lower covers more."), 0.100)
68+
property_double (th, _("Bevel's coverage threshold."), 0.100)
69+
description (_("Lower covers more and higher covers less."))
5970
value_range (0.0, 1.0)
6071
ui_range (0.0, 0.5)
6172
ui_meta ("sensitive", "! embossmode")
@@ -67,8 +78,8 @@ property_double (azimuth, _("Rotate Lighting"), 40.0)
6778
ui_meta ("direction", "ccw")
6879

6980

70-
property_double (slideupblack, _("Slide up if Bevel is very dark or black. "), 0.00)
71-
description (_("GEGL Bevel works on black Bevels when using blend modes like Grain Merge and Hardlight. All you have to do is select those blend modes for black text and then move this slider up."))
81+
property_double (slideupblack, _("Black Bevel/Image Bevel mode."), 0.00)
82+
description (_("This slider allows GEGL bevel to works on black Bevels; but the user must still manually select blend modes like Grain Merge and Hardlight that are known to work with very dark Bevels. This also allows bevel to be applied on image file overlays without conforming to an image's details."))
7283
value_range (0.00, 0.999)
7384
ui_steps (0.01, 0.50)
7485

compile_gegl_effects_here/gegleffectspending.c

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,28 @@ then the title and or gegl operation of name of one mf my plugins; example "gegl
5555
where it is used.
5656
5757
58+
Crude recreation of parts of GEGL Effects graph. This just shows how the nodes are ordered. They are many things missing and I can't possibly list all the options.
59+
DropShadow is used in place of the hidden operation. REQUIRES lb:bevel and lb:innerglow
60+
61+
Remove the # to see a particular effect in action
62+
63+
id=1
64+
#src-atop aux=[ ref=1 layer src=image_link_here.jpg ]
65+
id=2
66+
#gimp:layer-mode layer-mode=normal composite-mode=clip-to-backdrop aux=[ ref=2 color-overlay value=#0057ff ]
67+
#id=3 over aux=[ ref=3 glassovertext ]
68+
#id=4 src-atop aux=[ linear-gradient start-x= start-y= end-x= end-y= star-color= end-color= ]
69+
crop
70+
#id=5 multiply aux=[ ref=5 sinus color1=#ffffff color2=#000000 seed=343 complexity=0.3 ]
71+
#id=6 multiply aux=[ ref=6 lb:bevel bevel1=49 bevel2=93 ]
72+
#id=7 id over aux=[ ref=7 lb:innerglow ]
73+
#dropshadow x=0 y=0 grow-radius=12 radius=1 opacity=1 color=#ff000b
74+
#dropshadow
75+
5876
*/
5977

6078

79+
6180
#include "config.h"
6281
#include <glib/gi18n-lib.h>
6382

@@ -322,7 +341,8 @@ property_double(coloropacity, _("Opacity of Color Overlay"), 0.999)
322341
ui_steps (0.01, 0.50)
323342
ui_meta ("role", "output-extent")
324343
ui_meta ("visible", "guichange {strokeshadow}")
325-
/* This option is hidden via output extent. The right click HTML notation slider on color overlay can change the opacity */
344+
/* This option is hidden via output extent. The right click HTML notation slider on color overlay can change the opacity
345+
and it saves space in the GUI. If one day a better GUI comes along I'd like to enable this. */
326346

327347
property_boolean (enableoutline, _("Enable Outline"), FALSE)
328348
description (_("Disable or Enable Outline"))
@@ -372,7 +392,8 @@ property_boolean (enableshadow, _("Enable Drop Shadow"), TRUE)
372392
description (_("Enable Drop Shadow. This option is hidden via output extent."))
373393
ui_meta ("role", "output-extent")
374394
ui_meta ("visible", "guichange {strokeshadow}")
375-
/* This option is hidden via output extent. Drop Shadow is always enabled but hidden with 0 opacity. This checkbox actually disables it */
395+
/* This option is hidden via output extent. Drop Shadow is always enabled but hidden with 0 opacity. This checkbox actually disables it.
396+
I choose not to use this in GEGL Effects */
376397

377398
property_double (opacity, _("Shadow/Glow Opacity --ENABLE SHADOW/GLOW"), 0.0)
378399
value_range (0.0, 0.999)
@@ -445,11 +466,7 @@ property_double (radius1, _("Radius of Bevel"), 2.0)
445466
ui_steps (0.01, 0.20)
446467
ui_meta ("visible", "guichange {innerglowbevel}")
447468

448-
property_double (osth, _("Bevel's unmodified edge pixel fix"), 0.100)
449-
value_range (0.0, 0.1)
450-
ui_range (0.0, 0.1)
451-
ui_meta ("visible", "guichange {innerglowbevel}")
452-
ui_meta ("role", "output-extent")
469+
453470

454471

455472
property_double (slideupblack, _("Black Bevel and Image Bevel mode. "), 0.00)
@@ -816,12 +833,6 @@ Unfortunately to enable the extra outline the user has to Enable Extra Outline C
816833
slide up the opacity slider. It is what it is though inconvient. Users should be greatful that such complex
817834
text styling is even possible in the first place. */
818835

819-
property_double (extrassgopacity, _("Extra Outline/Shadow/Glow's Opacity "), 0.0)
820-
value_range (0.0, 0.999)
821-
ui_steps (0.01, 0.50)
822-
ui_meta ("visible", "guichange {extraosg}")
823-
ui_meta ("role", "output-extent")
824-
825836

826837
property_double (xextraoutline, _("Extra Outline/Shadow/Glow Horizontal Distance"), 0.0)
827838
description (_("Horizontal shadow offset"))
@@ -1048,7 +1059,6 @@ typedef struct
10481059
GeglNode *nopextrassg;
10491060
GeglNode *behindextrassg;
10501061
GeglNode *extrassg;
1051-
GeglNode *extrassgopacity;
10521062
/*All nodes relating to extra outline shadow glow end here*/
10531063

10541064
/*All nodes relating to gradient start here*/
@@ -1263,8 +1273,8 @@ Bevel use to only work Multiply and Grain Merge until beaver solved a bug relate
12631273
gegl_node_link_many ( state->image, state->saturation, NULL);
12641274
gegl_node_connect_from (atopi, "aux", state->saturation, "output");
12651275
/* Nodes relating to extra outline shadow glow */
1266-
gegl_node_link_many (state->nopextrassg, state->extrassg, state->extrassgopacity, NULL);
1267-
gegl_node_connect_from (state->behindextrassg, "aux", state->extrassgopacity, "output");
1276+
gegl_node_link_many (state->nopextrassg, state->extrassg, NULL);
1277+
gegl_node_connect_from (state->behindextrassg, "aux", state->extrassg, "output");
12681278
/* Nodes relating to outline */
12691279
gegl_node_link_many (state->nopstrokebehind, state->stroke, NULL);
12701280
gegl_node_connect_from (state->strokebehind, "aux", state->stroke, "output");
@@ -1295,8 +1305,8 @@ Bevel use to only work Multiply and Grain Merge until beaver solved a bug relate
12951305
gegl_node_link_many ( state->image, state->saturation, NULL);
12961306
gegl_node_connect_from (atopi, "aux", state->saturation, "output");
12971307
/* Nodes relating to extra outline shadow glow */
1298-
gegl_node_link_many (state->nopextrassg, state->extrassg, state->extrassgopacity, NULL);
1299-
gegl_node_connect_from (state->behindextrassg, "aux", state->extrassgopacity, "output");
1308+
gegl_node_link_many (state->nopextrassg, state->extrassg, NULL);
1309+
gegl_node_connect_from (state->behindextrassg, "aux", state->extrassg, "output");
13001310
/* Nodes relating to outline */
13011311
gegl_node_link_many (state->nopstrokebehind, state->stroke, NULL);
13021312
gegl_node_connect_from (state->strokebehind, "aux", state->stroke, "output");
@@ -1330,8 +1340,8 @@ Bevel use to only work Multiply and Grain Merge until beaver solved a bug relate
13301340
gegl_node_link_many ( state->image, state->saturation, NULL);
13311341
gegl_node_connect_from (atopi, "aux", state->saturation, "output");
13321342
/* Nodes relating to extra outline shadow glow */
1333-
gegl_node_link_many (state->nopextrassg, state->extrassg, state->extrassgopacity, NULL);
1334-
gegl_node_connect_from (state->behindextrassg, "aux", state->extrassgopacity, "output");
1343+
gegl_node_link_many (state->nopextrassg, state->extrassg, NULL);
1344+
gegl_node_connect_from (state->behindextrassg, "aux", state->extrassg, "output");
13351345
/* Nodes relating to outline */
13361346
gegl_node_link_many (state->nopstrokebehind, state->stroke, NULL);
13371347
gegl_node_connect_from (state->strokebehind, "aux", state->stroke, "output");
@@ -1362,8 +1372,8 @@ Bevel use to only work Multiply and Grain Merge until beaver solved a bug relate
13621372
gegl_node_link_many ( state->image, state->saturation, NULL);
13631373
gegl_node_connect_from (atopi, "aux", state->saturation, "output");
13641374
/* Nodes relating to extra outline shadow glow */
1365-
gegl_node_link_many (state->nopextrassg, state->extrassg, state->extrassgopacity, NULL);
1366-
gegl_node_connect_from (state->behindextrassg, "aux", state->extrassgopacity, "output");
1375+
gegl_node_link_many (state->nopextrassg, state->extrassg, NULL);
1376+
gegl_node_connect_from (state->behindextrassg, "aux", state->extrassg, "output");
13671377
/* Nodes relating to outline */
13681378
gegl_node_link_many (state->nopstrokebehind, state->stroke, NULL);
13691379
gegl_node_connect_from (state->strokebehind, "aux", state->stroke, "output");
@@ -1390,7 +1400,7 @@ static void attach (GeglOperation *operation)
13901400
{
13911401
GeglNode *gegl = operation->node;
13921402
GeglProperties *o = GEGL_PROPERTIES (operation);
1393-
GeglNode *input, *output, *image, *mbd, *mbdopacity, *nopig, *multiplyb, *nopm, *over, *multiply, *grainextract, *hslcolorig, *overlayig, *softlightig, *screenig, *linearlightig, *multiplyig, *grainmerge, *grainmergeig, *addition, *subtract, *nopb, *mcol, *stroke, *innerglow, *gradient, *crop, *ds, *nopimage, *atopi, *nopg, *atopg, *hslcolorg, *overlayg, *additiong, *softlightg, *screeng, *multiplyg, *hsvhueg, *linearlightg, *grainmergeg, *saturation, *hardlightg, *hardlightig, *burnig, *burng, *lchcolorg, *lchcolorig, *shinygm, *colordodge, *hardlight, *screen, *shiny, *microblur, *thinbold, *opacityinput, *xor, *knockoutidref, *beveloff, *extrassg, *nopextrassg, *behindextrassg, *extrassgopacity, *grainmergeimage, *additionimage, *overlayimage, *multiplyimage, *screenimage, *hslcolorimage, *softlightimage, *linearlightimage, *hardlightimage, *lchcolorimage, *hsvhueimage, *grainmergecolor, *additioncolor, *overlaycolor, *screencolor, *hslcolorcolor, *softlightcolor, *linearlightcolor, *hardlightcolor, *lchcolorcolor, *hsvhuecolor, *nocolor, *solidcolor, *coloropacity, *strokebehind, *nopstrokebehind, *nopdsbehind, *dsbehind, *opacitygradient, *cropcolor, *glassovertext, *glassover, *nopglass, *repairgeglgraph, *hueig;
1403+
GeglNode *input, *output, *image, *mbd, *mbdopacity, *nopig, *multiplyb, *nopm, *over, *multiply, *grainextract, *hslcolorig, *overlayig, *softlightig, *screenig, *linearlightig, *multiplyig, *grainmerge, *grainmergeig, *addition, *subtract, *nopb, *mcol, *stroke, *innerglow, *gradient, *crop, *ds, *nopimage, *atopi, *nopg, *atopg, *hslcolorg, *overlayg, *additiong, *softlightg, *screeng, *multiplyg, *hsvhueg, *linearlightg, *grainmergeg, *saturation, *hardlightg, *hardlightig, *burnig, *burng, *lchcolorg, *lchcolorig, *shinygm, *colordodge, *hardlight, *screen, *shiny, *microblur, *thinbold, *opacityinput, *xor, *knockoutidref, *beveloff, *extrassg, *nopextrassg, *behindextrassg, *grainmergeimage, *additionimage, *overlayimage, *multiplyimage, *screenimage, *hslcolorimage, *softlightimage, *linearlightimage, *hardlightimage, *lchcolorimage, *hsvhueimage, *grainmergecolor, *additioncolor, *overlaycolor, *screencolor, *hslcolorcolor, *softlightcolor, *linearlightcolor, *hardlightcolor, *lchcolorcolor, *hsvhuecolor, *nocolor, *solidcolor, *coloropacity, *strokebehind, *nopstrokebehind, *nopdsbehind, *dsbehind, *opacitygradient, *cropcolor, *glassovertext, *glassover, *nopglass, *repairgeglgraph, *hueig;
13941404

13951405

13961406
input = gegl_node_get_input_proxy (gegl, "input");
@@ -1531,8 +1541,9 @@ additioncolor = gegl_node_new_child (gegl,
15311541
/* All nodes relating to the bevel start here*/
15321542

15331543
mbd = gegl_node_new_child (gegl,
1534-
"operation", "lb:bevel",
1544+
"operation", "lb:bevel", "th", 0.100,
15351545
NULL);
1546+
/*The Threshold Alpha setting of the bevel is being baked in so it isn't present in the GUI.*/
15361547

15371548
mbdopacity = gegl_node_new_child (gegl,
15381549
"operation", "gegl:opacity",
@@ -1726,11 +1737,6 @@ behindextrassg = gegl_node_new_child (gegl,
17261737
"operation", "gegl:nop",
17271738
NULL);
17281739

1729-
/*This nop was once a function that was disabled. zzstrokebevelimags opacity caused problems for a technical reason so I had to make an extra opacity meter*/
1730-
extrassgopacity = gegl_node_new_child (gegl,
1731-
"operation", "gegl:nop",
1732-
NULL);
1733-
17341740
/* All nodes relating to Extra Outline, Shadw Glow end here*/
17351741

17361742
/* All nodes relating to image file overlay begin here*/
@@ -1869,7 +1875,6 @@ drop shadow is applied in a gegl graph below them.*/
18691875
gegl_operation_meta_redirect (operation, "osradius", stroke, "radius1");
18701876
gegl_operation_meta_redirect (operation, "osbevel", stroke, "bevel1");
18711877
gegl_operation_meta_redirect (operation, "osbevelopacity", stroke, "opacitybevel");
1872-
gegl_operation_meta_redirect (operation, "osth", stroke, "th");
18731878
gegl_operation_meta_redirect (operation, "ossrc", stroke, "src");
18741879
gegl_operation_meta_redirect (operation, "specialoutline", stroke, "specialoutline");
18751880
gegl_operation_meta_redirect (operation, "oshue", stroke, "hue");
@@ -1960,7 +1965,6 @@ drop shadow is applied in a gegl graph below them.*/
19601965
gegl_operation_meta_redirect (operation, "osdepthextra", extrassg, "bevel2");
19611966
gegl_operation_meta_redirect (operation, "osradiusextra", extrassg, "radius1");
19621967
gegl_operation_meta_redirect (operation, "osbevelextra", extrassg, "bevel1");
1963-
gegl_operation_meta_redirect (operation, "extrassgopacity", extrassgopacity, "value");
19641968
/*End of Extra Outline Shadow Glow's GUI asociations*/
19651969

19661970
/*Beginning of Knock Out Text's GUI asociations*/
@@ -2100,7 +2104,6 @@ drop shadow is applied in a gegl graph below them.*/
21002104
state->extrassg = extrassg;
21012105
state->behindextrassg = behindextrassg;
21022106
state->nopextrassg = nopextrassg;
2103-
state->extrassgopacity = extrassgopacity;
21042107
/*All Nodes relating extra outline shadow glow end here*/
21052108

21062109
/*All Nodes relating knock out text start here*/
@@ -2141,7 +2144,7 @@ gegl_op_class_init (GeglOpClass *klass)
21412144
"title", _("GEGL Effects Continual Version"),
21422145
"categories", "Generic",
21432146
"reference-hash", "continual45ed565h8500fca01b2ac",
2144-
"description", _("GEGL text styling and speciality image outlining filter. June 10th 2023 Stable Build"
2147+
"description", _("GEGL text styling and specialty image outlining filter. June 24th 2023 Stable Build "
21452148
""),
21462149
NULL);
21472150
}

compile_glass_over_text_here/glassovertext.c

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,25 @@
1919

2020
/*GEGL Glass Over Text was once just a stand alone plugin, but now it is also part of GEGL Effects. The stand alone version still exist and does more then the GEGL Effects implementation of it. */
2121

22+
23+
/*
24+
GEGL Graph Below
25+
*/
26+
27+
/*
28+
color-overlay value=#ffffff
29+
gaussian-blur std-dev-x=1 std-dev-y=1
30+
emboss azimuth=44 depth=29
31+
id=1
32+
gimp:layer-mode layer-mode=erase composite-mode=auto aux=[ ref=1 dst-over aux=[ color value=#000000 ] crop color-to-alpha opacity-threshold=0.14 color-overlay value=#000000 ] ]
33+
color-overlay value=#ffffff
34+
gaussian-blur std-dev-x=0 std-dev-y=0
35+
*/
36+
37+
38+
/*GEGL Graph here. NOTE FOR DEVS replacing"gimp:layer-mode layer-mode=erase with gegl:xor does not work proper. I tried and you can try it too and watch it fail. GEGL blend modes are not as good as
39+
Gimp blend modes */
40+
2241
#include "config.h"
2342
#include <glib/gi18n-lib.h>
2443

@@ -52,28 +71,10 @@ property_boolean (enableglasstext, _("Enable Glass on Text for GEGL Effects"), T
5271
/* ui_meta ("role", "output-extent") hides this from showing up in the GUI */
5372

5473

55-
/*
56-
GEGL Graph Below
57-
*/
58-
59-
/*
60-
color-overlay value=#ffffff
61-
gaussian-blur std-dev-x=1 std-dev-y=1
62-
emboss azimuth=44 depth=29
63-
id=1
64-
gimp:layer-mode layer-mode=erase composite-mode=auto aux=[ ref=1 dst-over aux=[ color value=#000000 ] crop color-to-alpha opacity-threshold=0.14 color-overlay value=#000000 ] ]
65-
color-overlay value=#ffffff
66-
gaussian-blur std-dev-x=0 std-dev-y=0
67-
*/
6874

6975

70-
/*GEGL Graph here. NOTE FOR DEVS replacing"gimp:layer-mode layer-mode=erase with gegl:xor does not work proper. I tried and you can try it too and watch it fail. GEGL blend modes are not as good as
71-
Gimp blend modes */
72-
property_string (string, _("Graph"), TUTORIAL)
73-
ui_meta ("role", "output-extent")
7476

75-
76-
#define TUTORIAL \
77+
#define TUTORIALGLASSTEXT \
7778
" id=1 gimp:layer-mode layer-mode=erase composite-mode=auto aux=[ ref=1 dst-over aux=[ color value=#000000 ] crop color-to-alpha opacity-threshold=0.14 color-overlay value=#000000 ] ] "\
7879

7980
property_double (azimuth, _("Azimuth"), 30.0)
@@ -194,7 +195,7 @@ GeglProperties *o = GEGL_PROPERTIES (operation);
194195
NULL);
195196

196197
string = gegl_node_new_child (gegl,
197-
"operation", "gegl:gegl",
198+
"operation", "gegl:gegl", "string", TUTORIALGLASSTEXT,
198199
NULL);
199200

200201
hyperopacity = gegl_node_new_child (gegl,
@@ -226,7 +227,6 @@ GeglProperties *o = GEGL_PROPERTIES (operation);
226227
"operation", "gegl:src-in",
227228
NULL);
228229

229-
230230
glasslinearlight = gegl_node_new_child (gegl,
231231
"operation", "gimp:layer-mode", "layer-mode", 50, "composite-mode", 0, "blend-space", 3, NULL);
232232

compile_innerglow_here/inner-glow.c

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,23 @@
1919

2020
/*GEGL Inner Glow is a stand alone plugin but it is also part of GEGL Effects. The stand alone version does more then the GEGL Effects implementation of it. */
2121

22+
/*
23+
Recreation of Inner Glow's GEGL Graph. May not be 100% accurate but you can test it without installing this way.
24+
25+
id=0 src-in aux=[ ref=0 id=1 dst-atop aux=[ ref=1 distance-transform ] xor srgb=true aux=[ ref=1 ] color-overlay value=#000000 dropshadow x=0 y=0 grow-radius=3 radius=3 color-overlay value=#ff0000 ]
26+
median-blur radius=3 alpha-percentile=94 */
27+
2228
#include "config.h"
2329
#include <glib/gi18n-lib.h>
2430

2531
#ifdef GEGL_PROPERTIES
2632

2733

2834
/*This is GEGL syntax I wrote. Its operation is gegl:gegl and it represents a GEGL Graph inside a GEGL Graph. */
29-
#define TUTORIAL \
35+
#define GRAPHUSEDBYINNERGLOW \
3036
" id=1 dst-atop aux=[ ref=1 distance-transform ] xor srgb=true aux=[ ref=1 ] color-overlay value=#000000 n"\
3137

32-
33-
property_string (string, _("Invert Transparency"), TUTORIAL)
34-
ui_meta ("role", "output-extent")
35-
/*The GEGL Graph is being called here*/
36-
38+
/*On June 24 2023 I finally figured out how to bake in GEGL Graphs*/
3739

3840
/*This is an enum list for the base shape of inner stroke/shadow/glow. It should not be renamed.*/
3941
enum_start (gegl_dropshadow_grow_shapeig)
@@ -123,8 +125,9 @@ static void attach (GeglOperation *operation)
123125

124126

125127
it = gegl_node_new_child (gegl,
126-
"operation", "gegl:gegl",
128+
"operation", "gegl:gegl", "string", GRAPHUSEDBYINNERGLOW,
127129
NULL);
130+
/*On June 24 2023 I finally figured out how to bake in GEGL Graphs*/
128131

129132
in = gegl_node_new_child (gegl,
130133
"operation", "gegl:src-in",

compile_innerglow_here/preview.png

527 KB
Loading

compile_shiny_surface_here/shinytext.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
* GEGL Shiny Text for GEGL Effects CE- Beaver 2023
1818
*/
1919

20-
/*Shiny Text is a hidden operations for GEGL Effects. The goal is to eventually bake it inside GEGL Effects and get rid of this hidden operation. */
20+
/*Shiny Text is a hidden operations for GEGL Effects. It is literally just gegl:sinus done in a special setting with a disable checkbox.
21+
The goal is to eventually bake it inside GEGL Effects and get rid of this hidden operation. */
2122

2223
#include "config.h"
2324
#include <glib/gi18n-lib.h>

0 commit comments

Comments
 (0)