(Some of the audio features do a version check in do_versions
(usiblender.c, readfile.c) and depend on this to convert fields in older
(<2.28) files).
I also removed the "2.27.Newpy.1" line from headerbuttons.c, it now shows
"www.blender.org 228" again.
size of this;
Finally, the Sequencer audio support and global audio/animation sync stuff!
(See http://intrr.org/blender/audiosequencer.html)
Stuff that has been done:
./source/blender/blenloader/intern/writefile.c
./source/blender/blenloader/intern/readfile.c
Added code to make it handle sounds used by audio strips, and to convert
Scene data from older (<2.28) versions to init Scene global audio settings
(Scene->audio) to defaults.
./source/blender/include/BSE_seqaudio.h
./source/blender/src/seqaudio.c
The main audio routines that start/stop/scrub the audio stream at
a certain frame position, provide the frame reference for the current
stream position, mix the audio, convert the audio, mixdown the audio
into a file.
./source/blender/makesdna/DNA_sound_types.h
Introduced new variables in the bSound struct to accomodate the sample
data after converted to the scene's global mixing format (stream, streamlen).
Also added a new flag SOUND_FLAGS_SEQUENCE that gets set if the Sound
belongs to a sequence strip.
./source/blender/makesdna/DNA_scene_types.h
Added AudioData struct, which holds scene-global audio settings.
./source/blender/makesdna/DNA_sequence_types.h
Added support for audio strips. Some variables to hold Panning/Attenuation
information, position information, reference to the sample, and some flags.
./source/blender/makesdna/DNA_userdef_types.h
./source/blender/src/usiblender.c
Added a "Mixing buffer size" userpref. Made the versions stuff initialize
it to a default for versions <2.28.
./source/blender/makesdna/DNA_space_types.h
./source/blender/src/filesel.c
Added a Cyan dot to .WAV files. Any other suggestions on a better color? :)
./source/blender/src/editsound.c
Changes (fixes) to the WAV file loader, re-enabled some gameengine code that
is needed for dealing with bSounds and bSamples.
./source/blender/src/editipo.c
./source/blender/src/drawseq.c
./source/blender/src/editnla.c
./source/blender/src/space.c
./source/blender/src/drawview.c
./source/blender/src/renderwin.c
./source/blender/src/headerbuttons.c
- Created two different wrappers for update_for_newframe(), one which scrubs
the audio, one which doesn't.
- Replaced some of the occurences of update_for_newframe() with
update_for_newframe_muted(), which doesn't scrub the audio.
- In drawview.c: Changed the synchronization scheme to get the current audio
position from the audio engine, and use that as a reference for setting
CFRA. Implements a/v sync and framedrop.
- In editipo.c: Changed handling of Fac IPOs to be usable for audio strips as
volume envelopes.
- In space.c: Added the mixing buffer size Userpref, enabled audio scrubbing
(update_for_newframe()) for moving the sequence editor framebar.
./source/blender/src/editseq.c
Added support for audio strips and a default directory for WAV files which
gets saved from the last Shift-A operation.
./source/blender/src/buttons.c
Added Scene-global audio sequencer settings in Sound buttons.
./source/blender/src/sequence.c
Various stuff that deals with handling audio strips differently than
usual strips.
instead of drawing everything again, in all windows, it restricts to
the active and previous active object. when there are more objects to
be redrawn, it does a normal swapbuffers.
Result is it all redraws & selects a lot faster in complex scenes
* Little fix in "BallTable" routine when moving mouse vertical out of
the 3d window.
In fact, I made it working different, much more cooler!
-------The BallTable Method TM (patent pending)------------
This is a hybrid of the old turntable method (a virtual camara that rotates
around a table) and the trackball method. Mouse moving horizontal, gives
the turntable effect, but with vertical movement it works like a trackball.
So, vertically moving in the middle of the window exactly mimics old
turntable method, moving vertically in the window edge gives a 'twist'
rotation.
Try the turntable for fun! (is in user settings menu)
* this apple method to do it generates unwanted events, so it could not
be used for the menu mouse-move trick. this is #ifdeffed
* we should re-evaluate if this mousemove should remain in blender...
there are better ways (scrolling contents of pup)
* plus: removed warnings from drawview.c
use the internal standards for ascii values > 127
* someone has to check how X11 returns these values! Otherise the old
Blender codes (alt+s = german S) will still work though.
* still have to check this for the buttons!
there)
* replaced with nice local (uiBlock) storage of what goes on in drawing.
it now only calls a glDrawBuffer() and glFinish() when it is actually
needed
Result: interface drawing in general is speedy again, especially for gfx
cards that dont allow frontbuffer drawing, and copy stuff to the frontbuf
with a glFinish() call.
Needs to be tested on all platforms... report to me when you see problems
like menus not drawing correctly, tooltips not drawing or not disappearing,
etc.
rendering the current view (view3d header, render) didn't render solid
drawmode.
found missing opengl initialization calls in opening renderwin.
probably remains from ghost migration.
it is from zr, a note to remind him to have better drawing of procuderal
duplicators in Blender. the code below that comment was mostly a copy
from code it used before already.
writing it more efficient would give a gain of about 20 code lines...
is empty (no $HOME/.Bfs and first time use of FileSelect) it was empty,
causing a nasty drawing error.
It now doesn't draw the menubutton when there are no preset dirs yet.
- removed 'unused variable' warnings from space.c
- projects vertices without clipping code (xs at 3200)
- sets flag in editvert ( eve->f & 2) when it is not visible
general note: that flag is only valid after the calc_meshverts_ext_f2
call. it is a free flag. be aware that selection
is stored in bit 1 (eve->f & 1)
databrowse didnt work in NLA editor, for a SHIFT+A "add action"
note: the databrowse is a bit out-focus here. the NLA editor is not yet
well integrated with blender standards. For example, there is no awareness
of an 'active' strip in the editor, which makes a bit clumsy code. It needs
some more work... options in the window header etc.
in NUM or NUMSLI buttons. It's the last but one argument...
i really have to put the interface.c API doc back!!! :-)
(get probably killed for the fact that i have it)
these calls were done without anything actually happening, for each
mouse move, and caused quite some slowdown at OSX.
Might help the other platforms as well. Check it by just moving your mouse
around, over window edges, buttons, etc. Especially Radiosity buttons
were horrible slow in a large window
Please be aware that the above calls cause a swapbuffer at OSX!
eat up cpu time.
in fact it was in pre-ghost blender already.
works now for all posix OS's, except for windows. now working on getting
that fixed as well. until then, rendering will be slow at win32...
cvS: ----------------------------------------------------------------------
confusing functions which were only used once.
Part of examining how renderwindows get opened/closed, and to enable
a third option for render output to ImageWindow in Blender