 |
| GimpChat Member |
 |
Joined: Oct 31, 2020 Posts: 2013
|
Unlike mosaic tiles which hasn't even started this filter has a working binary and code that IS INCOMPLETE. I got the whole thing ready in a few hours Attachment:
royal_gui.png [ 363.49 KiB | Viewed 3429 times ]
Linux Only beta download hereLocation to put binaries Linux /home/(USERNAME)/.local/share/gegl-0.4/plug-ins Linux (Flatpak includes Chromebook) /home/(USERNAME)/.var/app/org.gimp.GIMP/data/gegl-0.4/plug-ins
Royal's source code/* This file is an image processing operation for GEGL * * GEGL is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * GEGL is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with GEGL; if not, see <https://www.gnu.org/licenses/>. * * Copyright 2006 Øyvind Kolås <[email protected]> * 2024 Beaver, Royal Text
Syntax to recreate plugin here
color-overlay value=#f95dff gaussian-blur std-dev-x=3 std-dev-y=1
id=1 screen aux=[ ref=1 emboss type=bumpmap azimuth=70 elevation=53 depth=23 opacity value=4.5 ] median-blur radius=0 abyss-policy=none
id=2 median-blur radius=0 abyss-policy=none id=3 over aux=[ ref=3 lb:glassovertext ] dst-over aux=[ ref=2 median-blur radius=10 alpha-percentile=100 abyss-policy=none ] hue-chroma hue=-0 dst-over aux=[ ref=2 median-blur radius=20 alpha-percentile=100 abyss-policy=none
hue-chroma hue=49 lightness=-3 lb:metallic guichange=colormetal color=#ffe600 solar1=6.2 ] id=4 gimp:layer-mode layer-mode=luminance opacity=0.5 aux=[ ref=4 edge amount=3.4 ]
bloom strength=20 lb:threshold-alpha levels in-low=0.11
--end of syntax */
#include "config.h" #include <glib/gi18n-lib.h>
#ifdef GEGL_PROPERTIES
property_int (hue, _("Rotate Bevel's color"), 0) description (_("The bevel's color can be controlled by a limited hue rotation")) value_range (-45, 45) ui_meta ("unit", "degree")
property_double (azimuth, _("Azimuth of everything"), 67.0) description (_("The bevel and bevel outline's light angle (degrees)")) value_range (30, 90) ui_meta ("unit", "degree")
property_double (elevation, _("Elevation of everything"), 40.0) description (_("The bevel and bevel outline's elevation angle (degrees)")) value_range (7, 90) ui_meta ("unit", "degree")
property_int (depth, _("Depth/detail of everything"), 24) description (_("Brings out depth and or detail of both the bevel and bevel outline")) value_range (1, 100)
property_double (glass_azimuth, _("Glass light rotation"), 30.0) description (_("Glass light rotation (azimuith)")) value_range (0, 360) ui_meta ("unit", "degree") ui_meta ("direction", "ccw") ui_steps (0.5, 0.50)
property_int (outline_hue, _("Rotate bevel outline color"), 0) description (_("The bevel outline's color can be controlled by a limited hue rotation")) value_range (-45, 45) ui_meta ("unit", "degree")
property_double (enhance, _("Shine enhance"), 3.0) description (_("Edge detect on luma to enhance the shine")) value_range (0.0, 7.0) ui_meta ("unit", "degree")
property_int (bloom, _("Bloom light"), 20) description (_("Bloom light strength")) value_range (10.0, 40.0)
property_int (outline_size, _("Outline Size"), 24) description (_("Size of the bevel outline")) value_range (10, 40)
property_double (tail, _("Extrusion length"), 0.0) description (_("Length of the extrusion. At 0.0 the extrusion is not noticable")) value_range (0.0, 0.020) ui_range (0.0, 0.020) ui_gamma (2.0)
property_double (x, _("Horizontal Extrusion control"), 0.0) value_range (-0.5, 0.5) ui_range (-0.5, 0.5) description(_("Horizontal movability of the extrusion"))
property_double (y, _("Vertical Extrusion control"), 0.0) value_range (-0.5, 0.5) ui_range (-0.5, 0.5) description(_("Vertical movability of the extrusion"))
#else
#define GEGL_OP_META #define GEGL_OP_NAME royal #define GEGL_OP_C_SOURCE royal.c
#include "gegl-op.h"
static void attach (GeglOperation *operation) { GeglNode *gegl = operation->node; GeglColor *basecolor = gegl_color_new ("#f95dff");
GeglNode *input = gegl_node_get_input_proxy (gegl, "input"); GeglNode *output = gegl_node_get_output_proxy (gegl, "output");
GeglNode *hcolor = gegl_node_new_child (gegl, "operation", "gegl:color-overlay", "value", basecolor, NULL);
GeglNode *unequalblur = gegl_node_new_child (gegl, "operation", "gegl:gaussian-blur", "std-dev-x", 3.0, "std-dev-y", 1.0, NULL);
GeglNode *emboss = gegl_node_new_child (gegl, "operation", "gegl:emboss", "type", 1, NULL);
GeglNode *metallic = gegl_node_new_child (gegl, "operation", "lb:metallic", "guichange", 1, "solar1", 6.0, NULL);
GeglNode *idref1 = gegl_node_new_child (gegl, "operation", "gegl:nop", NULL);
GeglNode *idref2 = gegl_node_new_child (gegl, "operation", "gegl:nop", NULL);
GeglNode *idref3 = gegl_node_new_child (gegl, "operation", "gegl:nop", NULL);
GeglNode *idref4 = gegl_node_new_child (gegl, "operation", "gegl:nop", NULL);
GeglNode *behind1 = gegl_node_new_child (gegl, "operation", "gegl:dst-over", NULL);
GeglNode *behind2 = gegl_node_new_child (gegl, "operation", "gegl:dst-over", NULL);
GeglNode *screen = gegl_node_new_child (gegl, "operation", "gegl:screen", NULL);
GeglNode *bloom = gegl_node_new_child (gegl, "operation", "gegl:bloom", "strength", 20.0, NULL);
GeglNode *lightweak = gegl_node_new_child (gegl, "operation", "gegl:levels", "in-low", 0.11, NULL);
GeglNode *ta = gegl_node_new_child (gegl, "operation", "lb:threshold-alpha", NULL);
GeglNode *normal = gegl_node_new_child (gegl, "operation", "gegl:over", NULL);
GeglNode *edge = gegl_node_new_child (gegl, "operation", "gegl:edge", "amount", 3.0, NULL);
GeglNode *glassoverlay = gegl_node_new_child (gegl, "operation", "lb:glassovertext", NULL);
GeglNode *opacity = gegl_node_new_child (gegl, "operation", "gegl:opacity", "value", 4.5, NULL);
GeglNode *fix1 = gegl_node_new_child (gegl, "operation", "gegl:median-blur", "radius", 0, "abyss-policy", 0, NULL);
GeglNode *fix2 = gegl_node_new_child (gegl, "operation", "gegl:median-blur", "radius", 0, "abyss-policy", 0, NULL);
GeglNode *grow1 = gegl_node_new_child (gegl, "operation", "gegl:median-blur", "radius", 10, "alpha-percentile", 100.0, "abyss-policy", 0, NULL);
GeglNode *grow2 = gegl_node_new_child (gegl, "operation", "gegl:median-blur", "radius", 20, "alpha-percentile", 100.0, "abyss-policy", 0, NULL);
GeglNode *luma = gegl_node_new_child (gegl, "operation", "gimp:layer-mode", "layer-mode", 56, "opacity", 0.5, NULL);
GeglNode *extrusion = gegl_node_new_child (gegl, "operation", "lb:extrusion", NULL);
GeglNode *hue1 = gegl_node_new_child (gegl, "operation", "gegl:hue-chroma", NULL);
GeglNode *hue2 = gegl_node_new_child (gegl, "operation", "gegl:hue-chroma", NULL);
gegl_node_link_many (input, hcolor, unequalblur, idref1, screen, fix1, idref2, fix2, idref3, normal, behind1, hue1, behind2, idref4, luma, bloom, ta, lightweak, extrusion, output, NULL); /*Screen with emboss is here*/ gegl_node_connect (screen, "aux", opacity, "output"); gegl_node_link_many (idref1, emboss, opacity, NULL); /*Glass Overlay on normal blend mode is here*/ gegl_node_link_many (idref3, glassoverlay, NULL); gegl_node_connect (normal, "aux", glassoverlay, "output"); /*The behind blend mode idref2 with median blur is here*/ gegl_node_connect (behind1, "aux", grow1, "output"); gegl_node_connect (behind2, "aux", hue2, "output"); gegl_node_link_many (idref2, grow1, NULL); gegl_node_link_many (idref2, grow2, metallic, hue2, NULL); /*Luminance with edge detect*/ gegl_node_connect (luma, "aux", edge, "output"); gegl_node_link_many (idref4, edge, NULL);
gegl_operation_meta_redirect (operation, "bloom", bloom, "strength"); gegl_operation_meta_redirect (operation, "enhance", edge, "amount"); gegl_operation_meta_redirect (operation, "outline_size", grow2, "radius"); gegl_operation_meta_redirect (operation, "glass_azimuth", glassoverlay, "azimuth"); gegl_operation_meta_redirect (operation, "azimuth", emboss, "azimuth"); gegl_operation_meta_redirect (operation, "depth", emboss, "depth"); gegl_operation_meta_redirect (operation, "elevation", emboss, "elevation"); gegl_operation_meta_redirect (operation, "tail", extrusion, "factor"); gegl_operation_meta_redirect (operation, "x", extrusion, "center_x"); gegl_operation_meta_redirect (operation, "y", extrusion, "center_y"); gegl_operation_meta_redirect (operation, "hue", hue1, "hue"); gegl_operation_meta_redirect (operation, "outline_hue", hue2, "hue"); }
static void gegl_op_class_init (GeglOpClass *klass) { GeglOperationClass *operation_class;
operation_class = GEGL_OPERATION_CLASS (klass);
operation_class->attach = attach;
gegl_operation_class_set_keys (operation_class, "name", "lb:royal", "title", _("Royal Text"), "reference-hash", "JillEscherAutismRedPill", "description", _("Text that appears as a fancy glossed stone which has a precious metal extruding border "), "gimp:menu-path", "<Image>/Filters/Text Styling", "gimp:menu-label", _("Royal Text..."), NULL); }
#endif Description:Text that appears as a fancy glossed stone which has a precious metal extruding border Another Preview Attachment:
royal_2.png [ 506.72 KiB | Viewed 3428 times ]
Last edited by contrast_ on Sun Apr 14, 2024 6:18 pm, edited 1 time in total.
|
|