Commit 5b47d387 authored by Sven Neumann's avatar Sven Neumann

Applied patches from Wolfgang Hofer.

parent f3a8df85
2003-10-20 Wolfgang Hofer <hof@gimp.org>
Merged changes from CVS-snapshot 2003.10.15
with my local changes since 2003-10-04
2003-10-18 Wolfgang Hofer <hof@gimp.org>
Request to remove dead code modules:
(i think i already removed those file,
but they appear in the CVS snaphots again)
gap/gap_exchange_image.c # dead code
gap/gap_exchange_image.h # dead code
gap/resize.h # dead code
VCR Navigator: Removed Close Button.
2003-10-16 Wolfgang Hofer <hof@gimp.org>
Extended MovePath to [optional] respect Selections
in the SourceImage (or SourceFrames).
feather_radius can be controled individual
via controlpoint settings.
(allows more or less smooth edges for the moving objects)
extended controlpoint fileformat with feather_radius
2003-10-15 Wolfgang Hofer <hof@gimp.org>
Extended MovePath to allow Bluebox Filtercalls
on the handled moving SourceLayer.
2003-10-14 Wolfgang Hofer <hof@gimp.org>
New Bluebox Plug-In
Converts the keycolor to Transparent Aplhachannel
based on a By Color Selection, and optional Selection Feather / Shrink Ops.
2003-10-09 Wolfgang Hofer <hof@gimp.org>
Support for Selection Handling in 'Frames To Image'
and 'Frames Modify' Plug-In.
Now you can propagate Selections from one Frame
into all Frames of a selected Framerange (Frames Modify)
or pick up a Multilayer Image from Frames respecting Selections
(Frames To Image)
2003-10-07 Wolfgang Hofer <hof@gimp.org>
Cleanup all external Procedure and type names
as first step for the planed Library libgimpgap.so
here are the internal revision numbers that wer used for the cleanup
(those versions are kept on my local machine only and were not
checked into CVS)
gimp-gap-1.3.20d_pre107 # compileclean with all new names
gimp-gap-1.3.20d_pre106 # manual name changes (that would conflict on automatic string replacements)
gimp-gap-1.3.20d_pre105 # was the sourcecode base
touched nearly ALL Sourcefiles for this Cleanup Step.
the affected fiels are:
gap/gap_arr_dialog.c gap/gap_arr_dialog.h
gap/gap_base_ops.c gap/gap_dbbrowser_utils.c gap/gap_dbbrowser_utils.h
gap/gap_decode_xanim.c gap/gap_filter.h gap/gap_filter_codegen.c
gap/gap_filter_foreach.c gap/gap_filter_pdb.c gap/gap_filter_pdb.h
gap/gap_frontends_main.c gap/gap_layer_copy.c gap/gap_layer_copy.h
gap/gap_lib.c gap/gap_lib.h gap/gap_lock.c gap/gap_lock.h gap/gap_main.c
gap/gap_match.c gap/gap_match.h gap/gap_mod_layer.c gap/gap_mod_layer.h
gap/gap_mov_dialog.c gap/gap_mov_dialog.h gap/gap_mov_exec.c
gap/gap_mov_exec.h gap/gap_mov_render.c gap/gap_mov_render.h gap/gap_mpege.c
gap/gap_mpege.h gap/gap_name2layer_main.c gap/gap_navi_activtable.c
gap/gap_navi_activtable.h gap/gap_navigator_dialog.c gap/gap_onion_base.c
gap/gap_onion_base.h gap/gap_onion_dialog.c gap/gap_onion_dialog.h
gap/gap_onion_main.c gap/gap_onion_main.h gap/gap_onion_worker.c
gap/gap_onion_worker.h gap/gap_pdb_calls.c gap/gap_pdb_calls.h
gap/gap_player_dialog.c gap/gap_player_dialog.h gap/gap_player_main.c
gap/gap_player_main.h gap/gap_pview_da.c gap/gap_pview_da.h
gap/gap_range_ops.c gap/gap_range_ops.h gap/gap_resi_dialog.c
gap/gap_resi_dialog.h gap/gap_split.c gap/gap_thumbnail.c gap/gap_thumbnail.h
gap/gap_timeconv.c gap/gap_timeconv.h gap/gap_vin.c gap/gap_vin.h
2003-10-06 Wolfgang Hofer <hof@gimp.org>
MovePath: added GrabPath Button (new STOCK icon)
--> does not work properly, because the API
gimp_path_get_points is broken in gimp-1.3.20
(it delivers only the first 1/3 of the path points)
Show waiting_cursor while busy with rendering the AnimPreview
Added NON-Interactive API for the new MovePath features
* gap/gap_main.c
* gap/gap_mov_dialog.c [.h]
* gap(gap_stoc.c [.h]
2003-10-05 Wolfgang Hofer <hof@gimp.org>
Player: tweaks in the resize behavior of the dialog window
MovePath: On Window resize (enlarge), automatic
resize the Preview to use the extra layout space.
keep a cached copy of the currently displayed frame
(tmp_alt_image_id)
to speed up instant update requests.
Implemented rendering for tween_layer and trace_layer features.
* gap/gap_mov_dialog.c [.h]
* gap/gap_mov_render.c [.h]
* gap/gap_mov_exec.c [.h]
2003-10-04 Wolfgang Hofer <hof@gimp.org>
Array Dialog: bugfix: added missing implementation for WGT_RADIO defaults
* gap/gap_arr_dialog.c [.h]
2003-10-15 Danilo Šegan <dsegan@gmx.net> 2003-10-15 Danilo Šegan <dsegan@gmx.net>
* configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS. * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
......
...@@ -3,6 +3,7 @@ Makefile ...@@ -3,6 +3,7 @@ Makefile
.deps .deps
_libs _libs
.libs .libs
gap_bluebox
gap_decode_mpeg gap_decode_mpeg
gap_filter gap_filter
gap_frontends gap_frontends
......
...@@ -14,7 +14,43 @@ if GAP_AUDIO_SUPPORT ...@@ -14,7 +14,43 @@ if GAP_AUDIO_SUPPORT
WAVPLAYCLIENT = $(top_builddir)/libwavplayclient/libwavplayclient.a WAVPLAYCLIENT = $(top_builddir)/libwavplayclient/libwavplayclient.a
endif endif
LIBGIMPGAP = libgimpgap.a
noinst_LIBRARIES = $(LIBGIMPGAP)
libgimpgap_a_SOURCES = \
gap-intl.h \
gap_arr_dialog.c \
gap_arr_dialog.h \
gap_image.c \
gap_image.h \
gap_layer_copy.c \
gap_layer_copy.h \
gap_lib.c \
gap_lib.h \
gap_lock.c \
gap_lock.h \
gap_navi_activtable.c \
gap_navi_activtable.h \
gap_match.c \
gap_match.h \
gap_onion_base.c \
gap_onion_base.h \
gap_pdb_calls.c \
gap_pdb_calls.h \
gap_pview_da.c \
gap_pview_da.h \
gap_thumbnail.c \
gap_thumbnail.h \
gap_timeconv.c \
gap_timeconv.h \
gap_stock.c \
gap_stock.h \
gap_vin.c \
gap_vin.h
libexec_PROGRAMS = \ libexec_PROGRAMS = \
gap_bluebox \
gap_plugins \ gap_plugins \
gap_filter \ gap_filter \
$(GAP_FRONTENDS) \ $(GAP_FRONTENDS) \
...@@ -23,28 +59,28 @@ libexec_PROGRAMS = \ ...@@ -23,28 +59,28 @@ libexec_PROGRAMS = \
gap_player \ gap_player \
gap_onion gap_onion
gap_bluebox_SOURCES = \
gap_lastvaldesc.c \
gap_lastvaldesc.h \
gap_bluebox_main.c \
gap_bluebox.c \
gap_bluebox.h \
gap_libgimpgap.h
gap_plugins_SOURCES = \ gap_plugins_SOURCES = \
gap-intl.h \ gap_base_ops.c \
gap_arr_dialog.c \ gap_base_ops.h \
gap_arr_dialog.h \ gap_bluebox.c \
gap_base_ops.c \ gap_bluebox.h \
gap_base_ops.h \
gap_dbbrowser_utils.c \ gap_dbbrowser_utils.c \
gap_dbbrowser_utils.h \ gap_dbbrowser_utils.h \
gap_filter_codegen.c \ gap_filter_codegen.c \
gap_filter_pdb.c \ gap_filter_pdb.c \
gap_filter_pdb.h \ gap_filter_pdb.h \
gap_layer_copy.c \
gap_layer_copy.h \
gap_lastvaldesc.c \ gap_lastvaldesc.c \
gap_lastvaldesc.h \ gap_lastvaldesc.h \
gap_lib.c \
gap_lib.h \
gap_lock.c \
gap_lock.h \
gap_main.c \ gap_main.c \
gap_match.c \
gap_match.h \
gap_mod_layer.c \ gap_mod_layer.c \
gap_mod_layer.h \ gap_mod_layer.h \
gap_mov_dialog.c \ gap_mov_dialog.c \
...@@ -55,28 +91,15 @@ gap_plugins_SOURCES = \ ...@@ -55,28 +91,15 @@ gap_plugins_SOURCES = \
gap_mov_render.h \ gap_mov_render.h \
gap_navi_activtable.c \ gap_navi_activtable.c \
gap_navi_activtable.h \ gap_navi_activtable.h \
gap_onion_base.c \
gap_onion_base.h \
gap_pdb_calls.c \
gap_pdb_calls.h \
gap_pview_da.c \
gap_pview_da.h \
gap_range_ops.c \ gap_range_ops.c \
gap_range_ops.h \ gap_range_ops.h \
gap_resi_dialog.c \ gap_resi_dialog.c \
gap_resi_dialog.h \ gap_resi_dialog.h \
gap_split.c \ gap_split.c \
gap_split.h \ gap_split.h \
gap_stock.c \ gap_libgimpgap.h
gap_stock.h \
gap_thumbnail.c \
gap_thumbnail.h \
gap_vin.c \
gap_vin.h
gap_filter_SOURCES = \ gap_filter_SOURCES = \
gap_arr_dialog.c \
gap_arr_dialog.h \
gap_dbbrowser_utils.c \ gap_dbbrowser_utils.c \
gap_dbbrowser_utils.h \ gap_dbbrowser_utils.h \
gap_filter.h \ gap_filter.h \
...@@ -89,139 +112,43 @@ gap_filter_SOURCES = \ ...@@ -89,139 +112,43 @@ gap_filter_SOURCES = \
gap_filter_pdb.h \ gap_filter_pdb.h \
gap_lastvaldesc.c \ gap_lastvaldesc.c \
gap_lastvaldesc.h \ gap_lastvaldesc.h \
gap_match.c \ gap_libgimpgap.h
gap_match.h \
gap_pdb_calls.c \
gap_pdb_calls.h \
gap_stock.c \
gap_stock.h \
gap_vin.c \
gap_vin.h
gap_frontends_SOURCES = \ gap_frontends_SOURCES = \
gap_arr_dialog.c \
gap_arr_dialog.h \
gap_decode_xanim.c \ gap_decode_xanim.c \
gap_decode_xanim.h \ gap_decode_xanim.h \
gap_frontends_main.c \ gap_frontends_main.c \
gap_layer_copy.c \
gap_layer_copy.h \
gap_lib.c \
gap_lib.h \
gap_lock.c \
gap_lock.h \
gap_match.c \
gap_match.h \
gap_mpege.c \ gap_mpege.c \
gap_mpege.h \ gap_mpege.h \
gap_navi_activtable.c \ gap_libgimpgap.h
gap_navi_activtable.h \
gap_onion_base.c \
gap_onion_base.h \
gap_pdb_calls.c \
gap_pdb_calls.h \
gap_thumbnail.c \
gap_thumbnail.h \
gap_stock.c \
gap_stock.h \
gap_vin.c \
gap_vin.h
gap_name2layer_SOURCES = \ gap_name2layer_SOURCES = \
gap_arr_dialog.c \
gap_arr_dialog.h \
gap_lastvaldesc.c \ gap_lastvaldesc.c \
gap_lastvaldesc.h \ gap_lastvaldesc.h \
gap_stock.c \ gap_name2layer_main.c \
gap_stock.h \ gap_libgimpgap.h
gap_name2layer_main.c
gap_navigator_dialog_SOURCES = \ gap_navigator_dialog_SOURCES = \
gap_arr_dialog.c \
gap_arr_dialog.h \
gap_layer_copy.c \
gap_layer_copy.h \
gap_lib.c \
gap_lib.h \
gap_match.c \
gap_match.h \
gap_navi_activtable.c \ gap_navi_activtable.c \
gap_navi_activtable.h \ gap_navi_activtable.h \
gap_navigator_dialog.c \ gap_navigator_dialog.c \
gap_onion_base.c \ gap_libgimpgap.h
gap_onion_base.h \
gap_pdb_calls.c \
gap_pdb_calls.h \
gap_pview_da.c \
gap_pview_da.h \
gap_stock.c \
gap_stock.h \
gap_thumbnail.c \
gap_thumbnail.h \
gap_timeconv.c \
gap_timeconv.h \
gap_vin.c \
gap_vin.h
gap_player_SOURCES = \ gap_player_SOURCES = \
gap_arr_dialog.c \
gap_arr_dialog.h \
gap_layer_copy.c \
gap_layer_copy.h \
gap_lib.c \
gap_lib.h \
gap_match.c \
gap_match.h \
gap_navi_activtable.c \
gap_navi_activtable.h \
gap_onion_base.c \
gap_onion_base.h \
gap_player_main.c \ gap_player_main.c \
gap_player_main.h \ gap_player_main.h \
gap_player_dialog.c \ gap_player_dialog.c \
gap_player_dialog.h \ gap_player_dialog.h \
gap_pdb_calls.c \ gap_libgimpgap.h
gap_pdb_calls.h \
gap_pview_da.c \
gap_pview_da.h \
gap_stock.c \
gap_stock.h \
gap_thumbnail.c \
gap_thumbnail.h \
gap_timeconv.c \
gap_timeconv.h \
gap_vin.c \
gap_vin.h
gap_onion_SOURCES = \ gap_onion_SOURCES = \
gap_arr_dialog.c \
gap_arr_dialog.h \
gap_onion_main.c \ gap_onion_main.c \
gap_onion_main.h \ gap_onion_main.h \
gap_onion_dialog.c \ gap_onion_dialog.c \
gap_onion_dialog.h \ gap_onion_dialog.h \
gap_onion_worker.c \ gap_onion_worker.c \
gap_onion_worker.h \ gap_onion_worker.h \
gap_onion_base.c \ gap_libgimpgap.h
gap_onion_base.h \
gap_layer_copy.c \
gap_layer_copy.h \
gap_lib.c \
gap_lib.h \
gap_lock.c \
gap_lock.h \
gap_navi_activtable.c \
gap_navi_activtable.h \
gap_match.c \
gap_match.h \
gap_pdb_calls.c \
gap_pdb_calls.h \
gap_thumbnail.c \
gap_thumbnail.h \
gap_stock.c \
gap_stock.h \
gap_vin.c \
gap_vin.h
AM_CPPFLAGS = \ AM_CPPFLAGS = \
-DGAPLIBDIR=\""$(GAPLIBDIR)"\" \ -DGAPLIBDIR=\""$(GAPLIBDIR)"\" \
...@@ -237,10 +164,40 @@ LDADD = \ ...@@ -237,10 +164,40 @@ LDADD = \
$(GIMP_LIBS) $(GIMP_LIBS)
gap_bluebox_LDADD = \
$(LIBGIMPGAP)\
$(GIMP_LIBS)
gap_plugins_LDADD = \
$(LIBGIMPGAP)\
$(GIMP_LIBS)
gap_filter_LDADD = \
$(LIBGIMPGAP)\
$(GIMP_LIBS)
gap_frontends_LDADD = \
$(LIBGIMPGAP)\
$(GIMP_LIBS)
gap_name2layer_LDADD = \
$(LIBGIMPGAP)\
$(GIMP_LIBS)
gap_navigator_dialog_LDADD = \
$(LIBGIMPGAP)\
$(GIMP_LIBS)
gap_player_LDADD = \ gap_player_LDADD = \
$(LIBGIMPGAP)\
$(WAVPLAYCLIENT)\ $(WAVPLAYCLIENT)\
$(GIMP_LIBS) $(GIMP_LIBS)
gap_onion_LDADD = \
$(LIBGIMPGAP)\
$(GIMP_LIBS)
EXTRA_DIST = \ EXTRA_DIST = \
README \ README \
README_developers \ README_developers \
......
Project gap "Gimp Animation Package" 14. Sept 2003 (pre)release 1.3.20a Project gap "Gimp Animation Package" 29. Sept 2003 (pre)release 1.3.20c
-------------------------------------------------------------------- --------------------------------------------------------------------
Introduction Introduction
...@@ -21,16 +21,18 @@ Idea: ...@@ -21,16 +21,18 @@ Idea:
GIMP can operate on a series of images as if they were GIMP can operate on a series of images as if they were
a single one. a single one.
Each frame of an Animation can have multiple Layers. Each frame of an Animation can have multiple Layers.
The user can step from frame to frame by pressing an Accelerator Key. The user can step from frame to frame by pressing an Accelerator Key
or can do Image manipulations that are propagated automatically
to a selected range of frames.
Layeranimated Images can be combined with frames (multiple images) Layeranimated Images can be combined with Frames (multiple Images)
as you can see in the "Move Path" Plug-In as you can see in the "Move Path" Plug-In
or converted to frames and vice-versa. or converted to frames and vice-versa.
Concept: Concept:
An animation consists of a series of Images of the same Size & Type An animation consists of a series of Images of the same Size & Type
(Frames). (Frames).
In my Concept each Frame is stored seperate on Disk, using a filename The Concept of GAP is to store each Frame seperate on Disk, using a filename
convention that includes the frame Number and extension. convention that includes the frame Number and extension.
Example: film_000001.xcf, Example: film_000001.xcf,
...@@ -40,10 +42,12 @@ Concept: ...@@ -40,10 +42,12 @@ Concept:
gimp's xcf Fileformat should be used to store the frames, gimp's xcf Fileformat should be used to store the frames,
so that each frame can have more Layers. so that each frame can have more Layers.
(Notes:
Sound is not supported in this Concept, but can be added Sound is not supported in this Concept, but will be handled
by some of the supported Video Encoders. as sperate audiofiles at encoding time or in the Playback Module.
Playbackrates (framerate) is also set at video encoding) The Playback Framerate and other common Information about the Animation
are stored in an extra Videoinfo Textfile
film_vin.gap
This requires a lot of Diskspace but offers much more flexibility This requires a lot of Diskspace but offers much more flexibility
while working on the animation. while working on the animation.
...@@ -53,6 +57,8 @@ Concept: ...@@ -53,6 +57,8 @@ Concept:
(gzip has to be installed on your system to do that) (gzip has to be installed on your system to do that)
If you can accept lossy compression you may also use If you can accept lossy compression you may also use
the xjt fileformat to store your frames on jpeg based compression. the xjt fileformat to store your frames on jpeg based compression.
(the curent implementation of the xjt fileformat
is resticted to UNIX Operating Systems)
The final Product can be encoded as videofile The final Product can be encoded as videofile
or converted to one multilayerd Image or converted to one multilayerd Image
...@@ -60,11 +66,18 @@ Concept: ...@@ -60,11 +66,18 @@ Concept:
(or, in the future in other Animation Formats (or, in the future in other Animation Formats
when other Load/Save Modules were added to the gimp) when other Load/Save Modules were added to the gimp)
GAP provides frontend dialog interfaces for GAP provides automated Fileformat Conversions for
software MPEG video encoder programs. the Frames of an Animation.
This Conversions offer a way to use external
Video encoder Programs.
All GIMP-supported Imagefileformats may be used.
On UNIX Platforms GAP provides frontend dialog interfaces for
software MPEG Video encoder Programs.
(mpeg_encode and mpeg2encode) (mpeg_encode and mpeg2encode)
GAP also provides an XANIM frontend to load AnimFrames from multimedia fileformats On UNIX Platforms GAP also provides an XANIM frontend to load AnimFrames
from multimedia fileformats
(avi, quicktime, ....) based on the famous xanim multimedia player. (avi, quicktime, ....) based on the famous xanim multimedia player.
see the file README_xanim_hack for more details. see the file README_xanim_hack for more details.
...@@ -76,7 +89,7 @@ Onionskin Layers ...@@ -76,7 +89,7 @@ Onionskin Layers
Installation Installation
-------------------------------------------------------------------- --------------------------------------------------------------------
This version of GAP is a seprated Package since GIMP-1.3.x This version of GAP is a seperated Package since GIMP-1.3.x
and DOES NOT compile/run with GIMP-1.2.x and DOES NOT compile/run with GIMP-1.2.x
./autogen.sh # includes the ./configure call ./autogen.sh # includes the ./configure call
...@@ -539,10 +552,10 @@ How to use ...@@ -539,10 +552,10 @@ How to use
The preferred way is to edit your gimprc file and add a line The preferred way is to edit your gimprc file and add a line
like this on: like this on:
(audioconvert_program "/usr/local/bin/audioconvert_to_wav.sh") (audioconvert_program "/usr/local/bin/my_private_audioconverter")
The 2nd way is to set an Environmentvariable: The 2nd way is to set an Environmentvariable:
export AUDIOCONVERT_TO_WAV=/usr/local/bin/audioconvert_to_wav.sh export AUDIOCONVERT_TO_WAV=/usr/local/bin/my_private_audioconverter
Playback Alternatives: Playback Alternatives:
...@@ -566,8 +579,10 @@ How to use ...@@ -566,8 +579,10 @@ How to use
(<Image>/Video/Move Path) (<Image>/Video/Move Path)
For this Plug-In you need a series of frames For this Plug-In you need a series of frames as destination
and one single image (that may have more layers). and a source object.
The source object can be one single image
that may have one or more layers or another series of frames.
- The Source Image must be opened in the gimp - The Source Image must be opened in the gimp
- The Source Image must be another Image than the destination frame - The Source Image must be another Image than the destination frame
...@@ -608,22 +623,70 @@ How to use ...@@ -608,22 +623,70 @@ How to use
for the FrameBased Stepmodes it acts like an Animation with for the FrameBased Stepmodes it acts like an Animation with
only one frame. only one frame.
The Step Speed Factor
decides how fast to Step Through the Source Object,
in relation to the Target Frames.
With Factor 1.0 Source and Target will step synchron.
Factor 0.5 slows down the Source Steps to half Speed.
The Same SourceLayer is copied into 2 Frames,
before the advance to the next SourceLayer is done.
The StepSpeedFactor is not relevant for the
Stepmodes "None" and "FrameNone".
The copies of the SourceLayer(s) were modified by transitions The copies of the SourceLayer(s) were modified by transitions
with varying Parameters. with varying Parameters.
Parameters: Parameters:
- SourceLayer (depends on Stepmode)
- Position (X/Y) - Position (X/Y)
- Size (Width/Height) - Size Scaling (Width/Height)
- Opacity - Opacity
- Rotation (angle from -360 to +360 degrees) - Rotation (angle from -360 to +360 degrees)
- SourceLayer (depends on Stepmode) - Perspective Transformation (transformation factors for X/Y of the 4 Corner Points)
Perspective Transformation Factors are Scalingfactors
that are applied to the Coordinates of the 4 Corners.
If all 8 Coordinates have the Value 1.0 no Scaling is done
and the result is the same as the original.
Scaling with Factor 0 moves the affected (X or Y) Coordinate to the Middle.
Factor 2.0 applied to Coorinate moves it outwards by half of the
original width (for X Coordinates)
or hlaf height (for Y Coordinates).
1/1 1/1
+------------+------------+
| | |
| x1/y1 | x2/y2 |
| 0.5/0.5 | 0.5/0.5 |
| o...............o |
| . | . |
| . | . |
| . |0.0 . |
+------------+------------+
.| | |.
. | | | .
. | | | .
. | | | .
. | | | .
. | | | .
. | | | .
. +------------+------------+ .
. 1/1 1/1 .
. .
o...............................................o
1.5/1.5 1.5/1.5
x3/y3 x4/y4
The Parameters were changed linear from one starting point to The Parameters were changed linear from one starting point to
the next point. Per default the move Path has only only 1 Point. the next point. Per default the move Path has only only 1 Point.
(So the Src-Layers(s) are copied to all frames of the framerange (So the Src-Layers(s) are copied to all frames of the framerange
at constant Position, Size and Opacity) at constant Position, Size and Opacity)
If you want your Source_layers to move, grow, rotate or to fade (in or out) If you want your Source_layers to move, grow, rotate or to fade (in or out)
you have to add one more points (limited to 256) to define a Path. you have to add one more points (limited to 1024) to define a Path.
The affected range is selected by Start Frame - End Frame. The affected range is selected by Start Frame - End Frame.
Each affected frame recieves exactly one copy of the (current) Each affected frame recieves exactly one copy of the (current)
...@@ -654,7 +717,7 @@ How to use ...@@ -654,7 +717,7 @@ How to use
(without picking other controlpoints) (without picking other controlpoints)
There are Buttons to There are Controlpoint Edit Buttons to
"Add Point" "Add Point"
"Insert Point" "Delete Point" "Insert Point" "Delete Point"
...@@ -664,10 +727,11 @@ How to use ...@@ -664,10 +727,11 @@ How to use
you can step from point to point, you can step from point to point,
and make other points to the curremt point. and make other points to the curremt point.
"Clear Point" "Clear All Points" "Reset Point" "Reset All Points"
does reset Width, Height and Opacity of the point to 100% does reset Width, Height and Opacity of the point to 100%
and Rotation to 0 degree, and leaves the path (X/Y Values) , Perspective Factors to 1.0 (no Perspective tansformation)
unchanged. and Rotation to 0 degree,
but leaves the path (X/Y Values) unchanged.
"Delete All Points" "Delete All Points"
removes all controlpoints. removes all controlpoints.
...@@ -700,10 +764,16 @@ How to use ...@@ -700,10 +764,16 @@ How to use
loads controlpoints from file loads controlpoints from file
The Instant Apply Checkbox
does automatic update of the preview when checked.
The automatic update needs much CPU and IO power
especially when big Images are used as Source and/or Destination
or those Images have many Layers.
(dont use the Instant_apply on slow Machines.)
Tips: