From ba67bbb2db6327dc0f64eab24bafe5f023ce42ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juha=20Vehvil=C3=A4inen?= Date: Mon, 17 Feb 2003 22:28:16 +0000 Subject: 0.32 svn path=/trunk/Framestein/; revision=418 --- CHANGELOG.txt | 4 +-- Framestein.exe | Bin 972288 -> 971776 bytes Patches/18.example-rowca.pd | 58 +++++++++++++++++++++++++++++++++++++++++++ Patches/fs.grid.pd | 21 +++++++++++++++- Plugins/2colors.dll | Bin 36864 -> 36864 bytes Plugins/argument-passing.dll | Bin 40960 -> 40960 bytes Plugins/bend.c | 2 ++ Plugins/bend.dll | Bin 49152 -> 49152 bytes Plugins/black.dll | Bin 36864 -> 36864 bytes Plugins/cga.c | 2 ++ Plugins/cga.dll | Bin 36864 -> 36864 bytes Plugins/colortv.c | 2 ++ Plugins/colortv.dll | Bin 28672 -> 36864 bytes Plugins/compare.c | 2 ++ Plugins/compare.dll | Bin 36864 -> 36864 bytes Plugins/constrain.c | 2 ++ Plugins/constrain.dll | Bin 36864 -> 36864 bytes Plugins/convolution.c | 2 ++ Plugins/convolution.dll | Bin 45056 -> 45056 bytes Plugins/copy_vert.c | 2 ++ Plugins/copy_vert.dll | Bin 28672 -> 36864 bytes Plugins/cutout.c | 2 ++ Plugins/cutout.dll | Bin 36864 -> 36864 bytes Plugins/darken.c | 2 ++ Plugins/darken.dll | Bin 36864 -> 36864 bytes Plugins/deinterlace.c | 4 ++- Plugins/deinterlace.dll | Bin 36864 -> 36864 bytes Plugins/difference.c | 2 ++ Plugins/difference.dll | Bin 36864 -> 36864 bytes Plugins/eclipse.c | 2 ++ Plugins/eclipse.dll | Bin 49152 -> 49152 bytes Plugins/eclipse02.c | 2 ++ Plugins/eclipse02.dll | Bin 45056 -> 49152 bytes Plugins/eclipse03.c | 2 ++ Plugins/eclipse03.dll | Bin 49152 -> 49152 bytes Plugins/fader.cpp | 26 +++++++++++++++++++ Plugins/fader.dll | Bin 0 -> 45056 bytes Plugins/fromage.c | 2 ++ Plugins/fromage.dll | Bin 36864 -> 36864 bytes Plugins/fs2vf.c | 2 ++ Plugins/fs2vf.dll | Bin 36864 -> 36864 bytes Plugins/gol.c | 2 +- Plugins/gol.dll | Bin 36864 -> 36864 bytes Plugins/green.dll | Bin 36864 -> 36864 bytes Plugins/hist.dll | Bin 45056 -> 45056 bytes Plugins/interlace.c | 4 ++- Plugins/interlace.dll | Bin 36864 -> 36864 bytes Plugins/keyscreen.c | 2 ++ Plugins/keyscreen.dll | Bin 36864 -> 36864 bytes Plugins/lighten.c | 2 ++ Plugins/lighten.dll | Bin 36864 -> 36864 bytes Plugins/lightspeed.c | 2 ++ Plugins/lightspeed.dll | Bin 28672 -> 36864 bytes Plugins/makefile | 19 +++++++++++--- Plugins/makesliders.c | 2 ++ Plugins/makesliders.dll | Bin 36864 -> 49152 bytes Plugins/merge_additive.cpp | 30 ++++++++++++++++++++++ Plugins/merge_additive.dll | Bin 0 -> 36864 bytes Plugins/merge_mod.cpp | 33 ++++++++++++++++++++++++ Plugins/merge_mod.dll | Bin 0 -> 53248 bytes Plugins/modgain.c | 2 ++ Plugins/modgain.dll | Bin 36864 -> 36864 bytes Plugins/ms.dll | Bin 36864 -> 49152 bytes Plugins/multiply.c | 2 ++ Plugins/multiply.dll | Bin 36864 -> 36864 bytes Plugins/noize.c | 2 ++ Plugins/noize.dll | Bin 36864 -> 36864 bytes Plugins/overlay.c | 2 ++ Plugins/overlay.dll | Bin 36864 -> 36864 bytes Plugins/ping.c | 13 ++++++++++ Plugins/ping.dll | Bin 0 -> 36864 bytes Plugins/plot.cpp | 4 ++- Plugins/plot.dll | Bin 28672 -> 36864 bytes Plugins/rene.c | 2 ++ Plugins/rene.dll | Bin 49152 -> 49152 bytes Plugins/rgb.dll | Bin 36864 -> 36864 bytes Plugins/rgbavg.c | 2 ++ Plugins/rgbavg.dll | Bin 49152 -> 49152 bytes Plugins/rgbavg02.c | 2 ++ Plugins/rgbavg02.dll | Bin 53248 -> 53248 bytes Plugins/rgbcopy.cpp | 2 ++ Plugins/rgbcopy.dll | Bin 28672 -> 36864 bytes Plugins/rgbseek.c | 2 ++ Plugins/rgbseek.dll | Bin 36864 -> 36864 bytes Plugins/rowca.cpp | 4 ++- Plugins/rowca.dll | Bin 110592 -> 110592 bytes Plugins/screen.c | 2 ++ Plugins/screen.dll | Bin 36864 -> 36864 bytes Plugins/setbits.c | 2 ++ Plugins/setbits.dll | Bin 28672 -> 36864 bytes Plugins/shadowcaster.c | 2 ++ Plugins/shadowcaster.dll | Bin 65536 -> 65536 bytes Plugins/shuffle.dll | Bin 36864 -> 36864 bytes Plugins/softlight.c | 2 ++ Plugins/softlight.dll | Bin 45056 -> 49152 bytes Plugins/sonogram.dll | Bin 49152 -> 45056 bytes Plugins/subtract.dll | Bin 40960 -> 40960 bytes Plugins/swap.cpp | 3 +-- Plugins/swap.dll | Bin 36864 -> 36864 bytes Plugins/tile.dll | Bin 36864 -> 36864 bytes Plugins/traffic.c | 2 ++ Plugins/traffic.dll | Bin 49152 -> 49152 bytes Plugins/vf2fs.c | 2 ++ Plugins/vf2fs.dll | Bin 36864 -> 36864 bytes Plugins/xbend.c | 2 ++ Plugins/xbend.dll | Bin 36864 -> 45056 bytes Plugins/xshred.c | 2 ++ Plugins/xshred.dll | Bin 28672 -> 36864 bytes toolbar.txt | 23 +++++++++++++++++ 109 files changed, 307 insertions(+), 13 deletions(-) create mode 100644 Patches/18.example-rowca.pd create mode 100644 Plugins/fader.cpp create mode 100644 Plugins/fader.dll create mode 100644 Plugins/merge_additive.cpp create mode 100644 Plugins/merge_additive.dll create mode 100644 Plugins/merge_mod.cpp create mode 100644 Plugins/merge_mod.dll create mode 100644 Plugins/ping.c create mode 100644 Plugins/ping.dll create mode 100644 toolbar.txt diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 0ad9af7..6647c90 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,6 @@ 0.32 -- added toolbar, paste objects to patches -- new plugin: lightspeed +- added toolbar (just a list of framestein objects & filters for now) +- new plugins: lightspeed, merge_additive, merge_mod, ping, fader - fs.frame: |title this is the main window( and |undock( commands - fs.copy: transcolor to set the transparent color - better gol algo (Plugins\gol.c) diff --git a/Framestein.exe b/Framestein.exe index fd0f60c..190f01d 100755 Binary files a/Framestein.exe and b/Framestein.exe differ diff --git a/Patches/18.example-rowca.pd b/Patches/18.example-rowca.pd new file mode 100644 index 0000000..29ff1f9 --- /dev/null +++ b/Patches/18.example-rowca.pd @@ -0,0 +1,58 @@ +#N canvas 328 14 664 542 12; +#X obj 199 343 fs.frame; +#X obj 293 342 init; +#X msg 310 391 176x144; +#X msg 319 415 1024x768; +#X msg 327 439 3600x3600 \, display 720x576; +#X msg 227 256 rowca 001-010-011-100; +#X msg 115 282 rowca draw; +#X msg 15 282 rowca clear; +#X msg 293 368 640x480; +#X msg 421 255 rowca 111-010-001-100; +#X obj 9 35 fs.main; +#X msg 9 9 6001; +#X msg 60 9 reset; +#X text 129 8 Row cellular automata \, where each iteration adds a +new row.; +#X text 129 31 Each cell has three neighbourns \, top left \, top and +top right \, as shown below:; +#X text 129 70 123; +#X text 138 86 O; +#X text 130 106 Patterns that lead to a white cell are given as parameter +\, forming the rule of the automata.; +#X obj 150 218 t b b b; +#X msg 94 366 ping done; +#X obj 94 395 r done; +#X obj 94 422 delay 500; +#X obj 150 165 bng 45 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 94 450 spigot; +#X obj 151 452 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X text 23 510 (Using ping to determine when done processing); +#X obj 94 478 s again; +#X obj 73 176 r again; +#X text 170 450 try this; +#X text 205 177 click me; +#X connect 1 0 8 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 0 0; +#X connect 11 0 10 0; +#X connect 11 0 12 0; +#X connect 12 0 10 1; +#X connect 18 0 19 0; +#X connect 18 1 6 0; +#X connect 18 2 5 0; +#X connect 19 0 0 0; +#X connect 20 0 21 0; +#X connect 21 0 23 0; +#X connect 22 0 18 0; +#X connect 23 0 26 0; +#X connect 24 0 23 1; +#X connect 27 0 22 0; diff --git a/Patches/fs.grid.pd b/Patches/fs.grid.pd index 2819a1e..bea528a 100644 --- a/Patches/fs.grid.pd +++ b/Patches/fs.grid.pd @@ -1,4 +1,4 @@ -#N canvas 290 97 559 504 12; +#N canvas 290 97 563 508 12; #X obj 167 176 init; #X obj 111 267 unpack f f f f; #X obj 190 303 / 176; @@ -16,6 +16,15 @@ #X text 18 72 inlets: to fs.frame; #X text 18 88 outlets: x \, y \, fs.frame 3rd outlet; #X text 18 14 fs.grid -- grid control module; +#X obj 399 277 f \$1; +#X obj 399 302 == 0; +#X obj 399 325 sel 1; +#X obj 457 302 == 0; +#X obj 457 325 sel 1; +#X obj 457 277 f \$2; +#X obj 413 239 loadbang; +#X msg 399 349 1; +#X msg 457 349 1; #X connect 0 0 6 0; #X connect 1 2 2 0; #X connect 1 3 3 0; @@ -28,3 +37,13 @@ #X connect 12 1 1 0; #X connect 12 2 9 0; #X connect 13 0 12 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 24 0; +#X connect 20 0 21 0; +#X connect 21 0 25 0; +#X connect 22 0 20 0; +#X connect 23 0 17 0; +#X connect 23 0 22 0; +#X connect 24 0 10 1; +#X connect 25 0 11 1; diff --git a/Plugins/2colors.dll b/Plugins/2colors.dll index fbb0e4d..c7c67aa 100644 Binary files a/Plugins/2colors.dll and b/Plugins/2colors.dll differ diff --git a/Plugins/argument-passing.dll b/Plugins/argument-passing.dll index d77a64b..dc80dd6 100644 Binary files a/Plugins/argument-passing.dll and b/Plugins/argument-passing.dll differ diff --git a/Plugins/bend.c b/Plugins/bend.c index 753159d..70229cc 100644 --- a/Plugins/bend.c +++ b/Plugins/bend.c @@ -2,6 +2,8 @@ #include #include "plugin.h" +INFO("bend image horizontally or vertically") + void perform_effect(_frame f, _args a) { printf("NOTE: bend as effect does nothing. Use bend as copy operation.\n"); diff --git a/Plugins/bend.dll b/Plugins/bend.dll index a4a62fb..fe679fc 100644 Binary files a/Plugins/bend.dll and b/Plugins/bend.dll differ diff --git a/Plugins/black.dll b/Plugins/black.dll index 474d5ef..83567e2 100644 Binary files a/Plugins/black.dll and b/Plugins/black.dll differ diff --git a/Plugins/cga.c b/Plugins/cga.c index bc329d7..945724a 100644 --- a/Plugins/cga.c +++ b/Plugins/cga.c @@ -14,6 +14,8 @@ #include #include "plugin.h" +INFO("242.cga -- does bit-level quantization on an input image") + #pragma warning( disable : 4761 ) // the (lossy) conversion _IS_ our effect ! void perform_effect(struct frame f, struct args arg) diff --git a/Plugins/cga.dll b/Plugins/cga.dll index aa25a11..be9ad3c 100644 Binary files a/Plugins/cga.dll and b/Plugins/cga.dll differ diff --git a/Plugins/colortv.c b/Plugins/colortv.c index 1885d1f..f6527fb 100644 --- a/Plugins/colortv.c +++ b/Plugins/colortv.c @@ -1,5 +1,7 @@ #include "plugin.h" +INFO("color distortion") + void perform_effect(struct frame f, struct args a) { int x, y; diff --git a/Plugins/colortv.dll b/Plugins/colortv.dll index cf5dacf..86c1260 100644 Binary files a/Plugins/colortv.dll and b/Plugins/colortv.dll differ diff --git a/Plugins/compare.c b/Plugins/compare.c index a507be9..55e10b1 100644 --- a/Plugins/compare.c +++ b/Plugins/compare.c @@ -30,6 +30,8 @@ #include #include "plugin.h" +INFO("compare two images for differences") + void perform_effect(struct frame f, struct args a) { printf("Using compare as effect does nothing!\n"); diff --git a/Plugins/compare.dll b/Plugins/compare.dll index 5dabdde..f431b70 100644 Binary files a/Plugins/compare.dll and b/Plugins/compare.dll differ diff --git a/Plugins/constrain.c b/Plugins/constrain.c index 3463cea..dfb0868 100644 --- a/Plugins/constrain.c +++ b/Plugins/constrain.c @@ -13,6 +13,8 @@ #include #include "plugin.h" +INFO("242.constrain -- does color range constraining on an input image") + void perform_effect(struct frame f, struct args a) { int x,y; diff --git a/Plugins/constrain.dll b/Plugins/constrain.dll index 0eaf042..03c84dc 100644 Binary files a/Plugins/constrain.dll and b/Plugins/constrain.dll differ diff --git a/Plugins/convolution.c b/Plugins/convolution.c index d1ec139..2504866 100644 --- a/Plugins/convolution.c +++ b/Plugins/convolution.c @@ -31,6 +31,8 @@ #include #include "plugin.h" +INFO("5x5 convolution kernel matrix calculation") + void perform_effect(struct frame f, struct args a) { short x, y; diff --git a/Plugins/convolution.dll b/Plugins/convolution.dll index 68a6ed2..5364ad3 100644 Binary files a/Plugins/convolution.dll and b/Plugins/convolution.dll differ diff --git a/Plugins/copy_vert.c b/Plugins/copy_vert.c index cb7b093..963f2fd 100644 --- a/Plugins/copy_vert.c +++ b/Plugins/copy_vert.c @@ -2,6 +2,8 @@ #include #include "plugin.h" +INFO("copy one vertical line at a given position") + void perform_copy(_frame f1, _frame f2, _args a) { byte pixelsize = f1.pixelformat/8; diff --git a/Plugins/copy_vert.dll b/Plugins/copy_vert.dll index 95aab74..e6e740f 100644 Binary files a/Plugins/copy_vert.dll and b/Plugins/copy_vert.dll differ diff --git a/Plugins/cutout.c b/Plugins/cutout.c index 9ad1984..f9e88de 100644 --- a/Plugins/cutout.c +++ b/Plugins/cutout.c @@ -13,6 +13,8 @@ #include #include "plugin.h" +INFO("242.cutout -- does a rectangular mask really quickly") + void perform_effect(struct frame f, struct args a) { printf("Using cutout as effect does nothing!\n"); diff --git a/Plugins/cutout.dll b/Plugins/cutout.dll index 939cfe4..cade036 100644 Binary files a/Plugins/cutout.dll and b/Plugins/cutout.dll differ diff --git a/Plugins/darken.c b/Plugins/darken.c index a57b0b7..8f44e81 100644 --- a/Plugins/darken.c +++ b/Plugins/darken.c @@ -23,6 +23,8 @@ #include #include "plugin.h" +INFO("darken of two images") + void perform_effect(struct frame f, struct args a) { printf("Using darken as effect does nothing!\n"); diff --git a/Plugins/darken.dll b/Plugins/darken.dll index 174e654..5c3e787 100644 Binary files a/Plugins/darken.dll and b/Plugins/darken.dll differ diff --git a/Plugins/deinterlace.c b/Plugins/deinterlace.c index ca12568..bc8e9ef 100644 --- a/Plugins/deinterlace.c +++ b/Plugins/deinterlace.c @@ -1,5 +1,5 @@ // -// deinterlace - deinterlacing through pixel / line repitition +// deinterlace - deinterlacing through pixel / line repetition // // written by Olaf Matthes // @@ -24,6 +24,8 @@ #include #include "plugin.h" +INFO("deinterlacing through pixel / line repetition") + void perform_effect(struct frame f, struct args a) { short x, y, line = 0; diff --git a/Plugins/deinterlace.dll b/Plugins/deinterlace.dll index 7c5daf3..5e3240d 100644 Binary files a/Plugins/deinterlace.dll and b/Plugins/deinterlace.dll differ diff --git a/Plugins/difference.c b/Plugins/difference.c index f8c23d5..e49bb87 100644 --- a/Plugins/difference.c +++ b/Plugins/difference.c @@ -22,6 +22,8 @@ #include "plugin.h" +INFO("difference of two images") + void perform_effect(struct frame f, struct args a) { printf("Using difference as effect does nothing!\n"); diff --git a/Plugins/difference.dll b/Plugins/difference.dll index de38787..b5cf5fe 100644 Binary files a/Plugins/difference.dll and b/Plugins/difference.dll differ diff --git a/Plugins/eclipse.c b/Plugins/eclipse.c index 6c2021c..f43d71d 100644 --- a/Plugins/eclipse.c +++ b/Plugins/eclipse.c @@ -14,6 +14,8 @@ #include #include "plugin.h" +INFO("242.eclipse -- does meta-imaging on an input image") + // the process image routines work like this: // // two pointers (src and src2) access the pixels in the input image diff --git a/Plugins/eclipse.dll b/Plugins/eclipse.dll index e9a29df..7d0cadc 100644 Binary files a/Plugins/eclipse.dll and b/Plugins/eclipse.dll differ diff --git a/Plugins/eclipse02.c b/Plugins/eclipse02.c index d1d5301..615abf4 100644 --- a/Plugins/eclipse02.c +++ b/Plugins/eclipse02.c @@ -14,6 +14,8 @@ #include #include "plugin.h" +INFO("242.eclipse02 -- does meta-imaging on two input images") + // the process image routines work like this: // // two pointers (src and src2) access the pixels in the input image diff --git a/Plugins/eclipse02.dll b/Plugins/eclipse02.dll index e13a72f..55b6d87 100644 Binary files a/Plugins/eclipse02.dll and b/Plugins/eclipse02.dll differ diff --git a/Plugins/eclipse03.c b/Plugins/eclipse03.c index 8d6b31d..7eef511 100644 --- a/Plugins/eclipse03.c +++ b/Plugins/eclipse03.c @@ -14,6 +14,8 @@ #include #include "plugin.h" +INFO("242.eclipse0303 -- does meta-imaging on an input image using an inversion threshhold") + // the process image routines work like this: // // two pointers (src and src2) access the pixels in the input image diff --git a/Plugins/eclipse03.dll b/Plugins/eclipse03.dll index 60560e2..7cbd0e7 100644 Binary files a/Plugins/eclipse03.dll and b/Plugins/eclipse03.dll differ diff --git a/Plugins/fader.cpp b/Plugins/fader.cpp new file mode 100644 index 0000000..5f26206 --- /dev/null +++ b/Plugins/fader.cpp @@ -0,0 +1,26 @@ +// +// fader - fade image according to brightness of another image +// + +#include "plugin.h" +#include "pixels.h" + +INFO("fade image according to brightness of another image"); + +void perform_copy(_frame f1, _frame f2, _args a) +{ + pixels p1(f1), p2(f2); + byte r, g, b; + + while(!p1.eof() && !p2.eof()) + { + r = p1.red() * (float)(p2.red() / 255.0); + g = p1.green() * (float)(p2.green() / 255.0); + b = p1.blue() * (float)(p2.blue() / 255.0); + + p2.putrgb(r, g, b); + + p1.next(); + p2.next(); + } +} diff --git a/Plugins/fader.dll b/Plugins/fader.dll new file mode 100644 index 0000000..40e552c Binary files /dev/null and b/Plugins/fader.dll differ diff --git a/Plugins/fromage.c b/Plugins/fromage.c index 0c8b48a..7514daf 100644 --- a/Plugins/fromage.c +++ b/Plugins/fromage.c @@ -13,6 +13,8 @@ #include #include "plugin.h" +INFO("242.fromage -- does cheezy wipes between two input images") + void perform_effect(struct frame f, struct args a) { printf("Using fromage as effect does nothing!\n"); diff --git a/Plugins/fromage.dll b/Plugins/fromage.dll index 913caee..2d7d4a6 100644 Binary files a/Plugins/fromage.dll and b/Plugins/fromage.dll differ diff --git a/Plugins/fs2vf.c b/Plugins/fs2vf.c index efd479a..5a45c79 100644 --- a/Plugins/fs2vf.c +++ b/Plugins/fs2vf.c @@ -11,6 +11,8 @@ #include "sharemem.h" #include "vframe.h" +INFO("copy image data to PD's memory space") + void perform_effect(_frame f, _args a) { HANDLE hlvframe=NULL, hl=NULL; diff --git a/Plugins/fs2vf.dll b/Plugins/fs2vf.dll index 974de86..c784c78 100644 Binary files a/Plugins/fs2vf.dll and b/Plugins/fs2vf.dll differ diff --git a/Plugins/gol.c b/Plugins/gol.c index 222a894..5a5330b 100644 --- a/Plugins/gol.c +++ b/Plugins/gol.c @@ -11,7 +11,7 @@ #define BORN 1 #define DYING 2 -INFO("Conway's Game Of Life") +INFO("Conway's Game Of Life (only on 16bit displays)") int aroundme(_frame f, int x, int y) { diff --git a/Plugins/gol.dll b/Plugins/gol.dll index 26fe8e9..85969e5 100644 Binary files a/Plugins/gol.dll and b/Plugins/gol.dll differ diff --git a/Plugins/green.dll b/Plugins/green.dll index d1f42d6..1d43652 100644 Binary files a/Plugins/green.dll and b/Plugins/green.dll differ diff --git a/Plugins/hist.dll b/Plugins/hist.dll index 30937b8..849a377 100644 Binary files a/Plugins/hist.dll and b/Plugins/hist.dll differ diff --git a/Plugins/interlace.c b/Plugins/interlace.c index 1ea045f..a755c93 100644 --- a/Plugins/interlace.c +++ b/Plugins/interlace.c @@ -1,5 +1,5 @@ // -// interlace - deinterlacing through pixel / line repitition +// interlace - deinterlacing through pixel / line repetition // // written by Olaf Matthes // @@ -24,6 +24,8 @@ #include #include "plugin.h" +INFO("deinterlacing through pixel / line repetition") + void perform_effect(struct frame f, struct args a) { printf("Using interlace as effect does nothing!\n"); diff --git a/Plugins/interlace.dll b/Plugins/interlace.dll index 4c07025..e068573 100644 Binary files a/Plugins/interlace.dll and b/Plugins/interlace.dll differ diff --git a/Plugins/keyscreen.c b/Plugins/keyscreen.c index 45aea88..b301136 100644 --- a/Plugins/keyscreen.c +++ b/Plugins/keyscreen.c @@ -15,6 +15,8 @@ #include #include "plugin.h" +INFO("242.keyscreen -- does 3-source chroma keying") + void perform_effect(struct frame f, struct args a) { printf("Using keyscreen as effect does nothing!\n"); diff --git a/Plugins/keyscreen.dll b/Plugins/keyscreen.dll index 6631ea3..acea31c 100644 Binary files a/Plugins/keyscreen.dll and b/Plugins/keyscreen.dll differ diff --git a/Plugins/lighten.c b/Plugins/lighten.c index ef1a065..3b1a4da 100644 --- a/Plugins/lighten.c +++ b/Plugins/lighten.c @@ -23,6 +23,8 @@ #include #include "plugin.h" +INFO("lighten of two images") + void perform_effect(struct frame f, struct args a) { printf("Using lighten as effect does nothing!\n"); diff --git a/Plugins/lighten.dll b/Plugins/lighten.dll index 8ef79aa..265a49a 100644 Binary files a/Plugins/lighten.dll and b/Plugins/lighten.dll differ diff --git a/Plugins/lightspeed.c b/Plugins/lightspeed.c index ec342dd..460e7fe 100644 --- a/Plugins/lightspeed.c +++ b/Plugins/lightspeed.c @@ -1,6 +1,8 @@ #include #include "plugin.h" +INFO("a great effect. $1 = y offset") + void perform_effect(_frame f, _args a) { int pos, y, pixelsize=f.pixelformat/8; diff --git a/Plugins/lightspeed.dll b/Plugins/lightspeed.dll index 1a76fa2..977a869 100644 Binary files a/Plugins/lightspeed.dll and b/Plugins/lightspeed.dll differ diff --git a/Plugins/makefile b/Plugins/makefile index f4e6b6c..b3f6a46 100644 --- a/Plugins/makefile +++ b/Plugins/makefile @@ -5,7 +5,8 @@ all: noize colortv subtract xbend bend gol shuffle green \ multiply overlay screen shadowcaster softlight \ rgbseek modgain traffic constrain eclipse eclipse02 eclipse03 \ cga keyscreen rene cutout fromage rgbavg rgbavg02 \ - rowca argument-passing lightspeed + rowca argument-passing lightspeed merge_additive merge_mod ping \ + fader dir *.dll @@ -72,10 +73,10 @@ xshred: cl xshred.c $(FLAGS) /link $(COPY) vf2fs: - cl vf2fs.c $(FLAGS) /I..\Externals /link $(EFFECT) + cl vf2fs.c $(FLAGS) /I..\Patches /link $(EFFECT) fs2vf: - cl fs2vf.c $(FLAGS) /I..\Externals /link $(EFFECT) + cl fs2vf.c $(FLAGS) /I..\Patches /link $(EFFECT) swap: cl swap.cpp $(FLAGS) /link $(COPY) @@ -192,3 +193,15 @@ argument-passing: lightspeed: cl lightspeed.c $(FLAGS) /link $(EFFECT) + +merge_additive: + cl merge_additive.cpp $(FLAGS) /GX /link $(COPY) + +merge_mod: + cl merge_mod.cpp $(FLAGS) /GX /link $(COPY) + +ping: + cl ping.c $(FLAGS) /link $(EFFECT) + +fader: + cl fader.cpp $(FLAGS) /GX /link $(COPY) diff --git a/Plugins/makesliders.c b/Plugins/makesliders.c index 5c0b209..3566f15 100644 --- a/Plugins/makesliders.c +++ b/Plugins/makesliders.c @@ -8,6 +8,8 @@ #include #include "plugin.h" +INFO("display slider values. usage: makesliders 14 56 76 140 [...]") + #define MAXVALS 128 void perform_effect(_frame f, _args a) diff --git a/Plugins/makesliders.dll b/Plugins/makesliders.dll index 5491ab8..7fbd58d 100644 Binary files a/Plugins/makesliders.dll and b/Plugins/makesliders.dll differ diff --git a/Plugins/merge_additive.cpp b/Plugins/merge_additive.cpp new file mode 100644 index 0000000..ee648ef --- /dev/null +++ b/Plugins/merge_additive.cpp @@ -0,0 +1,30 @@ +// +// merge_additive - add color components of two images, until white +// + +#include "plugin.h" +#include "pixels.h" + +INFO("add color components of two images until white"); + +void perform_copy(_frame f1, _frame f2, _args a) +{ + pixels p1(f1), p2(f2); + int r, g, b; + + while(!p1.eof() && !p2.eof()) + { + r = (p1.red() + p2.red()); + g = (p1.green() + p2.green()); + b = (p1.blue() + p2.blue()); + + r = r<256 ? r : 255; + g = g<256 ? g : 255; + b = b<256 ? b : 255; + + p2.putrgb(r, g, b); + + p1.next(); + p2.next(); + } +} diff --git a/Plugins/merge_additive.dll b/Plugins/merge_additive.dll new file mode 100644 index 0000000..5f4e3e9 Binary files /dev/null and b/Plugins/merge_additive.dll differ diff --git a/Plugins/merge_mod.cpp b/Plugins/merge_mod.cpp new file mode 100644 index 0000000..1aa9f16 --- /dev/null +++ b/Plugins/merge_mod.cpp @@ -0,0 +1,33 @@ +// +// merge_additive - add color components of two images, mod 255 +// + +#include "plugin.h" +#include "pixels.h" + +INFO("add color components of two images, modulus 255"); + +void perform_copy(_frame f1, _frame f2, _args a) +{ + arguments ar(a.s); + pixels p1(f1), p2(f2); + int r, g, b; + + float f = ar.count()>=1 ? atof(ar[0]) : 1; + + while(!p1.eof() && !p2.eof()) + { + r = (f * p1.red() + p2.red()); + g = (f * p1.green() + p2.green()); + b = (f * p1.blue() + p2.blue()); + + r = r % 255; + g = g % 255; + b = b % 255; + + p2.putrgb(r, g, b); + + p1.next(); + p2.next(); + } +} diff --git a/Plugins/merge_mod.dll b/Plugins/merge_mod.dll new file mode 100644 index 0000000..544835f Binary files /dev/null and b/Plugins/merge_mod.dll differ diff --git a/Plugins/modgain.c b/Plugins/modgain.c index 1c4ce56..de1b3a9 100644 --- a/Plugins/modgain.c +++ b/Plugins/modgain.c @@ -14,6 +14,8 @@ #include #include "plugin.h" +INFO("242.modgain -- does modulo channel shifting on an input image") + void perform_effect(struct frame f, struct args arg) { int x,y; diff --git a/Plugins/modgain.dll b/Plugins/modgain.dll index 14946a3..a3d9a75 100644 Binary files a/Plugins/modgain.dll and b/Plugins/modgain.dll differ diff --git a/Plugins/ms.dll b/Plugins/ms.dll index 5491ab8..7fbd58d 100644 Binary files a/Plugins/ms.dll and b/Plugins/ms.dll differ diff --git a/Plugins/multiply.c b/Plugins/multiply.c index 45aa9bb..61897bd 100644 --- a/Plugins/multiply.c +++ b/Plugins/multiply.c @@ -22,6 +22,8 @@ #include "plugin.h" +INFO("multiply of two images") + void perform_effect(struct frame f, struct args a) { printf("Using multiply as effect does nothing!\n"); diff --git a/Plugins/multiply.dll b/Plugins/multiply.dll index be177db..437ef5d 100644 Binary files a/Plugins/multiply.dll and b/Plugins/multiply.dll differ diff --git a/Plugins/noize.c b/Plugins/noize.c index d6d2b3a..148fc3c 100644 --- a/Plugins/noize.c +++ b/Plugins/noize.c @@ -1,6 +1,8 @@ #include #include "plugin.h" +INFO("turn some random bits") + void perform_effect(struct frame f, struct args a) { int i,o,x,y; diff --git a/Plugins/noize.dll b/Plugins/noize.dll index b761095..9d88d4b 100644 Binary files a/Plugins/noize.dll and b/Plugins/noize.dll differ diff --git a/Plugins/overlay.c b/Plugins/overlay.c index 99ab68e..5e23635 100644 --- a/Plugins/overlay.c +++ b/Plugins/overlay.c @@ -23,6 +23,8 @@ #include #include "plugin.h" +INFO("overlay of two images") + void perform_effect(struct frame f, struct args a) { printf("Using overlay as effect does nothing!\n"); diff --git a/Plugins/overlay.dll b/Plugins/overlay.dll index fc6771e..b613798 100644 Binary files a/Plugins/overlay.dll and b/Plugins/overlay.dll differ diff --git a/Plugins/ping.c b/Plugins/ping.c new file mode 100644 index 0000000..376a19d --- /dev/null +++ b/Plugins/ping.c @@ -0,0 +1,13 @@ +#include "plugin.h" + +INFO("ask fs.frame to bang the receive given as 1st argument") + +// can be used at the end of a processing chain to inform when the processing is done. +// very useful. + +void perform_effect(_frame f, _args a) +{ + if(!a.s) return; + + sprintf(a.ret, "%s=0", a.s); // bang receive given in a.s +} diff --git a/Plugins/ping.dll b/Plugins/ping.dll new file mode 100644 index 0000000..db5a945 Binary files /dev/null and b/Plugins/ping.dll differ diff --git a/Plugins/plot.cpp b/Plugins/plot.cpp index 67c264c..ae53c05 100644 --- a/Plugins/plot.cpp +++ b/Plugins/plot.cpp @@ -4,8 +4,10 @@ #include "plugin.h" #include "pixels.h" +INFO("plot pixel to vframe") + // plot exists to provide plotting to vframe - much faster than -// plot with fs.draw which goes thru network. +// plot with fs.draw which goes thru TCP/IP. void perform_effect(_frame f, _args a) { diff --git a/Plugins/plot.dll b/Plugins/plot.dll index 93cff6a..28e85dc 100644 Binary files a/Plugins/plot.dll and b/Plugins/plot.dll differ diff --git a/Plugins/rene.c b/Plugins/rene.c index d8e6082..2885f47 100644 --- a/Plugins/rene.c +++ b/Plugins/rene.c @@ -16,6 +16,8 @@ #include #include "plugin.h" +INFO("242.rene -- does 3-source chroma keying with transparency") + void perform_effect(struct frame f, struct args a) { printf("Using keyscreen as effect does nothing!\n"); diff --git a/Plugins/rene.dll b/Plugins/rene.dll index d5fb95b..f424b39 100644 Binary files a/Plugins/rene.dll and b/Plugins/rene.dll differ diff --git a/Plugins/rgb.dll b/Plugins/rgb.dll index 76e18b7..cd5b0dc 100644 Binary files a/Plugins/rgb.dll and b/Plugins/rgb.dll differ diff --git a/Plugins/rgbavg.c b/Plugins/rgbavg.c index c903ab1..f9459f6 100644 --- a/Plugins/rgbavg.c +++ b/Plugins/rgbavg.c @@ -14,6 +14,8 @@ #include #include "plugin.h" +INFO("242.rgbavg -- does funky pixel averaging on an input image") + #pragma warning( disable : 4761 ) // that's why it's funky !! void perform_effect(struct frame f, struct args a) diff --git a/Plugins/rgbavg.dll b/Plugins/rgbavg.dll index 8b5fe70..ab925ae 100644 Binary files a/Plugins/rgbavg.dll and b/Plugins/rgbavg.dll differ diff --git a/Plugins/rgbavg02.c b/Plugins/rgbavg02.c index 5fc773e..adb26cf 100644 --- a/Plugins/rgbavg02.c +++ b/Plugins/rgbavg02.c @@ -14,6 +14,8 @@ #include #include "plugin.h" +INFO("242.rgbavg02 -- does 2-source funky pixel averaging") + #pragma warning( disable : 4761 ) // that's why it's funky !! void perform_effect(struct frame f1, struct frame f2, struct args a) diff --git a/Plugins/rgbavg02.dll b/Plugins/rgbavg02.dll index 274d69f..6d19154 100644 Binary files a/Plugins/rgbavg02.dll and b/Plugins/rgbavg02.dll differ diff --git a/Plugins/rgbcopy.cpp b/Plugins/rgbcopy.cpp index b226e23..285f188 100644 --- a/Plugins/rgbcopy.cpp +++ b/Plugins/rgbcopy.cpp @@ -3,6 +3,8 @@ #include "plugin.h" #include "pixels.h" +INFO("mix color components of two images. usage: rgbcopy RG red/green from first, blue from second image") + void perform_copy(_frame f1, _frame f2, _args a) { pixels p1(f1), p2(f2); diff --git a/Plugins/rgbcopy.dll b/Plugins/rgbcopy.dll index 1a995d3..925bbee 100644 Binary files a/Plugins/rgbcopy.dll and b/Plugins/rgbcopy.dll differ diff --git a/Plugins/rgbseek.c b/Plugins/rgbseek.c index cf53aa5..822af9c 100644 --- a/Plugins/rgbseek.c +++ b/Plugins/rgbseek.c @@ -15,6 +15,8 @@ #include #include "plugin.h" +INFO("242.rgbseek -- does binary color recognition on an input image") + void perform_effect(struct frame f, struct args a) { int x,y; diff --git a/Plugins/rgbseek.dll b/Plugins/rgbseek.dll index 151b10c..a81717c 100644 Binary files a/Plugins/rgbseek.dll and b/Plugins/rgbseek.dll differ diff --git a/Plugins/rowca.cpp b/Plugins/rowca.cpp index de83933..f114f7f 100644 --- a/Plugins/rowca.cpp +++ b/Plugins/rowca.cpp @@ -1,5 +1,5 @@ /* - One dimensional cellular automata, where each iteration + Row cellular automata, where each iteration adds a new row. Each cell has three neighbourns, top left, top and top right, @@ -33,6 +33,8 @@ #include "plugin.h" #include "pixels.h" +INFO("Row cellular automata, where each iteration adds a new row") + using namespace std; vector sv; diff --git a/Plugins/rowca.dll b/Plugins/rowca.dll index 5302341..1be1434 100644 Binary files a/Plugins/rowca.dll and b/Plugins/rowca.dll differ diff --git a/Plugins/screen.c b/Plugins/screen.c index 76fd6bd..529b1c1 100644 --- a/Plugins/screen.c +++ b/Plugins/screen.c @@ -23,6 +23,8 @@ #include #include "plugin.h" +INFO("screen of two images") + void perform_effect(struct frame f, struct args a) { printf("Using screen as effect does nothing!\n"); diff --git a/Plugins/screen.dll b/Plugins/screen.dll index 5b6f3c6..5be8da9 100644 Binary files a/Plugins/screen.dll and b/Plugins/screen.dll differ diff --git a/Plugins/setbits.c b/Plugins/setbits.c index dddc5eb..e9e2931 100644 --- a/Plugins/setbits.c +++ b/Plugins/setbits.c @@ -1,6 +1,8 @@ #include #include "plugin.h" +INFO("set image data to a given value") + void perform_effect(_frame f, _args a) { unsigned char c; diff --git a/Plugins/setbits.dll b/Plugins/setbits.dll index 9a772ab..38247eb 100644 Binary files a/Plugins/setbits.dll and b/Plugins/setbits.dll differ diff --git a/Plugins/shadowcaster.c b/Plugins/shadowcaster.c index 0411c79..0494449 100644 --- a/Plugins/shadowcaster.c +++ b/Plugins/shadowcaster.c @@ -26,6 +26,8 @@ #include "plugin.h" #include "tools.h" +INFO("porduce a cutout with shadow.") + #define MAX_SHADOW 128 /* maximum shadow width in px */ void perform_effect(struct frame f, struct args a) diff --git a/Plugins/shadowcaster.dll b/Plugins/shadowcaster.dll index 7e2137d..b83d255 100644 Binary files a/Plugins/shadowcaster.dll and b/Plugins/shadowcaster.dll differ diff --git a/Plugins/shuffle.dll b/Plugins/shuffle.dll index d46d5aa..ce54039 100644 Binary files a/Plugins/shuffle.dll and b/Plugins/shuffle.dll differ diff --git a/Plugins/softlight.c b/Plugins/softlight.c index 90dc4b0..0275d09 100644 --- a/Plugins/softlight.c +++ b/Plugins/softlight.c @@ -24,6 +24,8 @@ #include "plugin.h" #include "tools.h" +INFO("softlight overlay of two images") + void perform_effect(struct frame f, struct args a) { printf("Using softlight as effect does nothing!\n"); diff --git a/Plugins/softlight.dll b/Plugins/softlight.dll index 3eeb131..682d55c 100644 Binary files a/Plugins/softlight.dll and b/Plugins/softlight.dll differ diff --git a/Plugins/sonogram.dll b/Plugins/sonogram.dll index 2615d14..b187365 100644 Binary files a/Plugins/sonogram.dll and b/Plugins/sonogram.dll differ diff --git a/Plugins/subtract.dll b/Plugins/subtract.dll index 4bab85c..c7214b4 100644 Binary files a/Plugins/subtract.dll and b/Plugins/subtract.dll differ diff --git a/Plugins/swap.cpp b/Plugins/swap.cpp index d1389f4..28baceb 100644 --- a/Plugins/swap.cpp +++ b/Plugins/swap.cpp @@ -4,8 +4,7 @@ #include "plugin.h" #include "pixels.h" -// swap selected area on two images -// args: swap sourcex1 sourcey1 sourcex2 sourcey2 destx desty +INFO("swap selected area on two images. usage: swap sourcex1 sourcey1 sourcex2 sourcey2 destx desty") // (the selection is of equal size on both images) void swapint(int *a, int *b) diff --git a/Plugins/swap.dll b/Plugins/swap.dll index ee04f4c..8fc8af2 100644 Binary files a/Plugins/swap.dll and b/Plugins/swap.dll differ diff --git a/Plugins/tile.dll b/Plugins/tile.dll index 7d7e565..e8b552e 100644 Binary files a/Plugins/tile.dll and b/Plugins/tile.dll differ diff --git a/Plugins/traffic.c b/Plugins/traffic.c index be2dbba..9ff8bf0 100644 --- a/Plugins/traffic.c +++ b/Plugins/traffic.c @@ -13,6 +13,8 @@ #include #include "plugin.h" +INFO("242.traffic -- does tristimulus matrix operations on an input image") + // tristimulus product used for matrix conversions static void tristimulus_product(float *matrix, byte *input, byte *output) diff --git a/Plugins/traffic.dll b/Plugins/traffic.dll index f6bacce..cee2102 100644 Binary files a/Plugins/traffic.dll and b/Plugins/traffic.dll differ diff --git a/Plugins/vf2fs.c b/Plugins/vf2fs.c index 32181eb..31460f1 100644 --- a/Plugins/vf2fs.c +++ b/Plugins/vf2fs.c @@ -11,6 +11,8 @@ #include "sharemem.h" #include "vframe.h" +INFO("display vframe contents, used automatically by fs.frame") + void perform_effect(_frame f, _args a) { HANDLE hlvframe=NULL, hl=NULL; diff --git a/Plugins/vf2fs.dll b/Plugins/vf2fs.dll index d51abad..c2a6ba8 100644 Binary files a/Plugins/vf2fs.dll and b/Plugins/vf2fs.dll differ diff --git a/Plugins/xbend.c b/Plugins/xbend.c index 1ba9959..f84335b 100644 --- a/Plugins/xbend.c +++ b/Plugins/xbend.c @@ -2,6 +2,8 @@ #include #include "plugin.h" +INFO("horizontal bend. usage: xbend ") + void perform_effect(_frame f, _args a) { byte pixelsize = f.pixelformat/8; diff --git a/Plugins/xbend.dll b/Plugins/xbend.dll index a482dfa..f5bee98 100644 Binary files a/Plugins/xbend.dll and b/Plugins/xbend.dll differ diff --git a/Plugins/xshred.c b/Plugins/xshred.c index 6918e50..4b0517b 100644 --- a/Plugins/xshred.c +++ b/Plugins/xshred.c @@ -1,6 +1,8 @@ #include #include "plugin.h" +INFO("horizontal shredding. usage: xshred ") + void perform_copy(_frame f1, _frame f2, _args a) { int step, w, h, y, pixelsize=f1.pixelformat/8; diff --git a/Plugins/xshred.dll b/Plugins/xshred.dll index 9ddf030..6df6bd7 100644 Binary files a/Plugins/xshred.dll and b/Plugins/xshred.dll differ diff --git a/toolbar.txt b/toolbar.txt new file mode 100644 index 0000000..aa3886d --- /dev/null +++ b/toolbar.txt @@ -0,0 +1,23 @@ +fs.main;fs.main: connect Pd and Framestein + +fs.frame;fs.frame: Load, display and process images and video +fs.framed;fs.framed: a docked version of fs.frame +fs.copy;fs.copy: Perform operations on two fs.frames +fs.fx;fs.fx: image effects +fs.blend;fs.blend: Blend two images +fs.mask;fs.mask: Copy frame to another using a mask +fs.layermode;fs.layermode: Mix two images with difference layer mode + +fs.draw;fs.draw: Draw lines and rectangles +fs.text;fs.text: Insert text + +fs.info;fs.info: Get info on fs.frame, such as width, height, framecount, ... +fs.event;fs.event: Get mouse and drag & drop information from fs.frame +fs.rgb;fs.rgb: Get red, green and blue of a pixel +fs.hist;fs.hist: Calculate image color intensities +fs.sonogram;fs.sonogram: Show a graphical spectogram + +fs.browser;fs.browser: View webpages and convert them to images +fs.waveform;fs.waveform: Display a waveform in fs.frame + +fs.grid;fs.grid: Easy to use XY-control -- cgit v1.2.1