* Blender static now links. By default this option is disabled on all
platforms. Simply set the option in config.opts to 'true'.
* Added the following flags to config.opts:
- HOST_CC. This is the C compiler for the host platform. This value is the
same as TARGET_CC when not cross compiling.
- HOST_CXX. This is the C++ compiler for the host platform. This value is
the same as TARGET_CXX when not cross compiling.
- TARGET_CC. This is the C compiler for the target platform.
- TARGET_CXX. This is the C++ compiler for the target platform.
- TARGET_AR. This is the linker command for linking libraries.
- PATH This is the standard search path
All SConscript files have been updated to reflect these changes. Now it's
possible to change only the root SConstruct file, and all compiler specific
variables are passed automatically to all SConscript files. Of course, this
does not apply to makesdna because there the host and target platform is
different from all other libraries.
To pass a variable that applies to all platforms, all we now have to do is
set the correct value in library_env
Note: as usual, to get the latest options in the config.opts file, first
remove your version.
- support for quaternions, euler, vector, matrix operations.
- euler supports unique rotation calculation
- new matrix memory construction and internal functions
- quaternion slerp and diff calculation
- 2d, 3d, 4d vector construction and handling
- full conversion support between types
- update to object/window to reflect to matrix type
- update to types/blender/module to reflect new module
* Added the options to build (configurable via config.opts):
- blender dynamic (default enabled),
- blender static (default disabled). Not working because of a linking order
problem. The /usr/lib/libGL.a and /usr/lib/libGLU.a flags need to be
appended at the end of the link command, not directly after the linker.
Mailed the SCons mail list for a possible solution.
- blender player (default disabled). Not implemented yet anyway.
- blender plugin (default disabled). Not implemented yet anyway.
* Added the following variables to the config.opts:
- OPENGL_STATIC. This flag is only needed when building blender static.
- USE_BUILDINFO (true/false). Display build information in the splash
screen. When enabled, it will always rebuild source/creator/buildinfo.c,
so for compilation speed reasons, it is not adviced to enable this all the
time.
I had to make some adjustments specifically for the windows build
(winblender.res) file. This file is only compiled when building the dynamic
blender. I hope this is correct.
* OpenAL support is now available on Linux. By default this feature is
disabled since it is only necessary when building the game engine. And the
game engine is disabled by default as well, so...
* Added 3 configurable options to config.opts. These apply to OpenAL settings.
NOTE: remove your current config.opts file to get the new options. (remember
your current settings though ;) )
2nd NOTE: All options* are now configurable via the config.opts file. If the
default settings for your platform are not correct, you should be
able to only update the config.opts file.
* FMOD is still not available - and I do not know if it is necessary to
enable this feature.
* Removed the I18N_DEFINES from the config.opts file. This define is not a
user setting. The defines depend on what options the user enables in the top
of the config.opts file (USE_INTERNATIONAL).
* Moved the defines to the correct SConscript files.
Only the relevant libraries now use these defines.
* Windows fix for the python settings. There were missing brackets [ and ] for
these settings.
* Game engine can now be build on Linux. By default this feature is disabled.
The reason is that you need to have a precompiled version of the ode library
for your gcc version.
To enable ode support you need to do the following:
- compile ode.
- set BUILD_GAMEENGINE = 'true' in the config.opts file.
- set USE_PHYSICS='ode' in the config.opts file.
- set the ODE_INCLUDE and ODE_LIBPATH to valid locations.
* Linking order has changed for the game engine
There are cyclic dependencies between libraries. On linux we have to do some
duplicate linking. I looked at the order of linking in source/Makefile, and
did some clean up.
* Internationalization support is now available on Linux. By default this
feature is disabled. The reason is that you need to have a precompiled
version of the ftgl library for your gcc version.
To enable ftgl support you need to do the following:
- compile ftgl.
- set USE_INTERNATIONAL='true' in the config.opts file
- set the FTGL_INCLUDE and FTGL_LIBPATH to valid locations.
Freetype2 is detected automatically on your system by using pkg-config.
There was a problem with linking libraries. I took a look at how the
Makefile environment did it, and copied the mechanism. Now we're linking:
freetype, blender_ftf, ftgl and freetype. (Yes, 2x freetype).
* Minor variable cleanup.
sdl flags are now collected in one Environment() in stead of two. Adapted
all relevant platform variables accordingly.
* Almost all library settings are now available in the config.opts user option
file.
* All platform variables had to be updated to make this possible. Things are
much clearer now, but I only was able to test the changes on Linux. I've
tried to update all other platform variables, but things are most likely to
be broken. Please contact me how to resolve the issues.
Note: Before running scons, remove your existing config.opts file to get all
new options.
I added to this patch some code for keying size too ... please test.
This probably fixes bug #602, but I can't say for sure: Guignot's
poor ol' example blend no longer opens in blender (not since 2.26).
Release notes remark: Bug causing inconsistent baking of actions fixed.
* libraries are now generated in [BUILD_DIR]/lib
* passed the user_options to all libraries now.
This means I could remove a couple of Export/Import lines.
* Changed the order in source/blender/src/SConscript and
source/gameengine/SConscript.
All libraries are now sorted alphabetically. This has no impact on the build
process.
scriptlinks are executed.
This fixes bug #997.
Note: this fix does not need to be mentioned in release notes (problem
was caused by the recent armature speedups).
There was two switch where only one was needed (which caused an event to register in two different actions under some conditions). I merged both of them, which not only made the code a lot clearer but also safer.
Fixed the Home and End case which didn't update the display correctly.
I've tested it for some time, so I'm pretty sure nothing is broken.
- Fixed up the paths for "/lib/..." in csg.dsp
Quick note: Currently intern still builds the old lib (bsplib).
To compile the new lib (when everything is ready for it), uncheck
bsplib from the dependancies in build_install_all and replace with csg.
Will eventually drop bsplib completely - but not just yet :)
As mentioned earlier on bf-commiters mailing list, there is no current *nix make file only an msvc60 project file. I only have a linux box at work and to be honest I want to avoid doing any commits from there! So if some kind soul could sort it out that would be great.
Dependencies:
This code only depends on other stuff in the intern library, moto and memutils the CSG lib needs to have their include paths to compile. Other than that its completely self contained.
Acknowledgements:
To speed up the polygon-polygon intersection queries I've used some code (under the GPL) from freesolid2.0 this clearly marked in the appropriate files and Gino van den Bergen still owns the copyright to that material. The algorithm I used in based on one from Paul Nettle described on flipcode (www.flipcode.com) and I think his work was a derivative of the "Laidlaw algorithm"
There is also some basic 'ear clipping' triangulation code that unfortunately remains unatributable. I have no right to publish this code under the GPL nor BPL for that matter as I have no idea who the original authors are. Its just one of those random bits of internet code.
Warning!
The stuff used a lot of C++ template features, which on one hand makes it very generic but on the other means that some work will need to be done to get working with other compilters. The msvc60 compiler is not very compliant to the C++ standards with respect to templates so its very difficult to say if this code will compile out of the box on other platforms.
I still haven't committed modifications to booleanops.c in the blender code as without a working library to link to it will break the current build. This needs to be done first!
Improvements
This code is much simpler than the previous bsp implementation see intern/bsp and this old code should be deprectated/removed. However, whilst this implementation produces less triangles in the output than the bps algo, its still not an optimal solution. This is just hard to do and beyond my humble skills.
License:
Just to make it clear this stuff for the reasons mentioned above and for the fact I'm to mean to give the copyright away to BF is licensed under the GPL only.
Cheers,
Laurence.
* All output is now generated in a seperate directory. By default this is
../build/
Currently all .lib / .a files are still build in lib/
So, I guess I need to update all SConscript files to build the lib now also
in the build_dir. TODO
* User configurable options have been added.
When running SCons for the first time, a new config.opts file is generated.
The defaults are taken from each section currently in SConstruct.
Currently implemented options:
- VERSION // Blender version. not used at the moment
- BUILD_BINARY // release or debug
- BUILD_DIR // target directory to build intermediate files
- USE_INTERNATIONAL // true or false
- BUILD_GAMEENGINE // true or false
- USE_PHYSICS // ode or solid
- USE_OPENAL // true or false
- USE_FMOD // true or false
- USE_QUICKTIME // true or false
Note that all options are strings, so quotes are necessary (')
There's currently some duplicate code in the SConstruct and SConscript
files, but this currently works and cleanup can be done in small steps
afterwards.
* Disabled international support on Linux by default for now.
There is something wrong with this currently. I'll fix it in the near
future.
Rotation and Scaling so they have R and S instead of all 3 having G as
the shortcut.
(Its in the transform/Rotate on Axis and transform/Scale on Axis toolbox items.)
Kent
bones in one armature that were constrained to bones in another
armature, which in turn were constrained to a non-armature object
weren't getting updated correctly.
This fixes bf-blender bug #955 (thanks Appolux).
Note: This commit need not be logged in future release notes (was
caused by recent armature speed ups).
HoR, HoG, HoB tooltips talked about Zenith instead of Horizon.
added (F6) to the texture tooltip. He also mentioned F5 but
the F5 is already there its just context sensitive and the
sub menus do not have the shortcut.
Kent
- tiny harmless change in module Blender.Material's *doc*.
Aphex: tested your fix for windows (thank you -- and Bill Baxter for reporting):
It doesn't break anything here (linux). So probably no need for #ifdef's.