@pixerate/editor 0.267.0 → 0.268.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/animation-editor/index.cjs +62 -62
- package/dist/animation-editor/index.js +6 -6
- package/dist/brushes/index.cjs +198 -72
- package/dist/brushes/index.d.cts +4 -3
- package/dist/brushes/index.d.ts +4 -3
- package/dist/brushes/index.js +136 -10
- package/dist/brushes/library.d.cts +27 -1
- package/dist/brushes/library.d.ts +27 -1
- package/dist/brushes/profiles.d.cts +4 -0
- package/dist/brushes/profiles.d.ts +4 -0
- package/dist/brushes/schema.d.cts +4 -0
- package/dist/brushes/schema.d.ts +4 -0
- package/dist/brushes/sources.d.cts +114 -0
- package/dist/brushes/sources.d.ts +114 -0
- package/dist/brushes/types.d.cts +37 -5
- package/dist/brushes/types.d.ts +37 -5
- package/dist/brushes/ui.d.cts +40 -4
- package/dist/brushes/ui.d.ts +40 -4
- package/dist/{brushstrokeRender-NLFPEBGI.js → brushstrokeRender-A727TTNQ.js} +6 -6
- package/dist/{brushstrokeRender-L7JYRR2R.cjs → brushstrokeRender-WR2N5HHY.cjs} +22 -22
- package/dist/canvas/index.cjs +13 -13
- package/dist/canvas/index.js +1 -1
- package/dist/{chunk-J2TNIZ55.cjs → chunk-2WOGXEDX.cjs} +1 -1
- package/dist/{chunk-JGWVZPT6.js → chunk-3XDSNIGF.js} +72 -5
- package/dist/{chunk-EXB2EGBE.cjs → chunk-62MFUHSI.cjs} +16 -16
- package/dist/{chunk-GCVFEPJG.js → chunk-ACTHSQOI.js} +182 -0
- package/dist/{chunk-EF7LZAXQ.js → chunk-BAZMCFVL.js} +1 -1
- package/dist/{chunk-HIO6E7LC.cjs → chunk-BPJSI4NT.cjs} +2 -2
- package/dist/{chunk-XVOP3CGQ.cjs → chunk-EU2ZZA6L.cjs} +393 -62
- package/dist/{chunk-YIC6MAJ2.js → chunk-HFY5LG5J.js} +1 -1
- package/dist/{chunk-7UKFXXWL.js → chunk-HVO6XCI4.js} +1 -1
- package/dist/{chunk-LHPEG5AU.cjs → chunk-J4GXP53R.cjs} +140 -91
- package/dist/{chunk-OKHKA43L.cjs → chunk-JBB3GDBB.cjs} +330 -216
- package/dist/{chunk-AGNUD5BI.js → chunk-KZI3YWKW.js} +351 -20
- package/dist/{chunk-FGJHJIMN.js → chunk-LDOD7VCT.js} +59 -10
- package/dist/{chunk-EYSHTYLG.js → chunk-LETF75CA.js} +1 -1
- package/dist/{chunk-FQPUF2W2.cjs → chunk-NIBFKXMD.cjs} +217 -35
- package/dist/{chunk-G7NHE2VD.cjs → chunk-NPWWSCWT.cjs} +35 -35
- package/dist/{chunk-OSEXT7JL.js → chunk-QNY7BDFP.js} +1 -1
- package/dist/{chunk-PXDIAYB6.cjs → chunk-STLTOISW.cjs} +34 -214
- package/dist/{chunk-4IDUYB45.js → chunk-UVTO3D4E.js} +130 -16
- package/dist/{chunk-TXFWZ5ZJ.js → chunk-W6JDUXP3.js} +4 -184
- package/dist/{chunk-LA5Y4ETA.cjs → chunk-YOVXQHA3.cjs} +23 -23
- package/dist/{chunk-DT4YQUGT.cjs → chunk-YXP6X3SY.cjs} +101 -34
- package/dist/image-editor/adjustment-layers.d.cts +8 -0
- package/dist/image-editor/adjustment-layers.d.ts +8 -0
- package/dist/image-editor/index.cjs +857 -853
- package/dist/image-editor/index.js +30 -26
- package/dist/paint/index.cjs +5 -5
- package/dist/paint/index.js +11 -11
- package/dist/paint-editor/brush-library-tools.d.cts +12 -2
- package/dist/paint-editor/brush-library-tools.d.ts +12 -2
- package/dist/paint-editor/brush-model.d.cts +29 -1
- package/dist/paint-editor/brush-model.d.ts +29 -1
- package/dist/paint-editor/brush-source-art.d.cts +32 -0
- package/dist/paint-editor/brush-source-art.d.ts +32 -0
- package/dist/paint-editor/controller.d.cts +6 -1
- package/dist/paint-editor/controller.d.ts +6 -1
- package/dist/paint-editor/dab-stroke.d.cts +2 -0
- package/dist/paint-editor/dab-stroke.d.ts +2 -0
- package/dist/paint-editor/engine.d.cts +11 -2
- package/dist/paint-editor/engine.d.ts +11 -2
- package/dist/paint-editor/index.cjs +576 -481
- package/dist/paint-editor/index.d.cts +3 -1
- package/dist/paint-editor/index.d.ts +3 -1
- package/dist/paint-editor/index.js +127 -32
- package/dist/paint-editor/stamp-tip.d.cts +8 -5
- package/dist/paint-editor/stamp-tip.d.ts +8 -5
- package/dist/paint-editor/thumbnails.d.cts +6 -0
- package/dist/paint-editor/thumbnails.d.ts +6 -0
- package/dist/paint-editor/tip-grain.d.cts +34 -0
- package/dist/paint-editor/tip-grain.d.ts +34 -0
- package/dist/raster/index.cjs +2 -2
- package/dist/raster/index.js +9 -9
- package/dist/vector/index.cjs +1002 -1002
- package/dist/vector/index.js +7 -7
- package/package.json +110 -1
- package/skills/pixerate-brushes/SKILL.md +35 -8
- package/skills/pixerate-brushes-design/SKILL.md +8 -1
- package/skills/pixerate-image-editor/SKILL.md +1 -1
- package/skills/pixerate-paint-editor/SKILL.md +6 -0
- package/skills/pixerate-paint-editor/references/brush-facets.md +3 -1
- package/skills/pixerate-paint-sketch-to-finish/SKILL.md +1 -0
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
parseOpenTypeFont,
|
|
9
9
|
removeAnchorsKeepingShape,
|
|
10
10
|
traceField
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-HFY5LG5J.js";
|
|
12
12
|
import {
|
|
13
13
|
ADJUSTMENT_KEYS,
|
|
14
14
|
ADJUSTMENT_KINDS,
|
|
@@ -110,6 +110,7 @@ import {
|
|
|
110
110
|
applyProcess2Adjustments,
|
|
111
111
|
applyProcess2Float,
|
|
112
112
|
applySmartFilters,
|
|
113
|
+
assertAdjustmentParams,
|
|
113
114
|
backgroundLayer,
|
|
114
115
|
blackWhiteGray,
|
|
115
116
|
blurFilter,
|
|
@@ -408,7 +409,7 @@ import {
|
|
|
408
409
|
writePsd,
|
|
409
410
|
xyToTempTint,
|
|
410
411
|
xyToUv
|
|
411
|
-
} from "../chunk-
|
|
412
|
+
} from "../chunk-LDOD7VCT.js";
|
|
412
413
|
import {
|
|
413
414
|
flattenPath,
|
|
414
415
|
rasterizeCoverage
|
|
@@ -604,7 +605,7 @@ import {
|
|
|
604
605
|
spotHealPixels,
|
|
605
606
|
spotHealWindow,
|
|
606
607
|
toneOf
|
|
607
|
-
} from "../chunk-
|
|
608
|
+
} from "../chunk-HVO6XCI4.js";
|
|
608
609
|
import {
|
|
609
610
|
bestOffset,
|
|
610
611
|
contentAwareFill,
|
|
@@ -682,14 +683,14 @@ import {
|
|
|
682
683
|
warpMeshParamAt,
|
|
683
684
|
warpMeshRows,
|
|
684
685
|
warpPresetMesh
|
|
685
|
-
} from "../chunk-
|
|
686
|
+
} from "../chunk-UVTO3D4E.js";
|
|
686
687
|
import {
|
|
687
688
|
IMAGE_PROFILE,
|
|
688
689
|
checkBrush,
|
|
689
690
|
closest,
|
|
690
691
|
createBrushLibrary,
|
|
691
692
|
resolveBrush
|
|
692
|
-
} from "../chunk-
|
|
693
|
+
} from "../chunk-KZI3YWKW.js";
|
|
693
694
|
import "../chunk-JL6YH5WD.js";
|
|
694
695
|
import "../chunk-M6DNZNVY.js";
|
|
695
696
|
import {
|
|
@@ -810,23 +811,17 @@ import {
|
|
|
810
811
|
} from "../chunk-GSTSZPSR.js";
|
|
811
812
|
import {
|
|
812
813
|
BrushstrokeCache,
|
|
813
|
-
GRAIN_PATTERNS,
|
|
814
|
-
GRAIN_TILE,
|
|
815
|
-
PaperGrain,
|
|
816
814
|
brushstrokeDataUrl,
|
|
817
815
|
brushstrokeKey,
|
|
818
816
|
brushstrokeSamples,
|
|
819
817
|
brushstrokeStrokeOptions,
|
|
820
818
|
brushstrokeToCanvas,
|
|
821
|
-
grainCatch,
|
|
822
|
-
grainHeights,
|
|
823
819
|
isBrushstrokeBrush,
|
|
824
820
|
paintPathStroke,
|
|
825
821
|
pathStrokeCoverage,
|
|
826
822
|
pathStrokeDabs,
|
|
827
|
-
renderBrushstroke
|
|
828
|
-
|
|
829
|
-
} from "../chunk-TXFWZ5ZJ.js";
|
|
823
|
+
renderBrushstroke
|
|
824
|
+
} from "../chunk-W6JDUXP3.js";
|
|
830
825
|
import {
|
|
831
826
|
CoverageMap,
|
|
832
827
|
DEFAULT_BLENDER,
|
|
@@ -837,6 +832,8 @@ import {
|
|
|
837
832
|
DEFAULT_SMUDGE,
|
|
838
833
|
DabWalker,
|
|
839
834
|
EMPTY_MIXER_LOAD,
|
|
835
|
+
GRAIN_PATTERNS,
|
|
836
|
+
GRAIN_TILE,
|
|
840
837
|
MAX_BRUSH_SIZE,
|
|
841
838
|
MIXER_DRAIN,
|
|
842
839
|
MIXER_PICKUP_RATE,
|
|
@@ -857,6 +854,7 @@ import {
|
|
|
857
854
|
PaintExchange,
|
|
858
855
|
PaintGradientSampler,
|
|
859
856
|
PaintSourceError,
|
|
857
|
+
PaperGrain,
|
|
860
858
|
SmudgeTip,
|
|
861
859
|
StrokeCoverage,
|
|
862
860
|
TIP_GRADIENT_STEPS,
|
|
@@ -873,6 +871,8 @@ import {
|
|
|
873
871
|
dabRect,
|
|
874
872
|
exchangeRates,
|
|
875
873
|
gradientDabColor,
|
|
874
|
+
grainCatch,
|
|
875
|
+
grainHeights,
|
|
876
876
|
hexToPaintRgb,
|
|
877
877
|
isGradientPaint,
|
|
878
878
|
loadMixer,
|
|
@@ -895,12 +895,13 @@ import {
|
|
|
895
895
|
scalePaintGradient,
|
|
896
896
|
smoothPoints,
|
|
897
897
|
solidPaint,
|
|
898
|
+
strokeGrainCatch,
|
|
898
899
|
tipFalloff,
|
|
899
900
|
tipReach,
|
|
900
901
|
tipShape,
|
|
901
902
|
updatePaintGradientStop,
|
|
902
903
|
walkDabs
|
|
903
|
-
} from "../chunk-
|
|
904
|
+
} from "../chunk-ACTHSQOI.js";
|
|
904
905
|
import {
|
|
905
906
|
TileableNoise,
|
|
906
907
|
hash2,
|
|
@@ -914,15 +915,6 @@ import {
|
|
|
914
915
|
BRUSHSTROKE_MIN_SCALE,
|
|
915
916
|
brushstrokeScaleBucket
|
|
916
917
|
} from "../chunk-ODBT55Q7.js";
|
|
917
|
-
import {
|
|
918
|
-
base64ToBytes,
|
|
919
|
-
bytesToBase64,
|
|
920
|
-
decodePng,
|
|
921
|
-
encodePng,
|
|
922
|
-
isPng,
|
|
923
|
-
parseDataUrl,
|
|
924
|
-
pngDataUrl
|
|
925
|
-
} from "../chunk-OTTT5N3K.js";
|
|
926
918
|
import {
|
|
927
919
|
BIT_DEPTHS,
|
|
928
920
|
BLEND_MODES,
|
|
@@ -977,6 +969,15 @@ import {
|
|
|
977
969
|
to8From32,
|
|
978
970
|
writeDeepRegion
|
|
979
971
|
} from "../chunk-IRSTHLQQ.js";
|
|
972
|
+
import {
|
|
973
|
+
base64ToBytes,
|
|
974
|
+
bytesToBase64,
|
|
975
|
+
decodePng,
|
|
976
|
+
encodePng,
|
|
977
|
+
isPng,
|
|
978
|
+
parseDataUrl,
|
|
979
|
+
pngDataUrl
|
|
980
|
+
} from "../chunk-OTTT5N3K.js";
|
|
980
981
|
import {
|
|
981
982
|
SurfaceDraft,
|
|
982
983
|
TILE,
|
|
@@ -14005,7 +14006,7 @@ function createImageSelectionTools(controller) {
|
|
|
14005
14006
|
properties: {
|
|
14006
14007
|
layerId: { type: "string", description: "Existing adjustment layer to mask." },
|
|
14007
14008
|
kind: { type: "string", enum: ADJUSTMENT_KINDS.map((k) => k.kind), description: "Kind of a new layer to add and mask (instead of layerId)." },
|
|
14008
|
-
params: { type: "object", description:
|
|
14009
|
+
params: { type: "object", description: 'Parameters for the new layer, nested as in add_adjustment_layer: {"master":{"gamma":1.2}}, not dotted control ids.' },
|
|
14009
14010
|
density: { type: "number", minimum: 0, maximum: 1, description: "Mask density 0-1." },
|
|
14010
14011
|
feather: { type: "number", minimum: 0, maximum: 1e3, description: "Mask feather in pixels." }
|
|
14011
14012
|
},
|
|
@@ -14025,6 +14026,7 @@ function createImageSelectionTools(controller) {
|
|
|
14025
14026
|
controller.applySelectionAsLayerMask(layerId, props);
|
|
14026
14027
|
id = layerId;
|
|
14027
14028
|
} else if (isAdjustmentKind(kind)) {
|
|
14029
|
+
assertAdjustmentParams(kind, params);
|
|
14028
14030
|
id = controller.addAdjustmentLayer({
|
|
14029
14031
|
kind,
|
|
14030
14032
|
params,
|
|
@@ -18554,12 +18556,12 @@ function createImageEditorToolProvider(controller, options = {}) {
|
|
|
18554
18556
|
const addLayer = {
|
|
18555
18557
|
name: "add_adjustment_layer",
|
|
18556
18558
|
title: "Add an adjustment layer",
|
|
18557
|
-
description: "Adds a non-destructive adjustment layer on top of the stack (one undoable step) and returns it; with a selection it is masked by it (useSelection, default true; masked in the result says so). clipped clips it to the layer directly below in the same step, so it adjusts only that layer (clipped in the result). Kinds: " + ADJUSTMENT_KINDS.map((k) => k.kind).join(", ") + ". Omitted params are neutral.",
|
|
18559
|
+
description: "Adds a non-destructive adjustment layer on top of the stack (one undoable step) and returns it; with a selection it is masked by it (useSelection, default true; masked in the result says so). clipped clips it to the layer directly below in the same step, so it adjusts only that layer (clipped in the result). Kinds: " + ADJUSTMENT_KINDS.map((k) => k.kind).join(", ") + ". Omitted params are neutral; an unknown or mistyped key is refused with the accepted shape.",
|
|
18558
18560
|
inputSchema: {
|
|
18559
18561
|
type: "object",
|
|
18560
18562
|
properties: {
|
|
18561
18563
|
kind: { type: "string", enum: ADJUSTMENT_KINDS.map((k) => k.kind), description: "Adjustment kind." },
|
|
18562
|
-
params: { type: "object", description:
|
|
18564
|
+
params: { type: "object", description: 'Initial parameters, merged with neutral defaults. Nested, not dotted control ids: levels gamma is {"master":{"gamma":1.2}}, not {"master.gamma":1.2}. See list_controls for the ranges.' },
|
|
18563
18565
|
opacity: { type: "number", minimum: 0, maximum: 1, description: "Layer opacity 0-1 (default 1)." },
|
|
18564
18566
|
blend: { type: "string", enum: BLEND_MODES.map((m) => m.id), description: "Blend mode (default normal)." },
|
|
18565
18567
|
name: { type: "string", description: "Layer name shown in the layers panel." },
|
|
@@ -18586,6 +18588,7 @@ function createImageEditorToolProvider(controller, options = {}) {
|
|
|
18586
18588
|
if (ref !== void 0 && !controller.getLayer(ref)) throw new Error(`Unknown layer "${ref}". Call list_layers for ids.`);
|
|
18587
18589
|
}
|
|
18588
18590
|
if (parentId !== void 0 && controller.getLayer(parentId)?.type !== "group") throw new Error(`Layer "${parentId}" is not a group.`);
|
|
18591
|
+
assertAdjustmentParams(kind, params);
|
|
18589
18592
|
const id = controller.addAdjustmentLayer({ kind, params, opacity, blend, name, aboveId, parentId, useSelection: useSelection !== false, clipped: clipped === true });
|
|
18590
18593
|
const layer = controller.getAdjustmentLayer(id);
|
|
18591
18594
|
return { layer: JSON.parse(JSON.stringify(layer)), index: controller.getAdjustmentLayers().findIndex((l) => l.id === id), masked: Boolean(layer.mask), clipped: Boolean(controller.getLayer(id)?.clipped) };
|
|
@@ -21836,6 +21839,7 @@ export {
|
|
|
21836
21839
|
applyStrokeToDeepTile,
|
|
21837
21840
|
applyStrokeToTile,
|
|
21838
21841
|
applyToneToDeepTile,
|
|
21842
|
+
assertAdjustmentParams,
|
|
21839
21843
|
backgroundLayer,
|
|
21840
21844
|
base64ToBytes,
|
|
21841
21845
|
baseProjection,
|
package/dist/paint/index.cjs
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _chunk62MFUHSIcjs = require('../chunk-62MFUHSI.cjs');
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
|
|
@@ -147,13 +147,13 @@ var _chunkJ5VQYK7Tcjs = require('../chunk-J5VQYK7T.cjs');
|
|
|
147
147
|
|
|
148
148
|
|
|
149
149
|
|
|
150
|
+
var _chunkSTLTOISWcjs = require('../chunk-STLTOISW.cjs');
|
|
150
151
|
|
|
151
152
|
|
|
152
153
|
|
|
153
154
|
|
|
154
155
|
|
|
155
156
|
|
|
156
|
-
var _chunkPXDIAYB6cjs = require('../chunk-PXDIAYB6.cjs');
|
|
157
157
|
|
|
158
158
|
|
|
159
159
|
|
|
@@ -227,7 +227,7 @@ var _chunkPXDIAYB6cjs = require('../chunk-PXDIAYB6.cjs');
|
|
|
227
227
|
|
|
228
228
|
|
|
229
229
|
|
|
230
|
-
var
|
|
230
|
+
var _chunkNIBFKXMDcjs = require('../chunk-NIBFKXMD.cjs');
|
|
231
231
|
|
|
232
232
|
|
|
233
233
|
|
|
@@ -241,7 +241,6 @@ var _chunk3K6HWEXZcjs = require('../chunk-3K6HWEXZ.cjs');
|
|
|
241
241
|
|
|
242
242
|
|
|
243
243
|
var _chunkYQGCPL5Xcjs = require('../chunk-YQGCPL5X.cjs');
|
|
244
|
-
require('../chunk-W5M3J7PV.cjs');
|
|
245
244
|
|
|
246
245
|
|
|
247
246
|
|
|
@@ -255,6 +254,7 @@ require('../chunk-W5M3J7PV.cjs');
|
|
|
255
254
|
|
|
256
255
|
|
|
257
256
|
var _chunk2VX55NFMcjs = require('../chunk-2VX55NFM.cjs');
|
|
257
|
+
require('../chunk-W5M3J7PV.cjs');
|
|
258
258
|
require('../chunk-474IQG74.cjs');
|
|
259
259
|
require('../chunk-XFM3OCHU.cjs');
|
|
260
260
|
|
|
@@ -498,4 +498,4 @@ require('../chunk-XFM3OCHU.cjs');
|
|
|
498
498
|
|
|
499
499
|
|
|
500
500
|
|
|
501
|
-
exports.BODY_SCATTER = _chunkJ5VQYK7Tcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BrushstrokeCache = _chunkPXDIAYB6cjs.BrushstrokeCache; exports.CoverageMap = _chunkFQPUF2W2cjs.CoverageMap; exports.DEFAULT_BLENDER = _chunkFQPUF2W2cjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkFQPUF2W2cjs.DEFAULT_BRUSH; exports.DEFAULT_FLOW = _chunkJ5VQYK7Tcjs.DEFAULT_FLOW; exports.DEFAULT_MIXER = _chunkFQPUF2W2cjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_RETOUCH = _chunkEXB2EGBEcjs.DEFAULT_RETOUCH; exports.DEFAULT_SMUDGE = _chunkFQPUF2W2cjs.DEFAULT_SMUDGE; exports.DEFAULT_WET_PAPER = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkJ5VQYK7Tcjs.DRY_EPS; exports.DabWalker = _chunkFQPUF2W2cjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkFQPUF2W2cjs.EMPTY_MIXER_LOAD; exports.EX = _chunkJ5VQYK7Tcjs.EX; exports.EY = _chunkJ5VQYK7Tcjs.EY; exports.FLAG_ALIVE = _chunkJ5VQYK7Tcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkJ5VQYK7Tcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkJ5VQYK7Tcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkJ5VQYK7Tcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkJ5VQYK7Tcjs.FLAG_TOP; exports.FLAG_WET = _chunkJ5VQYK7Tcjs.FLAG_WET; exports.FLAT = _chunkJ5VQYK7Tcjs.FLAT; exports.FREE_INTERVAL = _chunkJ5VQYK7Tcjs.FREE_INTERVAL; exports.GRAIN_PATTERNS = _chunkPXDIAYB6cjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPXDIAYB6cjs.GRAIN_TILE; exports.HIDE = _chunkJ5VQYK7Tcjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunkEXB2EGBEcjs.IDENTITY_CLONE_TRANSFORM; exports.MASS_CHANNELS = _chunkJ5VQYK7Tcjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkJ5VQYK7Tcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkFQPUF2W2cjs.MAX_BRUSH_SIZE; exports.MAX_TILT_ACCEL = _chunkJ5VQYK7Tcjs.MAX_TILT_ACCEL; exports.MAX_WET_LANES = _chunkJ5VQYK7Tcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkJ5VQYK7Tcjs.MAX_WET_SLOTS; exports.MIXER_DRAIN = _chunkFQPUF2W2cjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkFQPUF2W2cjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkFQPUF2W2cjs.MIXING_MODELS; exports.MixerStroke = _chunkFQPUF2W2cjs.MixerStroke; exports.OPP = _chunkJ5VQYK7Tcjs.OPP; exports.PAINT_COLOR_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkFQPUF2W2cjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkFQPUF2W2cjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAPER_CAPACITY = _chunkJ5VQYK7Tcjs.PAPER_CAPACITY; exports.PARAM = _chunkJ5VQYK7Tcjs.PARAM; exports.PARAM_FLOATS = _chunkJ5VQYK7Tcjs.PARAM_FLOATS; exports.PIGMENT_BANDS = _chunk2VX55NFMcjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkJ5VQYK7Tcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkJ5VQYK7Tcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunk2VX55NFMcjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkJ5VQYK7Tcjs.PLANE; exports.PLANE_BYTES = _chunkJ5VQYK7Tcjs.PLANE_BYTES; exports.P_D0 = _chunkJ5VQYK7Tcjs.P_D0; exports.P_DL = _chunkJ5VQYK7Tcjs.P_DL; exports.P_EDGE = _chunkJ5VQYK7Tcjs.P_EDGE; exports.P_FX = _chunkJ5VQYK7Tcjs.P_FX; exports.P_FY = _chunkJ5VQYK7Tcjs.P_FY; exports.P_H = _chunkJ5VQYK7Tcjs.P_H; exports.P_L = _chunkJ5VQYK7Tcjs.P_L; exports.P_P0 = _chunkJ5VQYK7Tcjs.P_P0; exports.P_RHO = _chunkJ5VQYK7Tcjs.P_RHO; exports.P_SW = _chunkJ5VQYK7Tcjs.P_SW; exports.P_UX = _chunkJ5VQYK7Tcjs.P_UX; exports.P_UY = _chunkJ5VQYK7Tcjs.P_UY; exports.PaintExchange = _chunkFQPUF2W2cjs.PaintExchange; exports.PaintGradientSampler = _chunkFQPUF2W2cjs.PaintGradientSampler; exports.PaintSourceError = _chunkFQPUF2W2cjs.PaintSourceError; exports.PaperGrain = _chunkPXDIAYB6cjs.PaperGrain; exports.RETOUCH_SAMPLES = _chunkEXB2EGBEcjs.RETOUCH_SAMPLES; exports.RegionPixelSource = _chunkEXB2EGBEcjs.RegionPixelSource; exports.RetouchDabStroke = _chunkEXB2EGBEcjs.RetouchDabStroke; exports.SET_PLANES = _chunkJ5VQYK7Tcjs.SET_PLANES; exports.SLOT_BYTES = _chunkJ5VQYK7Tcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkJ5VQYK7Tcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkJ5VQYK7Tcjs.SLOT_SIDE; exports.SPOT_HEAL_TYPES = _chunkEXB2EGBEcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkJ5VQYK7Tcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkJ5VQYK7Tcjs.STRIP; exports.SmudgeTip = _chunkFQPUF2W2cjs.SmudgeTip; exports.StrokeCoverage = _chunkFQPUF2W2cjs.StrokeCoverage; exports.TIP_GRADIENT_STEPS = _chunkFQPUF2W2cjs.TIP_GRADIENT_STEPS; exports.TONE_RANGES = _chunkEXB2EGBEcjs.TONE_RANGES; exports.TileMedium = _chunkFQPUF2W2cjs.TileMedium; exports.TilePixelSource = _chunkEXB2EGBEcjs.TilePixelSource; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.TransformedPixelSource = _chunkEXB2EGBEcjs.TransformedPixelSource; exports.U_MAX = _chunkJ5VQYK7Tcjs.U_MAX; exports.W9 = _chunkJ5VQYK7Tcjs.W9; exports.WET_FLOW_KINDS = _chunkJ5VQYK7Tcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkJ5VQYK7Tcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkJ5VQYK7Tcjs.WET_TILE; exports.WGSL_HALO = _chunkJ5VQYK7Tcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkJ5VQYK7Tcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkJ5VQYK7Tcjs.WGSL_STEP; exports.WetGpuEngine = _chunkJ5VQYK7Tcjs.WetGpuEngine; exports.WetMedium = _chunkJ5VQYK7Tcjs.WetMedium; exports.WetWorkerPool = _chunkJ5VQYK7Tcjs.WetWorkerPool; exports.WetWorld = _chunkJ5VQYK7Tcjs.WetWorld; exports.WetWorldError = _chunkJ5VQYK7Tcjs.WetWorldError; exports.addPaintGradientStop = _chunkFQPUF2W2cjs.addPaintGradientStop; exports.applyRetouchToTile = _chunkEXB2EGBEcjs.applyRetouchToTile; exports.applyStrokeToDeepTile = _chunkFQPUF2W2cjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkFQPUF2W2cjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunkEXB2EGBEcjs.applyToneToDeepTile; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blendRadius = _chunkFQPUF2W2cjs.blendRadius; exports.blenderDab = _chunkFQPUF2W2cjs.blenderDab; exports.boxBlurPixels = _chunkEXB2EGBEcjs.boxBlurPixels; exports.brushstrokeDataUrl = _chunkPXDIAYB6cjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkPXDIAYB6cjs.brushstrokeKey; exports.brushstrokeSamples = _chunkPXDIAYB6cjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkPXDIAYB6cjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkPXDIAYB6cjs.brushstrokeToCanvas; exports.canShareMemory = _chunkJ5VQYK7Tcjs.canShareMemory; exports.cleanMixer = _chunkFQPUF2W2cjs.cleanMixer; exports.cloneSamplePoint = _chunkEXB2EGBEcjs.cloneSamplePoint; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.coverageTileCoord = _chunkFQPUF2W2cjs.coverageTileCoord; exports.createBlenderScratch = _chunkFQPUF2W2cjs.createBlenderScratch; exports.createPigment = _chunk2VX55NFMcjs.createPigment; exports.createPigmentTools = _chunkEXB2EGBEcjs.createPigmentTools; exports.createWetGpuEngine = _chunkJ5VQYK7Tcjs.createWetGpuEngine; exports.dabCoverage = _chunkFQPUF2W2cjs.dabCoverage; exports.dabRect = _chunkFQPUF2W2cjs.dabRect; exports.dexp = _chunkJ5VQYK7Tcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkJ5VQYK7Tcjs.dlog; exports.dodgeBurn = _chunkEXB2EGBEcjs.dodgeBurn; exports.dodgeBurnCurve = _chunkEXB2EGBEcjs.dodgeBurnCurve; exports.dpow = _chunkJ5VQYK7Tcjs.dpow; exports.dsincos = _chunkJ5VQYK7Tcjs.dsincos; exports.edgeBits = _chunkJ5VQYK7Tcjs.edgeBits; exports.exchangeRates = _chunkFQPUF2W2cjs.exchangeRates; exports.expNeg = _chunkJ5VQYK7Tcjs.expNeg; exports.filmPixel = _chunkJ5VQYK7Tcjs.filmPixel; exports.filmReflectance = _chunkJ5VQYK7Tcjs.filmReflectance; exports.findWebGpu = _chunkJ5VQYK7Tcjs.findWebGpu; exports.flowField = _chunkJ5VQYK7Tcjs.flowField; exports.gradientDabColor = _chunkFQPUF2W2cjs.gradientDabColor; exports.grainCatch = _chunkPXDIAYB6cjs.grainCatch; exports.grainHeights = _chunkPXDIAYB6cjs.grainHeights; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.healPixels = _chunkEXB2EGBEcjs.healPixels; exports.hexToPaintRgb = _chunkFQPUF2W2cjs.hexToPaintRgb; exports.isBrushstrokeBrush = _chunkPXDIAYB6cjs.isBrushstrokeBrush; exports.isGradientPaint = _chunkFQPUF2W2cjs.isGradientPaint; exports.isIdentityCloneTransform = _chunkEXB2EGBEcjs.isIdentityCloneTransform; exports.latticeViscosity = _chunkJ5VQYK7Tcjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkJ5VQYK7Tcjs.linearToSrgb8; exports.loadMixer = _chunkFQPUF2W2cjs.loadMixer; exports.loadWetKernel = _chunkJ5VQYK7Tcjs.loadWetKernel; exports.luma = _chunkEXB2EGBEcjs.luma; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPigments = _chunk2VX55NFMcjs.mixPigments; exports.mixerRates = _chunkFQPUF2W2cjs.mixerRates; exports.moveWetSnapshot = _chunkJ5VQYK7Tcjs.moveWetSnapshot; exports.normalizeBlender = _chunkFQPUF2W2cjs.normalizeBlender; exports.normalizeBrush = _chunkFQPUF2W2cjs.normalizeBrush; exports.normalizeFlow = _chunkJ5VQYK7Tcjs.normalizeFlow; exports.normalizeHexColor = _chunkFQPUF2W2cjs.normalizeHexColor; exports.normalizeMixer = _chunkFQPUF2W2cjs.normalizeMixer; exports.normalizeRetouch = _chunkEXB2EGBEcjs.normalizeRetouch; exports.normalizeSmudge = _chunkFQPUF2W2cjs.normalizeSmudge; exports.normalizeTilt = _chunkJ5VQYK7Tcjs.normalizeTilt; exports.normalizeWetParams = _chunkJ5VQYK7Tcjs.normalizeWetParams; exports.packWetParams = _chunkJ5VQYK7Tcjs.packWetParams; exports.paintGradientMappingFor = _chunkFQPUF2W2cjs.paintGradientMappingFor; exports.paintPathStroke = _chunkPXDIAYB6cjs.paintPathStroke; exports.paintSourceColor = _chunkFQPUF2W2cjs.paintSourceColor; exports.paintSourceCss = _chunkFQPUF2W2cjs.paintSourceCss; exports.parsePaintSource = _chunkFQPUF2W2cjs.parsePaintSource; exports.pathStrokeCoverage = _chunkPXDIAYB6cjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkPXDIAYB6cjs.pathStrokeDabs; exports.perDabStrength = _chunkEXB2EGBEcjs.perDabStrength; exports.pigmentColor = _chunkJ5VQYK7Tcjs.pigmentColor; exports.pigmentOf = _chunkJ5VQYK7Tcjs.pigmentOf; exports.pixelPigment = _chunkJ5VQYK7Tcjs.pixelPigment; exports.pointerPressure = _chunkEXB2EGBEcjs.pointerPressure; exports.pointerStrokeSample = _chunkEXB2EGBEcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunkEXB2EGBEcjs.pointerStrokeSamples; exports.put255 = _chunkFQPUF2W2cjs.put255; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.rasterizeDab = _chunkFQPUF2W2cjs.rasterizeDab; exports.readPaintSource = _chunkFQPUF2W2cjs.readPaintSource; exports.readSourceRegion = _chunkEXB2EGBEcjs.readSourceRegion; exports.reflectanceToRgb = _chunk2VX55NFMcjs.reflectanceToRgb; exports.removePaintGradientStop = _chunkFQPUF2W2cjs.removePaintGradientStop; exports.renderBrushstroke = _chunkPXDIAYB6cjs.renderBrushstroke; exports.resolvePaintGradient = _chunkFQPUF2W2cjs.resolvePaintGradient; exports.retouchFilter = _chunkEXB2EGBEcjs.retouchFilter; exports.reversePaintGradient = _chunkFQPUF2W2cjs.reversePaintGradient; exports.rgbToReflectance = _chunk2VX55NFMcjs.rgbToReflectance; exports.rgbaViewOfGrey = _chunkEXB2EGBEcjs.rgbaViewOfGrey; exports.saturationOf = _chunkEXB2EGBEcjs.saturationOf; exports.scalePaintGradient = _chunkFQPUF2W2cjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.setPigmentColor = _chunk2VX55NFMcjs.setPigmentColor; exports.shadeLightTile = _chunkJ5VQYK7Tcjs.shadeLightTile; exports.shadeTile = _chunkJ5VQYK7Tcjs.shadeTile; exports.smoothPoints = _chunkFQPUF2W2cjs.smoothPoints; exports.smudgeEffect = _chunkEXB2EGBEcjs.smudgeEffect; exports.solidPaint = _chunkFQPUF2W2cjs.solidPaint; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.sponge = _chunkEXB2EGBEcjs.sponge; exports.spongeEffect = _chunkEXB2EGBEcjs.spongeEffect; exports.spotHealPixels = _chunkEXB2EGBEcjs.spotHealPixels; exports.spotHealWindow = _chunkEXB2EGBEcjs.spotHealWindow; exports.srgbByteToLinear = _chunkJ5VQYK7Tcjs.srgbByteToLinear; exports.stepSlotTs = _chunkJ5VQYK7Tcjs.stepSlotTs; exports.strokeGrainCatch = _chunkPXDIAYB6cjs.strokeGrainCatch; exports.tipFalloff = _chunkFQPUF2W2cjs.tipFalloff; exports.tipReach = _chunkFQPUF2W2cjs.tipReach; exports.tipShape = _chunkFQPUF2W2cjs.tipShape; exports.toneOf = _chunkEXB2EGBEcjs.toneOf; exports.updatePaintGradientStop = _chunkFQPUF2W2cjs.updatePaintGradientStop; exports.walkDabs = _chunkFQPUF2W2cjs.walkDabs; exports.wetGpuSupport = _chunkJ5VQYK7Tcjs.wetGpuSupport; exports.wetSimdSupported = _chunkJ5VQYK7Tcjs.wetSimdSupported; exports.wetSupport = _chunkJ5VQYK7Tcjs.wetSupport;
|
|
501
|
+
exports.BODY_SCATTER = _chunkJ5VQYK7Tcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BrushstrokeCache = _chunkSTLTOISWcjs.BrushstrokeCache; exports.CoverageMap = _chunkNIBFKXMDcjs.CoverageMap; exports.DEFAULT_BLENDER = _chunkNIBFKXMDcjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkNIBFKXMDcjs.DEFAULT_BRUSH; exports.DEFAULT_FLOW = _chunkJ5VQYK7Tcjs.DEFAULT_FLOW; exports.DEFAULT_MIXER = _chunkNIBFKXMDcjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkNIBFKXMDcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkNIBFKXMDcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_RETOUCH = _chunk62MFUHSIcjs.DEFAULT_RETOUCH; exports.DEFAULT_SMUDGE = _chunkNIBFKXMDcjs.DEFAULT_SMUDGE; exports.DEFAULT_WET_PAPER = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkJ5VQYK7Tcjs.DRY_EPS; exports.DabWalker = _chunkNIBFKXMDcjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkNIBFKXMDcjs.EMPTY_MIXER_LOAD; exports.EX = _chunkJ5VQYK7Tcjs.EX; exports.EY = _chunkJ5VQYK7Tcjs.EY; exports.FLAG_ALIVE = _chunkJ5VQYK7Tcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkJ5VQYK7Tcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkJ5VQYK7Tcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkJ5VQYK7Tcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkJ5VQYK7Tcjs.FLAG_TOP; exports.FLAG_WET = _chunkJ5VQYK7Tcjs.FLAG_WET; exports.FLAT = _chunkJ5VQYK7Tcjs.FLAT; exports.FREE_INTERVAL = _chunkJ5VQYK7Tcjs.FREE_INTERVAL; exports.GRAIN_PATTERNS = _chunkNIBFKXMDcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkNIBFKXMDcjs.GRAIN_TILE; exports.HIDE = _chunkJ5VQYK7Tcjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunk62MFUHSIcjs.IDENTITY_CLONE_TRANSFORM; exports.MASS_CHANNELS = _chunkJ5VQYK7Tcjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkJ5VQYK7Tcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkNIBFKXMDcjs.MAX_BRUSH_SIZE; exports.MAX_TILT_ACCEL = _chunkJ5VQYK7Tcjs.MAX_TILT_ACCEL; exports.MAX_WET_LANES = _chunkJ5VQYK7Tcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkJ5VQYK7Tcjs.MAX_WET_SLOTS; exports.MIXER_DRAIN = _chunkNIBFKXMDcjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkNIBFKXMDcjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkNIBFKXMDcjs.MIXING_MODELS; exports.MixerStroke = _chunkNIBFKXMDcjs.MixerStroke; exports.OPP = _chunkJ5VQYK7Tcjs.OPP; exports.PAINT_COLOR_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkNIBFKXMDcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkNIBFKXMDcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkNIBFKXMDcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAPER_CAPACITY = _chunkJ5VQYK7Tcjs.PAPER_CAPACITY; exports.PARAM = _chunkJ5VQYK7Tcjs.PARAM; exports.PARAM_FLOATS = _chunkJ5VQYK7Tcjs.PARAM_FLOATS; exports.PIGMENT_BANDS = _chunk2VX55NFMcjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkJ5VQYK7Tcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkJ5VQYK7Tcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunk2VX55NFMcjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkJ5VQYK7Tcjs.PLANE; exports.PLANE_BYTES = _chunkJ5VQYK7Tcjs.PLANE_BYTES; exports.P_D0 = _chunkJ5VQYK7Tcjs.P_D0; exports.P_DL = _chunkJ5VQYK7Tcjs.P_DL; exports.P_EDGE = _chunkJ5VQYK7Tcjs.P_EDGE; exports.P_FX = _chunkJ5VQYK7Tcjs.P_FX; exports.P_FY = _chunkJ5VQYK7Tcjs.P_FY; exports.P_H = _chunkJ5VQYK7Tcjs.P_H; exports.P_L = _chunkJ5VQYK7Tcjs.P_L; exports.P_P0 = _chunkJ5VQYK7Tcjs.P_P0; exports.P_RHO = _chunkJ5VQYK7Tcjs.P_RHO; exports.P_SW = _chunkJ5VQYK7Tcjs.P_SW; exports.P_UX = _chunkJ5VQYK7Tcjs.P_UX; exports.P_UY = _chunkJ5VQYK7Tcjs.P_UY; exports.PaintExchange = _chunkNIBFKXMDcjs.PaintExchange; exports.PaintGradientSampler = _chunkNIBFKXMDcjs.PaintGradientSampler; exports.PaintSourceError = _chunkNIBFKXMDcjs.PaintSourceError; exports.PaperGrain = _chunkNIBFKXMDcjs.PaperGrain; exports.RETOUCH_SAMPLES = _chunk62MFUHSIcjs.RETOUCH_SAMPLES; exports.RegionPixelSource = _chunk62MFUHSIcjs.RegionPixelSource; exports.RetouchDabStroke = _chunk62MFUHSIcjs.RetouchDabStroke; exports.SET_PLANES = _chunkJ5VQYK7Tcjs.SET_PLANES; exports.SLOT_BYTES = _chunkJ5VQYK7Tcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkJ5VQYK7Tcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkJ5VQYK7Tcjs.SLOT_SIDE; exports.SPOT_HEAL_TYPES = _chunk62MFUHSIcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkJ5VQYK7Tcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkJ5VQYK7Tcjs.STRIP; exports.SmudgeTip = _chunkNIBFKXMDcjs.SmudgeTip; exports.StrokeCoverage = _chunkNIBFKXMDcjs.StrokeCoverage; exports.TIP_GRADIENT_STEPS = _chunkNIBFKXMDcjs.TIP_GRADIENT_STEPS; exports.TONE_RANGES = _chunk62MFUHSIcjs.TONE_RANGES; exports.TileMedium = _chunkNIBFKXMDcjs.TileMedium; exports.TilePixelSource = _chunk62MFUHSIcjs.TilePixelSource; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.TransformedPixelSource = _chunk62MFUHSIcjs.TransformedPixelSource; exports.U_MAX = _chunkJ5VQYK7Tcjs.U_MAX; exports.W9 = _chunkJ5VQYK7Tcjs.W9; exports.WET_FLOW_KINDS = _chunkJ5VQYK7Tcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkJ5VQYK7Tcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkJ5VQYK7Tcjs.WET_TILE; exports.WGSL_HALO = _chunkJ5VQYK7Tcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkJ5VQYK7Tcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkJ5VQYK7Tcjs.WGSL_STEP; exports.WetGpuEngine = _chunkJ5VQYK7Tcjs.WetGpuEngine; exports.WetMedium = _chunkJ5VQYK7Tcjs.WetMedium; exports.WetWorkerPool = _chunkJ5VQYK7Tcjs.WetWorkerPool; exports.WetWorld = _chunkJ5VQYK7Tcjs.WetWorld; exports.WetWorldError = _chunkJ5VQYK7Tcjs.WetWorldError; exports.addPaintGradientStop = _chunkNIBFKXMDcjs.addPaintGradientStop; exports.applyRetouchToTile = _chunk62MFUHSIcjs.applyRetouchToTile; exports.applyStrokeToDeepTile = _chunkNIBFKXMDcjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkNIBFKXMDcjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunk62MFUHSIcjs.applyToneToDeepTile; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blendRadius = _chunkNIBFKXMDcjs.blendRadius; exports.blenderDab = _chunkNIBFKXMDcjs.blenderDab; exports.boxBlurPixels = _chunk62MFUHSIcjs.boxBlurPixels; exports.brushstrokeDataUrl = _chunkSTLTOISWcjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkSTLTOISWcjs.brushstrokeKey; exports.brushstrokeSamples = _chunkSTLTOISWcjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkSTLTOISWcjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkSTLTOISWcjs.brushstrokeToCanvas; exports.canShareMemory = _chunkJ5VQYK7Tcjs.canShareMemory; exports.cleanMixer = _chunkNIBFKXMDcjs.cleanMixer; exports.cloneSamplePoint = _chunk62MFUHSIcjs.cloneSamplePoint; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.coverageTileCoord = _chunkNIBFKXMDcjs.coverageTileCoord; exports.createBlenderScratch = _chunkNIBFKXMDcjs.createBlenderScratch; exports.createPigment = _chunk2VX55NFMcjs.createPigment; exports.createPigmentTools = _chunk62MFUHSIcjs.createPigmentTools; exports.createWetGpuEngine = _chunkJ5VQYK7Tcjs.createWetGpuEngine; exports.dabCoverage = _chunkNIBFKXMDcjs.dabCoverage; exports.dabRect = _chunkNIBFKXMDcjs.dabRect; exports.dexp = _chunkJ5VQYK7Tcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkJ5VQYK7Tcjs.dlog; exports.dodgeBurn = _chunk62MFUHSIcjs.dodgeBurn; exports.dodgeBurnCurve = _chunk62MFUHSIcjs.dodgeBurnCurve; exports.dpow = _chunkJ5VQYK7Tcjs.dpow; exports.dsincos = _chunkJ5VQYK7Tcjs.dsincos; exports.edgeBits = _chunkJ5VQYK7Tcjs.edgeBits; exports.exchangeRates = _chunkNIBFKXMDcjs.exchangeRates; exports.expNeg = _chunkJ5VQYK7Tcjs.expNeg; exports.filmPixel = _chunkJ5VQYK7Tcjs.filmPixel; exports.filmReflectance = _chunkJ5VQYK7Tcjs.filmReflectance; exports.findWebGpu = _chunkJ5VQYK7Tcjs.findWebGpu; exports.flowField = _chunkJ5VQYK7Tcjs.flowField; exports.gradientDabColor = _chunkNIBFKXMDcjs.gradientDabColor; exports.grainCatch = _chunkNIBFKXMDcjs.grainCatch; exports.grainHeights = _chunkNIBFKXMDcjs.grainHeights; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.healPixels = _chunk62MFUHSIcjs.healPixels; exports.hexToPaintRgb = _chunkNIBFKXMDcjs.hexToPaintRgb; exports.isBrushstrokeBrush = _chunkSTLTOISWcjs.isBrushstrokeBrush; exports.isGradientPaint = _chunkNIBFKXMDcjs.isGradientPaint; exports.isIdentityCloneTransform = _chunk62MFUHSIcjs.isIdentityCloneTransform; exports.latticeViscosity = _chunkJ5VQYK7Tcjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkJ5VQYK7Tcjs.linearToSrgb8; exports.loadMixer = _chunkNIBFKXMDcjs.loadMixer; exports.loadWetKernel = _chunkJ5VQYK7Tcjs.loadWetKernel; exports.luma = _chunk62MFUHSIcjs.luma; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPigments = _chunk2VX55NFMcjs.mixPigments; exports.mixerRates = _chunkNIBFKXMDcjs.mixerRates; exports.moveWetSnapshot = _chunkJ5VQYK7Tcjs.moveWetSnapshot; exports.normalizeBlender = _chunkNIBFKXMDcjs.normalizeBlender; exports.normalizeBrush = _chunkNIBFKXMDcjs.normalizeBrush; exports.normalizeFlow = _chunkJ5VQYK7Tcjs.normalizeFlow; exports.normalizeHexColor = _chunkNIBFKXMDcjs.normalizeHexColor; exports.normalizeMixer = _chunkNIBFKXMDcjs.normalizeMixer; exports.normalizeRetouch = _chunk62MFUHSIcjs.normalizeRetouch; exports.normalizeSmudge = _chunkNIBFKXMDcjs.normalizeSmudge; exports.normalizeTilt = _chunkJ5VQYK7Tcjs.normalizeTilt; exports.normalizeWetParams = _chunkJ5VQYK7Tcjs.normalizeWetParams; exports.packWetParams = _chunkJ5VQYK7Tcjs.packWetParams; exports.paintGradientMappingFor = _chunkNIBFKXMDcjs.paintGradientMappingFor; exports.paintPathStroke = _chunkSTLTOISWcjs.paintPathStroke; exports.paintSourceColor = _chunkNIBFKXMDcjs.paintSourceColor; exports.paintSourceCss = _chunkNIBFKXMDcjs.paintSourceCss; exports.parsePaintSource = _chunkNIBFKXMDcjs.parsePaintSource; exports.pathStrokeCoverage = _chunkSTLTOISWcjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkSTLTOISWcjs.pathStrokeDabs; exports.perDabStrength = _chunk62MFUHSIcjs.perDabStrength; exports.pigmentColor = _chunkJ5VQYK7Tcjs.pigmentColor; exports.pigmentOf = _chunkJ5VQYK7Tcjs.pigmentOf; exports.pixelPigment = _chunkJ5VQYK7Tcjs.pixelPigment; exports.pointerPressure = _chunk62MFUHSIcjs.pointerPressure; exports.pointerStrokeSample = _chunk62MFUHSIcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunk62MFUHSIcjs.pointerStrokeSamples; exports.put255 = _chunkNIBFKXMDcjs.put255; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.rasterizeDab = _chunkNIBFKXMDcjs.rasterizeDab; exports.readPaintSource = _chunkNIBFKXMDcjs.readPaintSource; exports.readSourceRegion = _chunk62MFUHSIcjs.readSourceRegion; exports.reflectanceToRgb = _chunk2VX55NFMcjs.reflectanceToRgb; exports.removePaintGradientStop = _chunkNIBFKXMDcjs.removePaintGradientStop; exports.renderBrushstroke = _chunkSTLTOISWcjs.renderBrushstroke; exports.resolvePaintGradient = _chunkNIBFKXMDcjs.resolvePaintGradient; exports.retouchFilter = _chunk62MFUHSIcjs.retouchFilter; exports.reversePaintGradient = _chunkNIBFKXMDcjs.reversePaintGradient; exports.rgbToReflectance = _chunk2VX55NFMcjs.rgbToReflectance; exports.rgbaViewOfGrey = _chunk62MFUHSIcjs.rgbaViewOfGrey; exports.saturationOf = _chunk62MFUHSIcjs.saturationOf; exports.scalePaintGradient = _chunkNIBFKXMDcjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.setPigmentColor = _chunk2VX55NFMcjs.setPigmentColor; exports.shadeLightTile = _chunkJ5VQYK7Tcjs.shadeLightTile; exports.shadeTile = _chunkJ5VQYK7Tcjs.shadeTile; exports.smoothPoints = _chunkNIBFKXMDcjs.smoothPoints; exports.smudgeEffect = _chunk62MFUHSIcjs.smudgeEffect; exports.solidPaint = _chunkNIBFKXMDcjs.solidPaint; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.sponge = _chunk62MFUHSIcjs.sponge; exports.spongeEffect = _chunk62MFUHSIcjs.spongeEffect; exports.spotHealPixels = _chunk62MFUHSIcjs.spotHealPixels; exports.spotHealWindow = _chunk62MFUHSIcjs.spotHealWindow; exports.srgbByteToLinear = _chunkJ5VQYK7Tcjs.srgbByteToLinear; exports.stepSlotTs = _chunkJ5VQYK7Tcjs.stepSlotTs; exports.strokeGrainCatch = _chunkNIBFKXMDcjs.strokeGrainCatch; exports.tipFalloff = _chunkNIBFKXMDcjs.tipFalloff; exports.tipReach = _chunkNIBFKXMDcjs.tipReach; exports.tipShape = _chunkNIBFKXMDcjs.tipShape; exports.toneOf = _chunk62MFUHSIcjs.toneOf; exports.updatePaintGradientStop = _chunkNIBFKXMDcjs.updatePaintGradientStop; exports.walkDabs = _chunkNIBFKXMDcjs.walkDabs; exports.wetGpuSupport = _chunkJ5VQYK7Tcjs.wetGpuSupport; exports.wetSimdSupported = _chunkJ5VQYK7Tcjs.wetSimdSupported; exports.wetSupport = _chunkJ5VQYK7Tcjs.wetSupport;
|
package/dist/paint/index.js
CHANGED
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
spotHealPixels,
|
|
34
34
|
spotHealWindow,
|
|
35
35
|
toneOf
|
|
36
|
-
} from "../chunk-
|
|
36
|
+
} from "../chunk-HVO6XCI4.js";
|
|
37
37
|
import {
|
|
38
38
|
bestOffset,
|
|
39
39
|
contentAwareFill,
|
|
@@ -137,23 +137,17 @@ import {
|
|
|
137
137
|
} from "../chunk-GSTSZPSR.js";
|
|
138
138
|
import {
|
|
139
139
|
BrushstrokeCache,
|
|
140
|
-
GRAIN_PATTERNS,
|
|
141
|
-
GRAIN_TILE,
|
|
142
|
-
PaperGrain,
|
|
143
140
|
brushstrokeDataUrl,
|
|
144
141
|
brushstrokeKey,
|
|
145
142
|
brushstrokeSamples,
|
|
146
143
|
brushstrokeStrokeOptions,
|
|
147
144
|
brushstrokeToCanvas,
|
|
148
|
-
grainCatch,
|
|
149
|
-
grainHeights,
|
|
150
145
|
isBrushstrokeBrush,
|
|
151
146
|
paintPathStroke,
|
|
152
147
|
pathStrokeCoverage,
|
|
153
148
|
pathStrokeDabs,
|
|
154
|
-
renderBrushstroke
|
|
155
|
-
|
|
156
|
-
} from "../chunk-TXFWZ5ZJ.js";
|
|
149
|
+
renderBrushstroke
|
|
150
|
+
} from "../chunk-W6JDUXP3.js";
|
|
157
151
|
import {
|
|
158
152
|
CoverageMap,
|
|
159
153
|
DEFAULT_BLENDER,
|
|
@@ -164,6 +158,8 @@ import {
|
|
|
164
158
|
DEFAULT_SMUDGE,
|
|
165
159
|
DabWalker,
|
|
166
160
|
EMPTY_MIXER_LOAD,
|
|
161
|
+
GRAIN_PATTERNS,
|
|
162
|
+
GRAIN_TILE,
|
|
167
163
|
MAX_BRUSH_SIZE,
|
|
168
164
|
MIXER_DRAIN,
|
|
169
165
|
MIXER_PICKUP_RATE,
|
|
@@ -184,6 +180,7 @@ import {
|
|
|
184
180
|
PaintExchange,
|
|
185
181
|
PaintGradientSampler,
|
|
186
182
|
PaintSourceError,
|
|
183
|
+
PaperGrain,
|
|
187
184
|
SmudgeTip,
|
|
188
185
|
StrokeCoverage,
|
|
189
186
|
TIP_GRADIENT_STEPS,
|
|
@@ -200,6 +197,8 @@ import {
|
|
|
200
197
|
dabRect,
|
|
201
198
|
exchangeRates,
|
|
202
199
|
gradientDabColor,
|
|
200
|
+
grainCatch,
|
|
201
|
+
grainHeights,
|
|
203
202
|
hexToPaintRgb,
|
|
204
203
|
isGradientPaint,
|
|
205
204
|
loadMixer,
|
|
@@ -222,12 +221,13 @@ import {
|
|
|
222
221
|
scalePaintGradient,
|
|
223
222
|
smoothPoints,
|
|
224
223
|
solidPaint,
|
|
224
|
+
strokeGrainCatch,
|
|
225
225
|
tipFalloff,
|
|
226
226
|
tipReach,
|
|
227
227
|
tipShape,
|
|
228
228
|
updatePaintGradientStop,
|
|
229
229
|
walkDabs
|
|
230
|
-
} from "../chunk-
|
|
230
|
+
} from "../chunk-ACTHSQOI.js";
|
|
231
231
|
import {
|
|
232
232
|
TileableNoise,
|
|
233
233
|
hash2,
|
|
@@ -241,7 +241,6 @@ import {
|
|
|
241
241
|
BRUSHSTROKE_MIN_SCALE,
|
|
242
242
|
brushstrokeScaleBucket
|
|
243
243
|
} from "../chunk-ODBT55Q7.js";
|
|
244
|
-
import "../chunk-OTTT5N3K.js";
|
|
245
244
|
import {
|
|
246
245
|
PIGMENT_BANDS,
|
|
247
246
|
PIGMENT_LAMBDA_MIN,
|
|
@@ -255,6 +254,7 @@ import {
|
|
|
255
254
|
rgbToReflectance,
|
|
256
255
|
setPigmentColor
|
|
257
256
|
} from "../chunk-IRSTHLQQ.js";
|
|
257
|
+
import "../chunk-OTTT5N3K.js";
|
|
258
258
|
import "../chunk-HVVR5PZW.js";
|
|
259
259
|
import "../chunk-QGHEDC7B.js";
|
|
260
260
|
export {
|
|
@@ -2,17 +2,27 @@
|
|
|
2
2
|
* The shared brush library's agent tools for a paint editor (`createPaintBrushLibraryToolProvider`),
|
|
3
3
|
* with `preview_brush` painted by this editor.
|
|
4
4
|
*/
|
|
5
|
+
import type { BrushLibrary } from '../brushes/library.cjs';
|
|
6
|
+
import type { StickerArtLookup } from './sticker-art.cjs';
|
|
5
7
|
import { type BrushLibraryToolProviderOptions, type BrushPreviewRenderer } from '../brushes/tools.cjs';
|
|
6
8
|
import type { AgentToolProvider } from '../tools/registry.cjs';
|
|
7
9
|
import type { PaintEditorController } from './controller.cjs';
|
|
8
10
|
import { type PaperSettings } from './paper.cjs';
|
|
9
11
|
export type PaintBrushLibraryToolProviderOptions = Omit<BrushLibraryToolProviderOptions, 'renderPreview'>;
|
|
12
|
+
/** Where a preview renderer finds a brush's image sources (and sticker art). */
|
|
13
|
+
export interface PaintBrushPreviewOptions {
|
|
14
|
+
/** Image sources are read from this library before each preview that needs them. */
|
|
15
|
+
library?: Pick<BrushLibrary, 'getSource'>;
|
|
16
|
+
/** Art for sticker stamp tips (and anything else not in the library), read on every call. */
|
|
17
|
+
stampArt?: () => StickerArtLookup | undefined;
|
|
18
|
+
}
|
|
10
19
|
/**
|
|
11
20
|
* A brush preview renderer (`BrushPreviewRenderer`, as `preview_brush` and `BrushLibraryEditor`
|
|
12
21
|
* take) that paints the test stroke with the paint engine on `paper` (read on every call; default
|
|
13
|
-
* the default paper). Any brush the paint editor renders, so also the image editor's.
|
|
22
|
+
* the default paper). Any brush the paint editor renders, so also the image editor's. With
|
|
23
|
+
* `options.library`, image tips and image grain are drawn from its sources.
|
|
14
24
|
*/
|
|
15
|
-
export declare function paintBrushPreviewRenderer(paper?: () => PaperSettings): BrushPreviewRenderer;
|
|
25
|
+
export declare function paintBrushPreviewRenderer(paper?: () => PaperSettings, options?: PaintBrushPreviewOptions): BrushPreviewRenderer;
|
|
16
26
|
/**
|
|
17
27
|
* The brush library tools for a paint editor (`@pixerate/editor/brushes`' provider on the
|
|
18
28
|
* editor's `brushLibrary`, `PAINT_PROFILE`), with `preview_brush` painting the test stroke on the
|
|
@@ -2,17 +2,27 @@
|
|
|
2
2
|
* The shared brush library's agent tools for a paint editor (`createPaintBrushLibraryToolProvider`),
|
|
3
3
|
* with `preview_brush` painted by this editor.
|
|
4
4
|
*/
|
|
5
|
+
import type { BrushLibrary } from '../brushes/library.js';
|
|
6
|
+
import type { StickerArtLookup } from './sticker-art.js';
|
|
5
7
|
import { type BrushLibraryToolProviderOptions, type BrushPreviewRenderer } from '../brushes/tools.js';
|
|
6
8
|
import type { AgentToolProvider } from '../tools/registry.js';
|
|
7
9
|
import type { PaintEditorController } from './controller.js';
|
|
8
10
|
import { type PaperSettings } from './paper.js';
|
|
9
11
|
export type PaintBrushLibraryToolProviderOptions = Omit<BrushLibraryToolProviderOptions, 'renderPreview'>;
|
|
12
|
+
/** Where a preview renderer finds a brush's image sources (and sticker art). */
|
|
13
|
+
export interface PaintBrushPreviewOptions {
|
|
14
|
+
/** Image sources are read from this library before each preview that needs them. */
|
|
15
|
+
library?: Pick<BrushLibrary, 'getSource'>;
|
|
16
|
+
/** Art for sticker stamp tips (and anything else not in the library), read on every call. */
|
|
17
|
+
stampArt?: () => StickerArtLookup | undefined;
|
|
18
|
+
}
|
|
10
19
|
/**
|
|
11
20
|
* A brush preview renderer (`BrushPreviewRenderer`, as `preview_brush` and `BrushLibraryEditor`
|
|
12
21
|
* take) that paints the test stroke with the paint engine on `paper` (read on every call; default
|
|
13
|
-
* the default paper). Any brush the paint editor renders, so also the image editor's.
|
|
22
|
+
* the default paper). Any brush the paint editor renders, so also the image editor's. With
|
|
23
|
+
* `options.library`, image tips and image grain are drawn from its sources.
|
|
14
24
|
*/
|
|
15
|
-
export declare function paintBrushPreviewRenderer(paper?: () => PaperSettings): BrushPreviewRenderer;
|
|
25
|
+
export declare function paintBrushPreviewRenderer(paper?: () => PaperSettings, options?: PaintBrushPreviewOptions): BrushPreviewRenderer;
|
|
16
26
|
/**
|
|
17
27
|
* The brush library tools for a paint editor (`@pixerate/editor/brushes`' provider on the
|
|
18
28
|
* editor's `brushLibrary`, `PAINT_PROFILE`), with `preview_brush` painting the test stroke on the
|
|
@@ -156,7 +156,31 @@ export interface BrushDynamics {
|
|
|
156
156
|
opacityJitter: number;
|
|
157
157
|
/** Random offset across the stroke in diameters, 0..4 (default 0). */
|
|
158
158
|
scatter: number;
|
|
159
|
+
/** Dabs laid at each spacing step, 1..16, each with its own jitter (missing: 1). */
|
|
160
|
+
count?: number;
|
|
161
|
+
/** Mirror each dab at random across these axes (missing: `none`). */
|
|
162
|
+
flip?: DabFlip;
|
|
159
163
|
}
|
|
164
|
+
/** Random mirroring of dabs. */
|
|
165
|
+
export type DabFlip = 'none' | 'x' | 'y' | 'xy';
|
|
166
|
+
export declare const DAB_FLIPS: readonly DabFlip[];
|
|
167
|
+
export type TipGrainMode = 'moving' | 'texturised';
|
|
168
|
+
export declare const TIP_GRAIN_MODES: readonly TipGrainMode[];
|
|
169
|
+
/** Texture inside the tip (dab engines): each dab's coverage is multiplied by it. */
|
|
170
|
+
export interface TipGrainSettings {
|
|
171
|
+
/** A grain pattern (`rough`, `canvas`…) or an image source `source:<id>`. */
|
|
172
|
+
source: string;
|
|
173
|
+
/** `texturised` (default): fixed to the canvas; `moving`: rolls along with the tip. */
|
|
174
|
+
mode: TipGrainMode;
|
|
175
|
+
/** 0.05..20: 1 the source's own size (default 1). */
|
|
176
|
+
scale: number;
|
|
177
|
+
/** 0..1: how much it takes out of the dab (default 0.6). */
|
|
178
|
+
depth: number;
|
|
179
|
+
/** 0..3 around the middle (default 1). */
|
|
180
|
+
contrast: number;
|
|
181
|
+
invert: boolean;
|
|
182
|
+
}
|
|
183
|
+
export declare const DEFAULT_TIP_GRAIN: Readonly<Omit<TipGrainSettings, 'source'>>;
|
|
160
184
|
export declare const DEFAULT_DYNAMICS: Readonly<BrushDynamics>;
|
|
161
185
|
export interface PaintBrush {
|
|
162
186
|
/** Library id (lowercase letters, digits and dashes). */
|
|
@@ -202,6 +226,8 @@ export interface PaintBrush {
|
|
|
202
226
|
stamp: string | null;
|
|
203
227
|
/** Dab engine: spray marks. Each dab lays a seeded scatter of droplets across the tip; `null` (default): one mark per dab. */
|
|
204
228
|
spray: SpraySettings | null;
|
|
229
|
+
/** Dab engines: texture inside the tip (missing: none). Recorded with the stroke, source ref included, so replays match. */
|
|
230
|
+
tipGrain?: TipGrainSettings;
|
|
205
231
|
/**
|
|
206
232
|
* The brush's own gradient paint (`@pixerate/editor/paint` `PaintGradientSource`), used instead
|
|
207
233
|
* of the editor's paint; `null` (default): the editor's paint. Stops may be `paint` / `secondary`
|
|
@@ -228,8 +254,10 @@ export interface SpraySettings {
|
|
|
228
254
|
size: number;
|
|
229
255
|
}
|
|
230
256
|
export declare const DEFAULT_SPRAY: Readonly<SpraySettings>;
|
|
231
|
-
export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'spray'>> & {
|
|
257
|
+
export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'spray' | 'tipGrain'>> & {
|
|
232
258
|
spray?: Partial<SpraySettings> | null;
|
|
259
|
+
/** Tip grain (`null` removes it). */
|
|
260
|
+
tipGrain?: Partial<TipGrainSettings> | null;
|
|
233
261
|
light?: Partial<LightSettings>;
|
|
234
262
|
/** A gradient (or `null` for the editor's paint); a plain colour source clears it. */
|
|
235
263
|
paint?: PaintSource | null;
|
|
@@ -156,7 +156,31 @@ export interface BrushDynamics {
|
|
|
156
156
|
opacityJitter: number;
|
|
157
157
|
/** Random offset across the stroke in diameters, 0..4 (default 0). */
|
|
158
158
|
scatter: number;
|
|
159
|
+
/** Dabs laid at each spacing step, 1..16, each with its own jitter (missing: 1). */
|
|
160
|
+
count?: number;
|
|
161
|
+
/** Mirror each dab at random across these axes (missing: `none`). */
|
|
162
|
+
flip?: DabFlip;
|
|
159
163
|
}
|
|
164
|
+
/** Random mirroring of dabs. */
|
|
165
|
+
export type DabFlip = 'none' | 'x' | 'y' | 'xy';
|
|
166
|
+
export declare const DAB_FLIPS: readonly DabFlip[];
|
|
167
|
+
export type TipGrainMode = 'moving' | 'texturised';
|
|
168
|
+
export declare const TIP_GRAIN_MODES: readonly TipGrainMode[];
|
|
169
|
+
/** Texture inside the tip (dab engines): each dab's coverage is multiplied by it. */
|
|
170
|
+
export interface TipGrainSettings {
|
|
171
|
+
/** A grain pattern (`rough`, `canvas`…) or an image source `source:<id>`. */
|
|
172
|
+
source: string;
|
|
173
|
+
/** `texturised` (default): fixed to the canvas; `moving`: rolls along with the tip. */
|
|
174
|
+
mode: TipGrainMode;
|
|
175
|
+
/** 0.05..20: 1 the source's own size (default 1). */
|
|
176
|
+
scale: number;
|
|
177
|
+
/** 0..1: how much it takes out of the dab (default 0.6). */
|
|
178
|
+
depth: number;
|
|
179
|
+
/** 0..3 around the middle (default 1). */
|
|
180
|
+
contrast: number;
|
|
181
|
+
invert: boolean;
|
|
182
|
+
}
|
|
183
|
+
export declare const DEFAULT_TIP_GRAIN: Readonly<Omit<TipGrainSettings, 'source'>>;
|
|
160
184
|
export declare const DEFAULT_DYNAMICS: Readonly<BrushDynamics>;
|
|
161
185
|
export interface PaintBrush {
|
|
162
186
|
/** Library id (lowercase letters, digits and dashes). */
|
|
@@ -202,6 +226,8 @@ export interface PaintBrush {
|
|
|
202
226
|
stamp: string | null;
|
|
203
227
|
/** Dab engine: spray marks. Each dab lays a seeded scatter of droplets across the tip; `null` (default): one mark per dab. */
|
|
204
228
|
spray: SpraySettings | null;
|
|
229
|
+
/** Dab engines: texture inside the tip (missing: none). Recorded with the stroke, source ref included, so replays match. */
|
|
230
|
+
tipGrain?: TipGrainSettings;
|
|
205
231
|
/**
|
|
206
232
|
* The brush's own gradient paint (`@pixerate/editor/paint` `PaintGradientSource`), used instead
|
|
207
233
|
* of the editor's paint; `null` (default): the editor's paint. Stops may be `paint` / `secondary`
|
|
@@ -228,8 +254,10 @@ export interface SpraySettings {
|
|
|
228
254
|
size: number;
|
|
229
255
|
}
|
|
230
256
|
export declare const DEFAULT_SPRAY: Readonly<SpraySettings>;
|
|
231
|
-
export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'spray'>> & {
|
|
257
|
+
export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'spray' | 'tipGrain'>> & {
|
|
232
258
|
spray?: Partial<SpraySettings> | null;
|
|
259
|
+
/** Tip grain (`null` removes it). */
|
|
260
|
+
tipGrain?: Partial<TipGrainSettings> | null;
|
|
233
261
|
light?: Partial<LightSettings>;
|
|
234
262
|
/** A gradient (or `null` for the editor's paint); a plain colour source clears it. */
|
|
235
263
|
paint?: PaintSource | null;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brush sources the paint engine can draw with: the brush library's and the open painting's, by
|
|
3
|
+
* id. Strokes read them synchronously, as they read sticker art (`StickerArtLookup`): a stamp tip
|
|
4
|
+
* `source:<id>` and an image tip grain both take the source's mask as alpha. Each mask is decoded
|
|
5
|
+
* the first time it is drawn.
|
|
6
|
+
*/
|
|
7
|
+
import { type BrushSource } from '../brushes/sources.cjs';
|
|
8
|
+
import type { StickerArtLookup } from './sticker-art.cjs';
|
|
9
|
+
export declare class BrushSourceArtCache {
|
|
10
|
+
private readonly sources;
|
|
11
|
+
private readonly art;
|
|
12
|
+
/** Adds or replaces sources (a replaced image is decoded again). */
|
|
13
|
+
set(sources: Iterable<BrushSource>): void;
|
|
14
|
+
/** The source of an id, if known. */
|
|
15
|
+
source(id: string): BrushSource | undefined;
|
|
16
|
+
/** Every known source. */
|
|
17
|
+
all(): BrushSource[];
|
|
18
|
+
/** The art of a `source:<id>` ref (alpha = the mask), or `undefined` when the source is unknown or its image can't be read. */
|
|
19
|
+
get: StickerArtLookup;
|
|
20
|
+
/** A lookup that reads sources from here and every other ref from `stickers`. */
|
|
21
|
+
with(stickers: StickerArtLookup): StickerArtLookup;
|
|
22
|
+
}
|
|
23
|
+
/** The ids of the sources an engine brush draws with: its stamp tip, its tip grain and its particle stamps. */
|
|
24
|
+
export declare function engineBrushSourceIds(brush: {
|
|
25
|
+
stamp: string | null;
|
|
26
|
+
tipGrain?: {
|
|
27
|
+
source: string;
|
|
28
|
+
};
|
|
29
|
+
particle?: {
|
|
30
|
+
dotTextures: readonly string[];
|
|
31
|
+
};
|
|
32
|
+
}): string[];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brush sources the paint engine can draw with: the brush library's and the open painting's, by
|
|
3
|
+
* id. Strokes read them synchronously, as they read sticker art (`StickerArtLookup`): a stamp tip
|
|
4
|
+
* `source:<id>` and an image tip grain both take the source's mask as alpha. Each mask is decoded
|
|
5
|
+
* the first time it is drawn.
|
|
6
|
+
*/
|
|
7
|
+
import { type BrushSource } from '../brushes/sources.js';
|
|
8
|
+
import type { StickerArtLookup } from './sticker-art.js';
|
|
9
|
+
export declare class BrushSourceArtCache {
|
|
10
|
+
private readonly sources;
|
|
11
|
+
private readonly art;
|
|
12
|
+
/** Adds or replaces sources (a replaced image is decoded again). */
|
|
13
|
+
set(sources: Iterable<BrushSource>): void;
|
|
14
|
+
/** The source of an id, if known. */
|
|
15
|
+
source(id: string): BrushSource | undefined;
|
|
16
|
+
/** Every known source. */
|
|
17
|
+
all(): BrushSource[];
|
|
18
|
+
/** The art of a `source:<id>` ref (alpha = the mask), or `undefined` when the source is unknown or its image can't be read. */
|
|
19
|
+
get: StickerArtLookup;
|
|
20
|
+
/** A lookup that reads sources from here and every other ref from `stickers`. */
|
|
21
|
+
with(stickers: StickerArtLookup): StickerArtLookup;
|
|
22
|
+
}
|
|
23
|
+
/** The ids of the sources an engine brush draws with: its stamp tip, its tip grain and its particle stamps. */
|
|
24
|
+
export declare function engineBrushSourceIds(brush: {
|
|
25
|
+
stamp: string | null;
|
|
26
|
+
tipGrain?: {
|
|
27
|
+
source: string;
|
|
28
|
+
};
|
|
29
|
+
particle?: {
|
|
30
|
+
dotTextures: readonly string[];
|
|
31
|
+
};
|
|
32
|
+
}): string[];
|
|
@@ -39,7 +39,8 @@ import { type PaintGuides, type PerspectiveGuide, type ReferenceImage, type Symm
|
|
|
39
39
|
import { MixingPad, type MixingPadTool, type PadMixOptions } from './mixing-pad.cjs';
|
|
40
40
|
import { type Stencil, type StencilInput } from './stencils.cjs';
|
|
41
41
|
import { type Sticker } from './stickers.cjs';
|
|
42
|
-
import { type StickerRasterizer } from './sticker-art.cjs';
|
|
42
|
+
import { type StickerArtLookup, type StickerRasterizer } from './sticker-art.cjs';
|
|
43
|
+
import { BrushSourceArtCache } from './brush-source-art.cjs';
|
|
43
44
|
import { StickersSlot } from '../stickers/helpers.cjs';
|
|
44
45
|
import type { StickerProvider, StickerRef } from '../stickers/types.cjs';
|
|
45
46
|
import { type LightSpill } from './light.cjs';
|
|
@@ -445,6 +446,10 @@ export declare class PaintEditorController {
|
|
|
445
446
|
/** The sticker library slot (see `setStickersProvider`). */
|
|
446
447
|
readonly stickers: StickersSlot;
|
|
447
448
|
private readonly stickerArt;
|
|
449
|
+
/** Image sources strokes draw with: the brush library's and the open painting's (saved with it). */
|
|
450
|
+
readonly brushSources: BrushSourceArtCache;
|
|
451
|
+
/** Art for stamp tips and tip grain: image sources from `brushSources`, stickers from the sticker library. */
|
|
452
|
+
readonly stampArt: StickerArtLookup;
|
|
448
453
|
private readonly rasterizeSticker;
|
|
449
454
|
private readonly effectsRenderer;
|
|
450
455
|
private paperEffectNodeCache;
|