bf-blender / Windows & Linux (2005/05/11)

User-contributed CVS development builds. Please test and give feedback!

Moderators: jesterKing, stiv

Posts: 0
Joined: Thu Jan 15, 2004 6:41 am
Location: Canada - Québec - Sherbrooke

bf-blender / Windows & Linux (2005/05/11)

Post by gabio »

This may be the last build before b-cons 4. So 2.37 will almost look like this build. please test all new feature since 2.36.

Note: New timeline windows, Clean up of tranform, New python stuff(space handler).
***International disabled. I couldn't get it to work***

Done with MSVC 7 and scons for windows
GCC 3.4.5 with scons for linux, 2.3.5 glibc
Relevant feature:
-UI cleanup work: Proportional edit button, some other editmode buttons.
-added load font support to Text3d submodule
-Added the new Timeline Window, copied from Tuhopuu, coded by Matt Ebb.
-Added: new Pivot option, "Around active object".
-lots of new python goodies, even more control on blender.
-Animated UI for TimeLine "Play"

Bug fix #2507

While doing a viewmove/rotate, the queue was not emptied nor read...
so after a while the entire queue gets full, not registering a modifier
key-release anymore. Fixed :)

Reported error confirmed in windows and OSX.

UI cleanup work;

Proportional edit:

- Proportional mode added to header as button/menu. Including new option
to have only connected geometry influenced.
- Added icons for proportional & proportional modes
- Make proportional edit data part of Scene, so all gets saved.
The Global flag G_PROPORTIONAL was removed
- Made sure #defines get used properly, also tweaked order for proportional
so it starts with regular 'smooth' by default.
- Use ALT+O in editmode to switch to new proportional 'connected' mode

Other UI stuff:

- in EditMode, the layer buttons get hidden... the amount of icons in
3d header grows to fast. :)
- made less ugly icons for the Manipulators. Still can be better.
- Added alpha-filter for pre-processing Icon-image, giving nicer display
of icon-antialising on dark or bright backdrops
- disabled Manipulators when in editmode, and current layers don't show
the edited data.
- Added the value used to define Normal size (editmode draw) in Scene too,
so it gets saved.

Bugfix #2506

Sky type "Paper" didn't give proper dx/dy texture frequencey in OSA render.
Remainder of render recoding of last january.

Mirror function reuses new Transform (basicly calls the split off ElementResize function on the data).
Updated the menus to work with that too.

Of course, this doesn't work in object mode right now, because resize I haven't fixed negative resize (yet).

Again, this would have easily benefited of a stand alone init and post Transform functions. When I have time... :|

Another big cleanup, thanks to transform recode. Could do this stage
because Martin recoded the Mirror().

- removed old globals like 'tottrans' or 'centre' or 'centroid' as used
by old transform
- removed a lot of code from editobject.c
- moved all transform related code to transform_conversions.c
(Note for Martin; sorry that's a mess... it now has all the weird
functions for finding posemode dependencies... thats for the depgraph
phase to remove)

On click-release for Manipulator handles, without moving mouse, it will
stick to transform() until another mouse press (or ESC etc)

added load font support to Text3d submodule

print a msg about which Python version we are using
before the evil "'import site' failed" msg appears.

Added the new Timeline Window, copied from Tuhopuu, coded by Matt Ebb.

Main change is that it's an own Space type now, not part of the Audio
window... the audio window should restrict to own options. This way
functionality is nicely separated.

Since it's the first time I added a new space (since long!) I've made an
extensive tutorial as well. You can find that here: ... 557.0.html

Notes for using timewindow;

- Add time markers with MKey
- CTRL+M gives option to name Marker
- Markers cannot be moved yet...
- Pageup-Pagedown keys moves current frame to next-prev Marker
- Xkey removes Markers

- If an object has Ipos or an Action, it draws key lines
- CTRL+Pageup-Pagedown moves current frame to next-prev Key

- Press S or E to set start/end frame for playback

Notes about the implementation in Tuhopuu:

