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.
Materials are exported the best we can do by now. It will look almost as in
blender except for the missing procedural textures and some minor issues.
You have to tweak normal modulation amount to get the desired result cause
is not the same in yafray.
We added a panel in render space to adjust some yafray settings (GI and so)
Also we export transparency and reflection using new raytracing settings,
but that will be changed and improved soon.
Remember that you have to set YFexport path in user defaults and yafray must
be on path (version 0.0.6)
We added the "yafray" button to activate all this stuff in the render window.
Panel and settings are only shown when checked.
So now when activated the code calls yafray export instead of the internal
renderer and finally the resulting image is loaded back into render window's
buffer. So animation is also possible and results can be saved using blender
usual scheme.
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.
This function just calls another function which returns a success value, so I'm just passing that value directly as a return value.
Slap me with a trout if I wasn't suppose to fix this.
a gcc/cygwin built Blender from showing the Blender app icon in the
main window title bar.
Only a minor issue, but it annoyed me long enough to want to fix it!
well... probably OK, got it from a python mailing list.
When starting from commandline, the window doesnt pop to the front. this
was really bad for the play function in blender, which opens a new blender
thread.
solved with SetFrontProcess()
I've mailed Maarten to verify it, this commit is for test at other
OSX platforms.
- this was the baddie:
setDrawingContextType(GHOST_kDrawingContextTypeNone);
it was called in the window destructor, for each window closed.
I've hacked in a temporal global var to store the mainwindow. When this
line is only called for mainwindow, it all works smoothly.
- next commit is needed too!
(seems half of the references were one way, the other half were
the other way). Also made irix link to $(OCGDIR)/intern/*SoundSystem/*
instead of $(OCGDIR)/gameengine/*SoundSystem/*
I need to get openal working on my machine before I can test it so
if it doesn't work feel free to fix it. Hopefully this will be
the majority of the stuff though.
Kent
SoundSystem has been moved from source/gameengine to intern. This was needed
because functionality from SoundSystem was needed by
source/blender/src/editsound.c.
* Removed the option for the openal check in configure.ac. It's needed now by
SoundSystem
* Removed the functionality for checking if 'noaudio' was provied on the
commandline. Now audio is default on.
* 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
the text below as comment:
adding a glFinish() here is to prevent Geforce in 'full scene antialias' mode
from antialising the Blender window. Officially a swapbuffers does a glFinish
itself, so this feels really like a hack... but it won't harm. (ton)
Removes ssl from blender.
makes the following directorys not needed anymore:
blender/intern/keymaker
blender/source/blender/src/pub
blender/source/blender/encrypt
blender/source/blender/decrypt
blender/source/blender/sign
blender/source/blender/verify
It works with The Nan Makefiles and autoconf, could whoever is working
on the other build systems update them so we can nuke those directorys?
They won't do anything but I figured I'd leave them in for a week or so
to make things easyer on people.
Kent
For some real idiot reason, osx only has the left-right arrow cursor builtin, and not an up-down arrowed one. The little hand cursor seems to be used in other apps, so let's stick with that!
-Ton-
Florian Eggenburger).
Full instructions are in doc/README.windows-gcc.
Main differences from Florian's patch:
- the 'lib' dir should now be the same level as the 'blender' dir (rather
than being a subdir of 'blender'). This is consistent with the other
platforms that bf-blender supports (tuhopuu will also adopt this convention
hopefully soon).
- the script 'free_windows-env.mk' is no longer needed ... see the
docs about how this is overcome (again, tuhopuu will hopefully
also follow this route soon).
- the dlltool dir has it's own Makefile that builds all of the
needed stub libraries from the dll's in cvs.
I wasn't sure maybe the two license files should be put in the root dir
instead....
I also reformated the bf-members.txt file a little to nuke extra spaces and
newlines (as well as updated my entry to include my name instead of just
sirdude... It looks like there are some special chars in it that someone
should fixup, not sure what they are suppose to be though)
Kent
directories exist. They don't exist for a standard Python 2.3 installation
but they aren't needed either... this is really a hack, I wish someone
who understood the freeze process better could look at this.
- fix make/shell buglet to make use of --no-print-directory for cleaner logs
- Conform to the nan_subdirs.mk mechanism of building
intern/Makefile
- include nan_subdirs.mk again
This enables people to run make clean and all those other targets from the top
level dir again, 'make source' has been lost for now
I added a check if the output directory (../frozen) exists and will create
the directory if it does not exist.
This time I tested it also with the NaN make environment :)
Michel
is updated.
* modulefinder creates a file src.list which contains all the *.py files
needed for the python suport in Blender.
* Makefile.am is able to depend on the files listed in src.list.
* makemakefile_ac.py is reverted to the previous version. The old version
contained my first attempt to get the make freeze trick working. It was
wrong.
Michel
build systems (auto, msvc, PB) do not seem to have this problem.
- Change intern/python/freeze/Makefile to freeze outside of the source/ tree
- Change source/blender/bpython/Makefile to not build the frozen stuff anymore
- Change source/blender/bpython/intern/Makefile to use CURRENT_PYTHON_API
instead of FUTURE_PYTHON_API, damage control
I'm guessing its safe.
Basically it fixes a warning about typedef usage.
Reading the docs on gcc-3.2 it says that classes that use a typedef
need to have the keyword "typename" infront of them according to the c++
standard. Currently it only produces a warning but it may be an
error later, so I figured why not fix it.
Kent
*Fixed boolean buglet in the bsp lib. I have not committed any libraries so you'll
have to do this to see the changes in blender.
*Got the bsp test program working again with the new GHOST createWindow
interface.
*(Visual C++) Modfied some of the dsp in the intern library to NOT prompt when
overwirting old libs and header files. This is the /Y option after XCOPY
Cheers
Laurence.
didn't exist instead of installing it as it should.
- @../tools/cpifdiff.sh blenkey.h $(LCGDIR)/$(LIBNAME)/include/blenkey.h
+ @../tools/cpifdiff.sh blenkey.h $(LCGDIR)/$(LIBNAME)/include/
sgefant
clicking on it. The mouse up was already generated. They
are now balanced by mouse downs. The behaviour of the
OSX target now matches that of the WIN32 target.
Maarten
---------------------------->8----------------------------------------------
g++ -DHAVE_CONFIG_H -I. -I../../../blender/intern/bsp -I../.. -I../../../blender/intern/container -I../../../blender/intern/moto/include -I../../../blender/intern/memutil -I/usr/freeware/include -g -funsigned-char -c ../../../blender/intern/bsp/intern/BSP_CSGMesh.cpp -MT BSP_CSGMesh.lo -MD -MP -MF .deps/BSP_CSGMesh.TPlo -DPIC -o .libs/BSP_CSGMesh.lo
/usr/freeware/lib/gcc-lib/mips-sgi-irix6.5/3.0.4/include/g++/bits/stl_iterator.h: In
constructor `std::__normal_iterator<_Iterator,
_Container>::__normal_iterator(const std::__normal_iterator<_Iter,
_Container>&) [with _Iter = const BSP_MFace*, _Iterator = BSP_MFace*,
_Container = std::vector<BSP_MFace, std::allocator<BSP_MFace> >]':
../../../blender/intern/bsp/intern/BSP_CSGMesh.cpp:270: instantiated from here
/usr/freeware/lib/gcc-lib/mips-sgi-irix6.5/3.0.4/include/g++/bits/stl_iterator.h:474: cannot
convert `const BSP_MFace* const' to `BSP_MFace*' in initialization
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
---------------------------->8----------------------------------------------
The line in question that causes the error is the middle one in this group:
vector<BSP_MFace>::const_iterator f_it_end = FaceSet().end();
vector<BSP_MFace>::const_iterator f_it_begin = FaceSet().begin();
vector<BSP_MFace>::iterator f_it = FaceSet().begin();
Dropping the 'const_' from that middle line enables gcc to compile the
file correctly (this is also consistent with what is going on with other
parts of the file, i.e., stuff that is returned from a begin() method is
declared as vector<BSP_MFace>::iterator instead of
vector<BSP_MFace>::const_iterator.
But I'll be honest: I have no idea what this code does, so if somebody with
better C++ skills wants to check it, then please do.
This change was also tested to compile and run on debian linux/x86
(well, booleans are broken right now, so I wasn't able to do too much
testing).
Chris
I took out the following from the includes in the intern dir that still had
it:
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
Kent
--
mein@cs.umn.edu
too -- a user reported crashing while using decimation and rolling back
the modifications between rev 1.2 and rev 1.3 for this file fixed it.
Regards,
Chris
(to stop gcc compiler warnings) caused segfaults when
performing intersections (and possibly while doing other
boolean operations). I felt it was best to revert these
changes (I also got rid of the DOS line terminators in
the files). Some more info about the matter can be found
in the first 10 or so posts for Novembor on the old
mailing list:
http://www.soze.com/mailman/private/bf-committers/2002-November/date.html
Chris (Merry Christmas!)
+static void SleepTillEvent(Display *display, GHOST_TInt64 maxSleep) {
maxSleep is checked against -1 so it needs to have a sign.
This could even fix some stability problems since -1 is passed in sometimes
in the code.
Kent
--
mein@cs.umn.edu
IK_QSegment.h: In constructor `IK_QSegment::IK_QSegment(MT_Point3,
MT_Matrix3x3, double, MT_ExpMap)':
IK_QSegment.h:271: warning: member initializers for `MT_Scalar
IK_QSegment::m_length'
IK_QSegment.h:270: warning: and `MT_ExpMap IK_QSegment::m_q'
IK_QSegment.cpp:56: warning: will be re-ordered to match declaration order
IK_QSegment.h: In constructor `IK_QSegment::IK_QSegment()':
IK_QSegment.h:271: warning: member initializers for `MT_Scalar
IK_QSegment::m_length'
IK_QSegment.h:270: warning: and `MT_ExpMap IK_QSegment::m_q'
IK_QSegment.cpp:73: warning: will be re-ordered to match declaration order
Kind of goofy its just the order of which 2 private vars are defined.
Kent
--
mein@cs.umn.edu
Had to add an argument to Create_window... (it was missing the sterio flag)
Also cleaned up some variable overloading warnings...
(i.e. window shadows previous def)
Kent
(I noticed its not completely gone yet from the blender/source dir)
But its a big step in the right direction if it doesn't enable
all of the functionatlity already...
(Using cscope for LICENSE_KEY_VALID still turns up some stuff)
Kent
--
mein@cs.umn.edu
(adding)
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
also the Makefile.in's were from previous patch adding
the system depend stuff to configure.ac
Kent
--
mein@cs.umn.edu
batch file that freezes the Blender Python code.
I had to add a dummy.cpp file to the freeze directory to make MSVC
understand it should call the batch file in a post build step. If someone else
has a better idea, feel free to change it!
Maarten
+ python $(PYFLAGS) freeze.py -d -x os -x pprint -I $(SRCDIR) -o $(TARGETDIR) $(SRCDIR)/VRMLmain.py
Freeze the Blender module
(I got this from some other people on #blendersauce and truthfully I have
no idea if this is correct or not so if someone else could look at it
that would be great)
Kent
--
mein@cs.umn.edu
intern/make/msvc_6_0. Changed paths in all these files to build to
lib/windows and use obj/window/intern for object files and other temporary
stuff.
Added project files for guardedalloc and blenkey (in keymaker directory).
blenkey still assumes openssl being installed in lib/windows.
The only thing not automated is is the frozen Python stuff.
Maarten
This saves other OSX developers the trouble of manually running ranlib.
This is not a good solution (because I don't know the correct one) but it works.
Maarten
I also moved it so that it gets put in:
$(OCGDIR)/blender/bpython/$(DEBUG_DIR)libfrozen.a
and removed the stuff from the readme on how to do it by hand.
(I made one other small change and that was to comment
out the ssr target on solaris and freebsd in source/Makefile
I forgot to commit it yesterday)
Kent
--
mein@cs.umn.edu
removed the action library not used by Blender (actually this was that start of
UNDO in Blender that was never finished)
Maarten (mail@maartengribnau.com)
it wasn't detected before because everyone had a blenkey.h in their dirs also.
also I added an #include "key.h" to key_internal.h so that I didn't
get problems with undefined type byte...
mein@cs.umn.edu