Render:
- New; support for dual CPU render (SDL thread)
Currently only works with alternating scanlines, but gives excellent
performance. For both normal render as unified implemented.
Note the "mutex" locks on z-transp buffer render and imbuf loads.
- This has been made possible by major cleanups in render code, especially
getting rid of globals (example Tin Tr Tg Tb Ta for textures) or struct
OSA or using Materials or Texture data to write to.
- Made normal render fully 4x32 floats too, and removed all old optimizes
with chars or shorts.
- Made normal render and unified render use same code for sky and halo
render, giving equal (and better) results for halo render. Old render
now also uses PostProcess options (brightness, mul, gamma)
- Added option ("FBuf") in F10 Output Panel, this keeps a 4x32 bits buffer
after render. Using PostProcess menu you will note an immediate re-
display of image too (32 bits RGBA)
- Added "Hue" and "Saturation" sliders to PostProcess options
- Render module is still not having a "nice" API, but amount of dependencies
went down a lot. Next todo: remove abusive "previewrender" code.
The last main global in Render (struct Render) now can be re-used for fully
controlling a render, to allow multiple "instances" of render to open.
- Renderwindow now displays a smal bar on top with the stats, and keeps the
stats after render too. Including "spare" page support.
Not only easier visible that way, but also to remove the awkward code that
was drawing stats in the Info header (extreme slow on some ATIs too)
- Cleaned up blendef.h and BKE_utildefines.h, these two had overlapping
defines.
- I might have forgotten stuff... and will write a nice doc on the architecture!
* LarstiQ patched SConstruct to have it name tarballs and zips better for 'scons release'
* bump version numbers to 234
* added splash.jpg and datatoc'ed version
* add release notes
People can now do still some final tests. Can you feel the heat?
- Enabled the NDEBUG define (to disable assertions) on all platforms in scons.
This is already the default in Makefiles.
- Free MEdge data after decimating, it is not valid anymore.
* added 'scons wininst'. This will create a NSIS installer for blender.
This will need the NSIS tool in your path (makensis.exe).
The needed scriptfile will be committed seperately, so remember
to 'cvs update -d'
* tested on windows and linux, so other platform maintainers, please
check that the build process is not broken.
- after building blender and blenderplayer an archive is created in bin/ containing all necessary files
- you'll need now python2.3 or newer for SConstruct to go through correctly. This is not a problem,
since Blender requires python2.3 now anyway.
- the release target has been done for linux, win32 and os x, other platforms get a
warning message after blender has been built, just no package. See warning message for instructions
- for linux, osx and win32 the blenderplayer target has been enabled for default
- the build is logged to build.log for all platforms except win32. If you want it, you'll need tee.exe from
http://unxutils.sf.net in your path (I put it in C:\\windows) and change the first if check in the
SConstruct accordingly
http://crd.lbl.gov/~xiaoye/SuperLU/
This is a library to solve sparse matrix systems (type A*x=B). It is able
to solve large systems very FAST. Only the necessary parts of the library
are included to limit file size and compilation time. This means the example
files, fortran interface, test files, matlab interface, cblas library,
complex number part and build system have been left out. All (gcc) warnings
have been fixed too.
This library will be used for LSCM UV unwrapping. With this library, LSCM
unwrapping can be calculated in a split second, making the unwrapping proces
much more interactive.
Added OpenNL (Open Numerical Libary):
http://www.loria.fr/~levy/OpenNL/
OpenNL is a library to easily construct and solve sparse linear systems. We
use a stripped down version, as an interface to SuperLU.
This library was kindly given to use by Bruno Levy.
with all needed files in Ressources dir (.Blanguages, .bfont.ttf, locale)
and with unwanted CVS dirs and DS_Store files removed.
binary is also stripped before inclusion in Bundle.
Sconstruct modified so that Blender build on 10.3 without any additionnal
download than source + darwin libs.
defaults settings correct for 10.3.
fixed bug # 1260 : added MT_NDEBUG flag at top-level.
the directories decrypt, deflate, encrypt, inflate, readstreamglue,
sign, writeblenfile and writestreamglue.
Sirdude was so kind to modify the makefiles, so SCons and
Make are ready to build with the new Blender.
Visual Studio workspaces, solutions and projectfiles still need
to be updated (I'll do the .vcprojs and .sln myself after this commit).
Runtimes created with the Blender Publisher are not anymore
recognised - if you want these available, you'll have to convert
them first to .blends with the Publisher.
* Updates to the cygwin build.
the dna.c file used to be generated with a full path. Cygwin doesn't like
this. The problem was with some cflags and linkflags that are used to build
makesdna.exe
Hos nicely pointed this out and proposed a solution.
Now, these flags are only added to the command when the platform != 'cygwin'.
* Updated some variables in SConstruct.
[SCons] Build with Solid as default when enabling the gameengine in the build process
[SCons] Build solid and qhull from the extern directory and link statically against them
That was about it.
There are a few things that needs double checking:
* Makefiles
* Projectfiles
* All the other systems than Linux and Windows on which the build (with scons) has been successfully tested.
This is contributed by Jonathan Harris. I paste here his comments for further reference:
MSVC will open the database automatically when you debug blender.exe.
The database needs to be explicitly closed before rebuilding by removing
it from the MSVC7 "Solution Explorer" window. Add it back after the build.
TODO: .sbr intermediate files are created in the build tree. These
should be removed by a clean but aren't.
* Added the following flags to config.opts:
- PYTHON_LINKFLAGS
- PLATFORM_LIBS
- PLATFORM_LIBPATH
- PLATFORM_LINKFLAGS
Backup your original config.opts file and run scons again to get these new
options.
* Use freetype-config instead of pkg-config for determining the freetype2
flags.
* The new PYTHON_LINKFLAGS now enable the dynamic linking on Linux and
possibly other platforms as well. This should resolve all linking problems
reported to the mailing lists. (At least for Linux, I can't test other
platforms).
* Default build dir is now: ../build/<platform>/
with <platform> ofcourse the platform you're building on.
This option is still configurable in config.opts. It was just a feature
request.
* Allow the user to specify a different config.opts file from the command
line. This one was at my todo, but Kester was kind enough to implement this
in Tuhopuu2 already. Thanks Kester!
To generate/use a different options file:
scons CONFIG=your_config_options_file
* 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.
* 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.
* 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.
* 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.
of things with a couple of tweaks. It still needs work but I'm stuck.
Working with Michel to change compiler to gcc for solaris since Sun's c++
compiler is broken and won't compile blender.
Kent
* Windows .exe file now includes the blender icon.
* Builds with game engine on Windows only.
I tried building the game engine on Linux, but I get weird errors when
building with ode. There's a dirty #include path in
Physics/BlOde/OdePhysicsEnvironment.cpp (../ode/src/joint.h). gcc doesn't
like this somehow.
* Other platforms need to add a couple of flags to the SConstruct:
use_sumo, use_ode, solid_include and ode_include
some platform specific sections had link_env.Append(CPPDEFINES=defines)
(darwin was not one of them). I moved that line to the global part of
SConstruct and added "defines = []" to the platforms that didn't have
it (sunos and hp-ux). I hope I didn't break anything...
* Removed debug print in ftfont.
* Added FreeType/FTGL support to the Linux build.
NOTE: This feature is on by default, but depends on the pre-build libraries.
So checkout the lib directory. The lib dir should be on the same level as
the blender dir. (In case you didn't know).
You'll need SCons (www.scons.org) to build.
Platforms currently working:
* Linux (me)
- options for quicktime, openal and international disabled
- uses the system libs and include files for building - no option to build
with the precompiled libraries yet.
* Windows (jesterKing)
- builds with quicktime (optional)
- builds with openal (optional)
- builds with international support (optional)
- Use the DOS box to build
- builds with precompiled libraries
* Irix (Hos)
- Uses default Irix compiler
- Not all optimization levels correct yet
- options for quicktime, openal and international disabled
- builds with precompiled libraries
* Cygwin (me)
- has a problem in the linking stage
- uses free build tools (gcc)
- options for quicktime, openal and international disabled
- uses the system libs and include files for building - no option to build
with the precompiled libraries yet.
* MacOS (sgefant)
- builds with quicktime (optional)
- options for openal and international disabled
- builds a nice bundle
- builds with precompiled libraries
Thanks to IanWill for a bugfix in the Linux build.
Note: This is a work in progress. A lot still has to be done - for example the
optional parts are only to be enabled by directly setting 'true' or
'false' in the SConstruct file. This needs to be moved to a user config
file. Also, the .o/.obj files are stored in the source tree. This needs
to be fixed as well.
The game engine is not yet built.