- Add new Marker now selects new, deselects others
- Selecting Marker didn't work like elsewhere in Blender, on click it
should deselect all, except the indicated Marker. Not when holding SHIFT
of course
- Not exported functions are static now
- Removed unused defines (MARKER_NONE NEXT_AVAIL)
- Drawing order was confusing, doing too many matrix calls
- Removed not needed scrollbar, added new function to draw time values.
(Has advantage the MMB scroll works not confusing on a scrollbar)
- Added proper support for 'frame mapping'
- The string button (name Marker) had a bug (checked str[64] while str
was only 64 long)
- String button itself didn't allow "OK on enter"
- Made frame buttons in header larger, the arrows overlapped
- Removed support for negative frame values, that won't work so simple!

Two little issues for Timeline window;

- Using Arrowkeys to change frames didn't give proper redraw
- Option "Record" now tied to the User-preset "Auto key insert". It is
no user preset anymore even, I thought to leave a button in the User-
presets for the time being though...

Finetuning Timeline;

- Added Ckey for 'center view around current frame'.
- Completed View pulldown menu with remainder of options.
- prevented negative scaled views when start > end frame

Bug fix #2414

Quat XYZW was mixed up in NKey panel for Armature... now OK.

Bug fix #2515

Bumped up ipo limit for material "normal" mapping to 25.0 max.

Bug fix #2512

When joining Meshes, with the active on having TFaces, and other Meshes
not, the new TFaces were created but not initialized.

Fix for crash in Mesh EditMode "Join triangles" (JKEY). Found & code
provided by Campbell Barton, thanks mate! :)

Note; this tool gives quickly bad results... also errors printed in the
give_quad_verts call. Who likes to attack this!

* integrate bFTGL with Scons
* add some ENV = os.environ's here and there (help those who have msvc toolkit installed)

Note for OSX users: check from your config.opts the correct info for the precompiled ftgl lib is used.

Commit of 2 weeks ago to correctly find normals for extrusion had a typo...
started loop with "->last" instead of "->first".
This caused old faces that should be deleted on extrude to remain there.

Thanks Jean-Luc for finding it!

Added two UI level warnings on using Softbody;

- On leaving editmode, it deleted the Baked result automatically. Since
that's an invisible and destructive ction, I've inserted an "OK?" menu
here for it.
- Particle Deflectors themselves cannot be a Softbody (or viceversa).
Added a LABEL button to denote this when a user tries to set that.

Patch from Tom Musgrove to bypass extrude popup on singular selections...
Implementation had some issues though, since:

a) Blender has no stats available that tells amount of selected edges
b) Bypassing the popup should be 100% accurate
b) Once you do that, the popup should actually only show possible
choices as well.

So! I've added a G.totedge and G.totedgesel, also being printed in the
info header. Using this variable the extrude popups could be limited too.

Also: made 'normal alignment' for edge-only selections work when the
normal wasn't pointing OK. Now it aligns the Z axis with the edge itself
Exact algorithm for choosing a 'normal' and 'plane' still is weak.

Fix for negative scaling & Mirror menu in Object mode (CTRL+M)
Hope Martin likes this simple hack. :)

Also; added flag in constraint to denote whether its local or not. That
way its possible to:

- prevent local scale and rotate on multiple objects to change own position
- draw constraint lines cleaner

Added: new Pivot option, "Around active object".
Works nice quick to rotate a group of Objects around a defined center,
without hassle with the 3d cursor. Especially for the 3D Manipulator.

In EditMode/PoseMode this option falls back to "Centroid", as does the
"Individual centers" option already.

UI goodies & cleanup

- TimeLine: Marker grabbing works now. Use GKEY or select+drag, as usual
Holding CTRL will step with 1 second (corrected for ntsc dudes yes!)
Also added this in header pulldown

- Time values and Time grid draw fixed for Seconds display. It used to
draw steps of 2/5/10/20/50/100 etc. frames. Now does steps in seconds.
Again corrected for "Frames/Sec" value.

