Older Newer
Tue, 08 Jan 2008 13:25:56 . . . . afh [Add FFW info]


Changes by last author:

Added:
= <FFW_program> =

Parses a Filter Factory Wizard program.

(Mario Klingemann)?'s Filter Factory Wizard modified and extended the AFS text file format to provide a more general and complete way to save the design parameters of a Filter Factory filter. This format was also proposed as the basis for the general publication format used in the (FFDG)?.

The FFW format improves on the AFS format by explicitly tagging all fields, and adding fields for the filter Category, Title, Copyright, Author, and Filename information. It also allows one to specify which sliders are actually used by the filter, and the labels of these sliders.

== Syntax ==

:<FFW_program> :

::[ %FFW ] //optional header

::{ <FFW_key_value_pair> }+

::<end_of_program>

:<FFW_key_value_pair> :

::Category : <text_field>

::{ Title | Name } : <text_field>

::Copyright : <text_paragraph>

::Author : <text_field>

::Filename : <text_field>

::Description : <text_paragraph>

::R : (<C_language_expression>)?

::G : (<C_language_expression>)?

::B : (<C_language_expression>)?

::A : (<C_language_expression>)?

::ctl <index> : <text_field>

::val <index> : <preset>

:<text_field> :

::(<string_literal>)?

::<bare_text_field> //obsolescent

:<text_paragraph> :

::(<string_literal>)?

::<bare_text_paragraph> //obsolescent

:<bare_text_field> :

::{(<char>)?}* (<eol>)?

:<bare_text_paragraph> :

::{(<char>)?}* <p>

:<index> :

:: [ (<integer_constant>)? ]

:: ( (<integer_constant>)? ) //obsolescent

== Examples ==

The following is an example of a FFW program file (MyFilter1.ffw):

<code>

%FFW

Category: MyFilters

Title: My First Filter

Filename: MyFilter1

Author: Plato

Copyright: &copy; 2008

Description: My very first plug-in filter.

R:(r-g)/2

G:(g+b)/2

B:(b/2) + ctl(0)

A:255

ctl[0]: Red Mix

val[0]: 0

ctl[1]: Green Mix

val[1]: 10

ctl[2]: Blue Mix

val[2]: 120

</code>

The following is a more elaborate example:

<code>

Category: AFH

Title: AFH Beveler 2.0b...

Copyright: Copyright © 1998 AFH Web Design

http://www.afh.com/web/design.html

Author: Alexander F. Hunter

Filename: afhbev2b.8bf

R:((x<val(7,0,M))&&(y>=x)&&(y<Y-x))?scl(c,0,255,ctl(0),ctl(1)*2)+ctl(4)-128:

((y<val(7,0,M))&&(x>y)&&(x<X-y))?scl(c,0,255,ctl(0),ctl(1)*2)-ctl(4)+128:

((X-x<=val(7,0,M))&&(Y-y>=X-x)&&(y>x-X))?scl(c,0,255,ctl(2),ctl(3)*2)+ctl(5)-128:

((Y-y<=val(7,0,M))&&(X-x>Y-y)&&(x>y-Y))?scl(c,0,255,ctl(2),ctl(3)*2)-ctl(5)+128:c

G:((x<val(7,0,M))&&(y>=x)&&(y<Y-x))?scl(c,0,255,ctl(0),ctl(1)*2)+ctl(4)-128:

((y<val(7,0,M))&&(x>y)&&(x<X-y))?scl(c,0,255,ctl(0),ctl(1)*2)-ctl(4)+128:

((X-x<=val(7,0,M))&&(Y-y>=X-x)&&(y>x-X))?scl(c,0,255,ctl(2),ctl(3)*2)+ctl(5)-128:

((Y-y<=val(7,0,M))&&(X-x>Y-y)&&(x>y-Y))?scl(c,0,255,ctl(2),ctl(3)*2)-ctl(5)+128:c

B:((x<val(7,0,M))&&(y>=x)&&(y<Y-x))?scl(c,0,255,ctl(0),ctl(1)*2)+ctl(4)-128:

((y<val(7,0,M))&&(x>y)&&(x<X-y))?scl(c,0,255,ctl(0),ctl(1)*2)-ctl(4)+128:

((X-x<=val(7,0,M))&&(Y-y>=X-x)&&(y>x-X))?scl(c,0,255,ctl(2),ctl(3)*2)+ctl(5)-128:

((Y-y<=val(7,0,M))&&(X-x>Y-y)&&(x>y-Y))?scl(c,0,255,ctl(2),ctl(3)*2)-ctl(5)+128:c

A:a

ctl[0]: Top/left black level:

ctl[1]: Top/left white level:

ctl[2]: Bot/right black level:

ctl[3]: Bot/right white level:

ctl[4]: Top/left balance:

ctl[5]: Bot/right balance:

ctl[7]: Bevel width:

val[0]: 28

val[1]: 201

val[2]: 0

val[3]: 76

val[4]: 82

val[5]: 149

val[7]: 8

</code>

== Also see ==

Command Reference, Syntax, <FM_program>