Changes by last author:

Added:
Here's a quick set of release notes for FM Lite beta version 0.4.1.

Please note that this list is neither comprehensive nor exhaustive.

# Caveats

## Release 0.4.1 has been tested only with Photoshop 4.0.1, Paint Shop Pro 4.12, and Paint Shop Pro 5.01 (evaluation version). Use other hosts at your own risk!

## Paint Shop Pro 4.x and 5.x apparently do not preserve a plug-in filter's state across invocations. This means that the settings of controls, the contents of the source edit box, etc., will not be preserved across invocations, which can be a great annoyance. In later versions, FM may use alternate methods to preserve state across invocations, at least for ill-behaved hosts such as PSP.

## This release contains great amounts of debugging code, etc., so it is much bulkier (and somewhat slower) than the retail release will be.

## This release contains many partially-implemented and/or undocumented features. Use these features at your own risk! Please try to confine your evaluation to *documented* features only (e.g., to features presented in the Tutorial Lessons associated with this release).

## FM runs best at a screen size of 800x600 or higher. To use the Advanced Edit mode, you may need to run your display at 1024x768 or higher, particularly if you are using Large Screen fonts.

# Changes - The following changes have been made since the previous release:

## The default for the "Use MMX" checkbox has been set to unchecked instead of checked (see 4.1 below). If you set "Use MMX" when using FM with PSP as a host, you will get random GP errors.

## Unused scrollbar, checkbox, and radio button controls in the default filter dialog box will be automatically hidden.

# New Features - Following are new features in this release:

## The FM dialog box now changes its size, revealing or hiding various controls as appropriate, depending on the editing mode. The modes are: Normal Mode (shows size of final filter that will be created as a stand-alone); Edit Mode (displays source edit box and associated controls for loading, editing, compiling, and saving the filter source code); and Advanced Edit Mode (same as Edit Mode, but changes the Compile button to a series of buttons for the individual compilation steps, and displays the Filter Parameter Block and Compiler Output Log as well as many advanced option check boxes). Advanced Mode is intended for debugging FM -- use it at your own risk!

## In Edit Mode, the Compile button performs a "minimal make". The parser is invoked only if the previous parse failed; then the code generator is invoked only if the source was reparsed successfully; then the dialog initialization code is invoked only if code was regenerated successfully. Note that the Compile button does NOT update the proxy preview.

## Load and Save buttons have been implemented to load and save source code in the source edit box. It is no longer necessary to use Cut and Paste (though that still works).

## Loading a *.afs Filter Factory Settings file with the Load button will automatically import the *.afs file as a skeleton FFP program. (This automatic conversion does NOT occur when you Paste the contents of a *.afs file into the source edit box -- in that case, FM will still parse the text as a (plain) Filter Factory source file.)

## FM now supports if/then/else-statements, for-loops, while-loops, and do-loops as part of the FFP language.

## FM now has many new built-in variables, including several sets of general-purpose user variables (int i0,...i9; int j0,...j9; int k0,...k9; double x0,...x9; double y0,...y9; double z0,...z9;).

## FM now allows a list of channel names when specifying a channel formula. For example, R,G,B:<formula> is equivalent to:

##:R:<formula>

##:G:<formula>

##:B:<formula>

# Unimplemented Features -The following features are not implemented (or only partially implemented) in this release:

## The following buttons are not yet functional: Find, Help, and Make. In particular, note that this release cannot be used to "Make" a stand-alone filter.

## Filter programs can only access the 10 predefined scrollbar controls. The demo checkbox and radio controls are not yet functional, and will disappear as soon as you compile a source program.

## The Save button is really a "Save As..." button, and will always prompt before overwriting a file, even if it is the current source file. If demand warrants, I will add a separate "Save" button that updates the current source file without prompting.

## JPEG images cannot be used as the dialog background in this release. Only Windows bitmap (*.bmp) files are supported in this release.

## The following FFP language features are not implemented in this release:

### User declaration of variables

### typedef statements

### switch statements

### return statements

### arrays

## The following FFP handlers (and their associated keywords) are not yet implemented:

### onInitialInvocation

### onInitDialog

### OnFilterInit

### forEveryTile

### forEveryRow

### forEveryPixel

### onGpError

### onFloatError

## The 'map[n]' dialog key is not yet recognized.

## FM still does not recognize many of the "undocumented" FF variables such as I, U, V, cmax, etc.

# Known Problems - Following are some of the known problems in this release:

## Because of a quirk in the way MMX support is implemented, FM may cause random GP errors when run under some hosts. MMX works okay with Photoshop 4.0.1, but causes random crashes in PSP 4.x and 5.x. MMX support will be fixed in a future release to avoid any such GP errors.

## FM does not warn if you exit without saving changes to your source code, nor if you load new source code without first saving any changes to your previous source code.

## The floating-point stack is not emptied across FFP function calls; this can cause floating-point stack overflow errors in some cases.

## The dialog background is not updated properly when switching between edit modes if the background is a gradient or image.

## The FFP region functions interpret coordinates in device pixels rather than in Dialog Box Units (dbu's). This means they will not scale properly across changes to the system Screen Font size.

## User-defined positioning and sizing of controls does not work properly.

## The dialog box title is not saved across filter invocations.

## The Title keyword in an FFW program does not set the dialog box title.

## Updating the Proxy Preview does not always force a recompile if the source code has changed, so you may get a "stale" preview if you do not manually perform a compile.

## The tab order for controls in the FM dialog has not yet been set. If you try to tab from one control to another, you may get strange results.

## The map(n,i) run-time function does not behave the same as FF when the value of the "hi" slider is less than the value of the "lo" slider.