- "Frames/Sec" button redraws TimeLine, Secquencer, etc

- Bug fixed in editing Theme for TimeLine (was editing Image Select...)

- Added Grid color to Theme choices for Ipo, TimeLine, Sequencer, NLA,
Action, Sound. Was missing!

Another Transform todo: correct Undo names for using Transform.

Martin; I've added calls like:
BIF_TransformSetUndo("Add Duplicate");
In advance of calling transform itself, to indicate that this is the
string name to be used for Undo, and also has to be done on ESC.
To make that possible I had to add a memset() to zero the global struct
TransInfo. Nicely done with if(Trans.mode==TRANS_INIT)

Not sure how this relates to setting constraints in advance... I always
found it tricky to work a non-initalized global struct. :)

Timline goodies;

- Mkey while ALT+A inserts markers.
Note for Matt; You forgot to check for 'val'. The delay in tuho I brought
back to max 1 frame. Delays are common in realtime gfx apps, the picture
you see is old, and its possible you press a key while next frame is
already drawing, and then it has to increase the frame value still... :)

- RMB escapes from anim playback

- on activate object, Timeline redraws too

- Added keyline drawing for Material Ipos. The CTRL+Page keys work with it.


- Renamed buttons to call "Spring constant" now "Stiff(ness)" and the
"Friction" became "Damping".

Bug fix #2528

Transform on "ipo keys" gave crash on ESC, due to non initialized pointer.
(Martin; that idea to not calloc new data... grumble!)
Note; that's another Margarita for Randall, at the Figueroa pool. :)


- Made Blender.event var (previously only used by script links) hold ascii value -- where it applies -- of current event during events callback registered with Draw.Register(gui, events, button_events). Useful for gui scripts like Campbell's Python console. No problem using this var to hold the value, since in gui scripts it was not used (always None).

- Updated Window and Window.Theme with new theme vars and the Time space.

- Script links:

-- Added "Render" event for script links (runs twice, second time as "PostEvent", for clean-up actions). Now FrameChanged links don't run when a single pic is rendered.

-- Added "Enable Script Links" button in the script buttons tab. Now this bit gets saved in .blends along with the rest of G.f, so users can define per .blend if they are on or off by default. "blender -y" also disables all slinks as happened before with OnLoad ones only.

-- Other small changes in the script buttons tab:
When a link is added (button "new"), it becomes the active one for the window, no need to press a button to reach it.
Also, a pupmenu showing all available texts is shown when "new" is pressed, so users can choose a text w/o having to type. Cancel the popup to leave the string button empty (link exists, but has no script assigned). A pulldown would be better UI-wise, but it's kinda weird to show both scripts and normal texts (Blender doesn't differentiate them) in a script links pulldown. With a popup we can show only texts ending in ".py" (not done in this commit, need opinions) and if the script has no or another extension, case of many in old and current .blend's, there's still the string box for writing its name.

-- Implemented Ton's space handler script links:

Right now only for the 3d View, but it's trivial to add for others. There are two types: EVENT, to receive 3d View events from a chosen window and DRAW, to draw on the window. Ton's idea was to give scripts a controlled way to integrate better within Blender.

Here's how it works:

- scripts must have a proper header, like:

and then they are shown in 3d View's View menu, "Space Handler Scripts" submenu. Check (mark, click on it) a script to make it active.

EVENT handlers should consult the Blender.event var to get the current event, which can be compared with values from the Draw module:

import Blender
from Blender import Draw

evt = Blender.event
if evt == Draw.AKEY:
print "a"
elif evt == Draw.LEFTMOUSE:
print "left mouse button"
return # ignore, pass event back to Blender

Blender.event = None # tell Blender not to process itself the event

DRAW handlers are free to draw to their owner 3D View. OpenGL attributes and modelview and projection matrices are pushed before running the handler and poped when it finishes.

To communicate between EVENT and DRAW handler scripts we have the Blender.Registry module, as always.

