Implementation note: this was done by giving each Render a slot number,
and for every slot a new Render will be created. Not sure if this is
ideal, but it ensures that all passes, render info, etc are separate so
you can also compare render layers and passes, in 2.4x only whatever it
was currently displaying was backed up.
* Bugfix, rasterization was shifted half a pixel.
* Remove scaling of bias by render size, there is something to be
said for doing to compensate for lower shadow buffer xy resolution,
however the z-resolution does not change and this seems to have a
larger effect.
* Remove clamping of filter size by soft factor. Now it is clamped to
1 pixel instead to ensure there is some AA. Why this was done this
way is not clear to me, however on decreasing shadow buffer resolution
this would change the softness by increasing the filter size.
* Fixed problem where selecting an individual F-Curve would not set the selection correctly.
Group channels still needed a separate selection check before they get included in the filtered list. I had removed this in an earlier fixing commit today, but overlooked that expanded groups wouldn't get this check. Therefore, group channels would also be flushed on, turning all channels of group on.
* Removed the 'curvesonly' test from deciding whether the selection status + collapsed group fix, from the earlier commit, since this was making a few cases get overlooked (namely for setting visibility toggles, where selected F-Curves in closed and deselected groups still managed to get through)
* Added a debugging print API call for helping with debugging this sort of error in future. It just prints the types of channels being operated on, to easily see what's going on...
The code used to calculate the number of spaces to insert for a tab (so that indention widths were aligned to multiples of the number of spaces to use) was incorrectly assuming that the line that this was to occur on was blank, using text->curl->len (i.e. the length of the current line).
The code now uses the position of the cursor to determine how many spaces need to be added to it to move it to the next multiple of the tab width.
---
Also, added numpad enter to text-editor keymap for creating new lines for more consistency with user expectations.
This commit fixes the first issue in the report - deselecting unselected channels does not flush the change in state - which resulted in the channels of collapsed and unselected groups not getting unselected too (a consistency issue).
For operators that depended on working on the data of 'selected' channels, but which needed to get F-Curves only, collapsed groups posed a problem (these operators included inserting keyframes on selected channels only, pasting keyframes, and ghosting curves).
When these groups were selected, all their F-Curves should get included regardless of selection since it's too confusing otherwise. However, inside the F-Curve filtering code, selection was still being considered. This problem has now been avoided by not filtering the F-Curves for selection status in these cases.
Bugfix #21031: Non-visible animation channels affected by fcurve visibility toggle hotkeys
Removed a bad check for the selection filtering check from animation editor filtering for groups+fcurves. This check meant that groups that were not visible due to not having any visible F-Curves would end up being shown too.
- World Animation was being ignored. Reported on BA
- Particle/Sound/World animation handling were all missing break statements for some reason, which was corrupting path names.
When the visiblity of a F-Curve in an expanded group was enabled using VKEY, the visibility of all groups above the expanded groups were also turned on.
Many string properties need tweaks to work correctly with this, since many don't have any reasonable defaults set (especially name fields, which often get cleared with these changes).
- recode of the whole sequencer audio handling
- encode audio flag removed, instead you choose None as audio codec, added None for video codec too
- ffmpeg formats/codecs: enabled: theora, ogg, vorbis; added: matroska, flac (not working, who can fix?), mp3, wav
- sequencer wave drawing
- volume animation (now also working when mixing down to a file!)
- made sequencer strip position and length values unanimatable
This commit adds a few more execution contexts for operators, given the increasing tendency for some special regiontypes to exist within areas that must have their own set of special operators.
Examples of these include the "channel" operators in the Animation Editors (i.e. those in the 'Channels' menu), and the "Fit to Preview Window" operator for the Sequencer.
Previously, operators such as these would not function when clicked on from the menus, and they would not show the hotkeys they were mapped to.
Also, fixed a few operator definitions in the Animation Editors which were missing ot->prop defines. This meant that some hotkeys (mainly selection) were shown incorrectly in the menus.
Add optional parameter to VideoTexture.Texture refresh() method
to specify timestamp (in seconds from start of movie) of the frame
to be loaded. This value is passed down to image source and for
VideoFFmpeg source, it is used instead of current time to load
the frame from the video file.
When combined with an audio actuator, it can be used to synchronize
the sound and the image: specify the same video file in the sound
actuator and use the KX_SoundActuator time attribute as timestamp
to refresh: the frame corresponding to the sound will be loaded:
GameLogic.video.refresh(True, soundAct.time)