http://projects.blender.org/tracker/index.php?func=detail&aid=4200&group_id=9&atid=127
It adds platform depenant prefix to function calls
(extern on non windows platforms more complicated on windows)
So that windows plugins can reference functions inside of blender.
there is a small TODO still...
Make release should build the helper library required under windows and modify
how they build the plugins:
dlltool --input-def plugin.DEF --output-lib libblenerplugin.a --dllname blender.exe
and the pulgins should be made with:
gcc -c (pluginname).c
gcc -shared -o (pluginname).dll (pluginname).o libblenderplugin.a
Kent
Code to allow "Env" material to mask out ztransp gave bad AA on edges of
solid faces, when transparant was behind it.
Recoded "Env" to use index -1 in the polygon index buffer, and restored
code that caused the bad AA.
as tabs of the format panel (was annoying how the format panel
would jump far to the right after selecting format' Thanks ao2
for noticing.
Note: as self-appointed code weenie, I should point out that the
ffmpeg code has a lot of tab/space indenting mixed in nasty
ways -- this should be fixed.
NOTE: stucci didn't return 'intensity' since blender 1.0, something that
alsways caused headaches all over (all other textures do per definition).
But, allowing stucci to return 'intensity' would break old files.
To make it work for preview, I had to solve this once. Done with a version
patch, so old files (including current 2.41!) won't read with color channel
active for Stucci textures.
(Preview.blend I saved as a 2.42 file btw!)
By default it is disabled (depth 0.0), so rendering is as usual.
The meaning of "depth" and "falloff" will be extensively shown in the
release log pages. Coming soon!
(Patch provided by Ed Halley)
The (SHIFT+F4) databrowser showed the library file (added some months
ago) which didn't work for extremely long directory names well.
I've recoded it, so it now only shows the .blend name, not entire path.
- STUPID mistake from me in setting the waitcursor...
- icons for UI got freed, without checking if it existed (crash in end)
- call to close mainwindow didn't check if window existed
note:
I usually test the "blender -b" case, which should start blender,
initialize all, free all, and print "blender quit" to signal all is fine.
Help->System->Benchmark (the Tkey benchmark) returned timings even if
user cancelled the pupmenu. Was just missing a check
for -1 in toets.c -- wonder how old this one was... Reported by Wim Van
Hoydonck.
Scripts:
- Updated Jean-Michel's hotkeys script for Blender 2.42.
- Followed Pieter Visser's suggestion and added version info to the menu
names of the older collada scripts (v1.3.1).
Thanks guys!
Note for builders: nevermind if you already compiled 2.42RC1, these
updates are not critical at all and can be left for the release or RC2.
- restored type choice compatiblity (plane, sphere, cube) with 2.41 release (sorry, will break saved files with CVS... my fault, should
have known.)
- removed lamp choices (lights now are different per preview, no fixed
choices).
- added checkered plane behind the plane preview. nicer for halos.
Files saved with new cloth modifier patch crash in cvs blender. (#define
for cloth is 13 even!). This was caused by lack of upward compatibility
for non existing modifiers.
Also added giant warning in code for the ENUM for modifier types.
Mixdown option (blending sequence audio strips) didn't write proper WAV.
- file length in header chunk was too short (potential crasher)
- endian switch code used swab(), which wasn't defined to work when src and
target is identical
- cleaned up some code too... like removing timecursor() for core loop.
New "Dimension" button: when using TAB to cycle over buttons, the dimension
event was sent multiple times, accumulating scaling. The code was also not
prepared to handle multiple changes at one event.
Also: added object_get_boundbox(Object *ob) in BKE_object.h, so the code
now really supports most primitives in Blender.
Moved .up() and .down() methods from Constraint API to Constraint sequence
API (also renamed them to moveUp() and moveDown() ). Again, methods which
modify the "parent" structure didn't seem consistent.
Moved .up() and .down() methods from Modifier API to Modifier sequence
API (also renamed them to moveUp() and moveDown() ). Locating methods
which modify the "parent" structure in objects didn't seem consistent.
Particles: option "even" failed when faces where all exactly same sized,
then it sometimes skipped entire faces.
Just the regular <1.0 that had to be <=1.0
Old issue... Blender saves jpg RGBA files. That's unsupported in all
programs except Blender, always a source of problems with that feature.
Now it just falls back to saving 24 bits when the "RGBA" option is set.
- if current visible area shows render result; use this
- else: search for largest non-Image area (so it won't use Texture or
Composite outputs)
- else if only 1 available window it uses that one.
Works for both new options (fullscreen too). Especiall fullscreen works
much better, since it uses an own designated Image Window by default.
2006/01/28 commit from Campbell forgot to check for proper pointer:
if(seq->sound->stream==NULL) return;
should be:
if(seq->sound==NULL || seq->sound->stream==NULL) return;
Nkey "Properties Panel" now has Dimension ("Dim") buttons too.
This reads from the actual bounding box value to see the size. Note that
dimensions for animated & deformed objects will change per frame.
(Cleaned up buttons layout for patch, and added support for Curve, Text and
Surface objects)
- MINGW should compile too now (was problem when fucntionality was first introduced), tested with MINGW 5.0.2 (scons)
- added -lshell32 for the dependency on MINGW
Next to the "DispWindow" there are now two new choices:
- Display render output to Image Editor
- Display render output to Screen-sized Image Editor
Both options won't open a 2nd window anymore, which makes work quite more
smooth even, especially because 'focus' isn't lost. Further it fits in the
'single window UI' paradigm of Blender. Should have been done 10 years ago!
Lastly it might bypass issues with X11... having 2 windows with opengl
context is not always stable in Linux.
This option uses an identical trick as for the Compositor viewer, using an
Image block with a fixed name ("Render Result").
The flow, when invoking a Render, goes as follows:
- first it checks if there's an Image Editor visible displaying the "Render
Result", if so then it uses that area-window.
(Use this option for dual-monitor setups for example, a render will always
go to the same location then)
- else it checks if there's an Image Editor open in general, it then
assigns that window the "Render Result" Image.
- else: it searches for the largest Area in the screen, and turns that into
a temporal Image Editor showing render output.
After a render, an ESC will push back the former view, if the Area type has
changed.
Same rules apply for the "Full Screen" option. Here an ESC will always go
back to the regular Screen, and restore Area type if required.
While rendering, the queue for the renderwindow isn't handled yet, so you can
not zoom (nor get full redraws), as for the regular render window.
Existing conflicts:
- in FaceSelect mode, the Image editor enforces to display the face texture
after rendering again.
- when using an Image window for compositing, you'll lose the Viewer output
on a render.
Implementation note:
While rendering updates, nothing is drawn in frontbuffer anymore. That's
good news for b0rked OpenGL drivers (and faster). However, for the few
OpenGL cards that don't do a "swap copy" but a "swap exchange" you get
issues... has to be worked on. I'm afraid we have to drop frontbuffer
drawing altogether.
Other fixes:
- Hotkeys NumPad 1, 2, 4, 8 will set zoom levels (was half coded only?)
Use SHIFT to zoom out (smaller).
- Rendering Tile updates still had draw errors on edges of tiles, in OSA
only. (Caused by commit 4 days ago)
Users can write any valid Python expression (that evals to an int or float) inside Blender's gui number buttons (preceded by #) and have them evaluated to their actual int or float value.
Button Evaluation has access to the same modules as PyDrivers.
For example:
#1.0*9-2.3
#ob("Camera").LocZ
#1.0/ob("Cube").LocX
#math.sin(math.pi) -- or simply #m.sin(m.pi)
etc