Still need to code some nice example, which should also serve to test properly space handlers. Simple tests went fine.

- doc updates about the additions.


Note: the UI part of the space handlers and script links is of course open for changes, I just tried to make it understandable. Probably we won't use the scriptlinks icon for "None Available" (check 3d View -> View -> Space Handler Scripts), though it hints at what space handlers are. The tooltips may not be accepted either, since other menus don't use them. Opinions welcomed.

bugfix #2494:
parented linked data lamps made the export crash.

fix for two bugs reported by Diego Pino, an endian issue with vertex colors,
and the plugin code didn't export multiple colorbands correctly.

Updated the ortho camera export code for the new Blender ortho camera model.

New buttons image, with fix for slightly offset icons in top row.

Fixed rotating, didn't take parent into account properly (hmmm, I'm sure this worked before).
That was bug #2516: ... group_id=9

Also turned back some changes Ton did to drawing object constraint lines. Explained the why in a longish comment.

Forgot part of the vertexcolor endian fix in xml export code.

Fixed an as of yet unreported bug, linked data objects which have materials
linked to object instead of data have to be exported as normal, they cannot
be instanciated, otherwise they will all share the same material.

Found some time do sanitize the big Transform call:

- Splited off the event treatment into a fonction of its own
- Splited off the initialisation phase into a function of its own (will have to do it for the manipulator function too)
Calling transform now works like this:
initTransform(mode, context)
- possible post init calls, constraints mostly
- eventually, the postTransform function, so that Transform is just a simple big loop which could in the end just be tied in the blender event system instead.
- Added a state variable in TransInfo to replace the ret_val local variable. Possible values are: TRANS_RUNNING, TRANS_CANCEL, TRANS_CONFIRM
- Tied MMB and the hotkey select for constraint together, so selecting an axis with MMB and pressing the axis key after that goes to local mode on that axis. Much less confusing.

Animated UI for TimeLine "Play"

Using the Play button in timeline, now uses an event-driven system to
update the animation system and signal windows to redraw. Meaning the
full UI remains responsive!

Check the new Pulldown "Playback" to set which windows you like to see
updated. Same settings is used for LMB 'dragging' frames in Timeline.

Implementation notes;

- the Icon for 'Pause' (or stop) has to be made yet, I commit this from
my laptop... all was coded during a 2 x 5 hour train ride to germany
- the anim playback system (ALT+A too) now uses correct "frames per
second" as maximum speed. Buttons can be found in 3 places in the UI,
also added it as pulldown item
- The system works with 'screen handlers', which has been coded with
using Python (networked) events or verse in mind too. A doc on that
will follow.
- the buttons code has been made 'resistant' to animated UIs too,
preventing flashing of hilites.
- All subloops (like transform) stop playback, with exception of MMB
view manipulations.

As extra; found tweak to make Textured AA fonts draw without distortion.
Looks perfect here on laptop now (like Pixmap fonts) and is 20x faster.

Correct "Pause" icon for timeline header.

Removed frontbuffer updating in FileWindow. Not only fixes annoyances on
graphics cards (ATIs mostly) but solves drawing errors of hilites while
scrolling. Especially apparant in 'animated UI mode'.

Another update on FTGL texture fonts drawing. Added the same floor() trick
to precisely align the glyphs to pixel coordinates as used in the Pixmap
version. It now looks fully identical here.

- it was imposible to select one of two markers laying at the same frame ... this
problem is solved now. Drawing of markers is little bit hackish, because it is
neccessary to draw unselected markers at the first time (unselected marker can't
hide selected marker ... visual information about selection would be lost)

A new build is available
Last edited by gabio on Fri May 20, 2005 11:49 pm, edited 2 times in total.

Posts: 0
Joined: Wed Oct 22, 2003 2:54 pm
Location: Brasília - Brazil

Post by arangel »

Great news... so many improvements over 2.36 !
Any chance of getting the "Esc key doesn´t quit runtime" feature in the 2.37 release?
Alexandre Rangel
Multimedia Designer

Posts: 0
Joined: Sun Apr 24, 2005 9:36 am
Location: Germany

Post by tuxbot »

Posts: 0
Joined: Wed Jan 21, 2004 3:27 pm

Post by Bellorum »

The new timeline stuff rox!:) Just one thing - it's kinda annoying that ctrl+m for naming markers don't let you do that immediately, but you have to click in the textarea first.
There's no such thing as democracy. There's only the tyranny of one, and the tyranny of many.

Posts: 0
Joined: Wed Jan 12, 2005 2:29 pm

Post by dsp_418 »

Under Language / fonts cannot change the fonts anymore ... nothing appears, it seems a bug to me.

Posts: 15
Joined: Thu Oct 17, 2002 10:20 am
Location: Berlin, Germany

Post by thoro »

I've got trouble loading fonts (I'm using the Windows version on XP).

And if I load a Blend file from a previous Blender version text objects with non internal font don't show up properly and crash Blender if I try to edit them.

Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm

Post by joeri »

Bellorum wrote:The new timeline stuff rox !:)

Minor visual glitches:
Swapbuffer flipping of frame number is button window header when pressing play button of timeline.

Feature request: Insert IPO key in timeline.

Personaly I find it confusing that the 'next key frame buttons' jump to the next keyframe and not to the next marker.
The other tapedeck buttons are window related, not object related (sortof; goto firstframe works if no object selected)
Although this is understandable I'd suggest a better separation between object-select-needed and no-object-select-needed functions.
Maybe |<< & >>| can jump to markers as well as keys, so if no object selected (or object with no keys) it jumps to markers and with an object selected it jumps to markers and keys.

Posts: 0
Joined: Wed Jan 21, 2004 3:27 pm

Post by Bellorum »

thoro wrote:I've got trouble loading fonts (I'm using the Windows version on XP).

And if I load a Blend file from a previous Blender version text objects with non internal font don't show up properly and crash Blender if I try to edit them.
***International disabled. I couldn't get it to work***
Not that I know anything about this kind of Blender stuff, but this might have something to do with it?
There's no such thing as democracy. There's only the tyranny of one, and the tyranny of many.

Posts: 3
Joined: Thu Oct 17, 2002 11:01 pm

Post by HiNMity »

The timeline is cool. I have a few questions though.

How can i set my timeline to begin from 0 or below?

Is it possible to customize the timeline snapping/steps to other than the playback rate?

And is the fullscreen button going to be available in 2.37?

Posts: 0
Joined: Wed Jan 21, 2004 3:27 pm

Post by Bellorum »

HiNMity wrote: And is the fullscreen button going to be available in 2.37?
Don't hold your breath :roll:
There's no such thing as democracy. There's only the tyranny of one, and the tyranny of many.

Posts: 0
Joined: Fri Sep 24, 2004 9:25 pm
Location: Enon, Ohio USA

Post by DYeater »

Imagine my surprise when I noticed that the audio time line (are you keeping that?) and the new time line window have different scales. Just thought you would like to know.

Stick one on top of the other, press home in each ... set one up for seconds and the other up to frames and notice that at 30 (in my case ... ntsc) doesn't line up with 1 second in the other scale. Of course if you set them both to seconds or frames, you'll notice that they do not match.

Posts: 1
Joined: Mon Nov 25, 2002 9:05 pm

Post by Room335 »

Sorry if this was mentioned before.

The lightwave Export script isn't working.

Posts: 0
Joined: Tue Nov 23, 2004 7:31 pm
Location: Poland

Post by kxs »

that timeline window is cool. but is there any shortcut for it?

Posts: 0
Joined: Tue Nov 23, 2004 7:31 pm
Location: Poland

Post by kxs »

" - in EditMode, the layer buttons get hidden..."

I don`t know if this is good idea.

Connected Proportional is OK but it`s icon isn`t ;) Maybe make it a little more different from Proportional ON

Post Reply