Commit Graph

42 Commits

Author SHA1 Message Date
Kent Mein
0360be49f5 This patch is the first of many to follow that deals with various
problems reported by klockwork.com who was very nice and has offered to
provide free source code analisys for us.

This one deals with freeing memory for an object when there is an
error.  (The function allocated memory intending to return it but
then ran into problems, and was forgetting to free it before it returned
NULL)

Kent
2006-10-24 15:17:39 +00:00
Ken Hughes
7fcc5800ae ===Tools===
Adding back some code to booleans that got lost in the Orange merge.

I've also added back the code which checked that meshes were solid
("manifolds") but have the actual check in
intern/boolop/intern/BOP_Interface.cpp, since from my testing it was
not causing crashes or hangs.  It *can* give odd results depending on
what you're trying to intersect, but seems useful.  Additionally, since
existing bugs in the current code can create non-solid/non-manifold
meshes, seems hypocritical to create a mesh that can't later be used in
another boolean operation.
2006-06-10 15:47:19 +00:00
Ken Hughes
5c95302043 ===Tools===
Previous patch for "problems with STL iterators/vectors that only show up under
Visual Studio 2005" could cause a crash when object used as a boolean modifier
was changed (for example, flipping all the normals).  The problem is that result
of boolean operations (apparently) can result in empty meshes.  Patched to
use the vector::size operator to check for empty vectors before trying to
check the iterator.
2006-06-08 03:10:26 +00:00
Erwin Coumans
abd8fba47f applied patch [ #4207 ] Boolean operations fix
Also fixed other problems with STL iterators/vectors, that only show up under Visual Studio 2005.

See also http://projects.blender.org/pipermail/bf-committers/2006-May/014608.html
2006-06-02 18:17:40 +00:00
Joseph Gilbert
f54a113cde Update to the VC7 projectfiles.
This should bring the projectfiles upto date for msvc7.

Moving these to version 7.1 so that the version 8 people don't have such a hard time importing into 2005.

Build intern.sln, extern.sln and then blender.sln. Enjoy. :p
2006-04-17 20:05:39 +00:00
Nathan Letwory
3bb82a27fc == SCons ==
* This commit is all of the rewrite work done on the SCons system. For
  documentation see doc/blender-scons.txt and doc/blender-scons-dev.txt.
  Also http://mediawiki.blender.org/index.php/BlenderDev/SconsRefactoring
  contains valuable information, along with what still needs to be done.

    - linux, os x and windows compile now.
    - files are compiled to BF_INSTALLDIR (see config/(platform)-config.py)
        - NOTE: Jean-Luc P will commit sometime during the weekend proper
          appit() for OS X. For now, copy the resulting binary to an
          existing .app bundle.
    - features:
        - cleaner structure for better maintenance
        - cleaner output during compile
        - better handling of build options
        - general overall speed increase
        - see the wiki for more info

  Cygwin, FreeBSD and Solaris systems still need work. For these systems:
    1) copy a config/(platform)-config.py to ie. config/cygwin-config.py
    2) set the proper defaults for your platform
    3) mail me at jesterking at letwory dot net with you configuration. if
       you need any modifications to the system, do send a patch, too.

  I'll be giving first-aid today and tomorrow, after that it'll be all
  regular development work :)

  /Nathan
2006-02-04 14:15:10 +00:00
Kent Mein
e544723e63 Fix some of Stealth Apprent's warnings/errors and some extra little stuff.
here is a quick summary...

Kent

intern/bsp/intern/BSP_CSGMesh_CFIterator.h
removed tri_index (unused variable)

intern/bsp/intern/CSG_BooleanOps.cpp
removed extra ;

intern/string/intern/STR_String.cpp
added <ctype.h>

source/blender/blenkernel/BKE_writeavi.h
moved things around so not doing forward declarations

source/blender/renderconverter/intern/convertBlenderScene.c
changed render.h to render_types.h

source/blender/src/blenderbuttons.c
source/blender/src/editgroup.c
source/blender/src/meshtools.c
added newline

source/gameengine/Ketsji/KX_KetsjiEngine.cpp
commented out include "PIL_time.h" code that requires it is commented out

reading blender/src/writeavicodec.c
(struct keyword to a couple of lines that needed it)
and added:
extern struct Render R;

blender/renderconverter/intern/convertBlenderScene.c
added extern Render R;
added #include "rendercore.h" to get rid of undeclared shade_material_loop
        (Not sure if this is right but it fixes it.
Did not fix this problem, is it alright to just pass NULL here or should we chan
ge it to something else:
        init_render_materials' : too few

gameengine/Physics/BlOde/OdePhysicsEnvironment.cpp
removed argument to dHashSpaceCreate
commented out dWorldQuickStep since it does not exist
2006-01-29 15:15:34 +00:00
Alexander Ewering
767bae35f2 (Hopefully) last part of Booleans commit.
Please update, compile (make) and test.
2005-10-28 20:18:56 +00:00
Joseph Gilbert
292c03ab8e _.NET projectfiles update_
* converted files to .NET 2002
* removed unneeded projectfiles from bullet
* PHY_Bullet outputs to correct directories
* Bullet linked to activex and blenderplayer
* misc updates
2005-08-02 13:44:49 +00:00
Erwin Coumans
49499c49be updated vc7 projectfiles so they work with bullet 2005-07-31 14:40:51 +00:00
Jean-Luc Peurière
c78e44cdc5 big warning hunt commit
lot of casts, added prototypes, missing includes and some true errors
2005-03-09 19:45:59 +00:00
Joseph Gilbert
61767b4f48 MSVC7 update and freetype2 source
- Added correct .libs to be linked to GP_Ghost
- Fixed incorrect library extensions for the linker (*.lib and not unix *.a)
- Projects have been set to be multi-threaded - projects were being linked to different versions of the CRT
- All projects are now linking to python 2.3 (this fixes an error regarding struct sizes in python)
- Removed invalid source paths from inclusion for the compiler
- Fix dependency issues with the GP_Ghost module
- Proper .dll's are now being copied to their respective locations for debug and release version of blender/blenderplayer
- Warnings have been set to level 2
- Import paths have been updated and organized for the compiler
- Duplicate import paths for the compiler have been removed
- Removed silly silly silly silly unix path-separators from window paths
- Post-Build scripts have been updated where neccessary (XCOPY is retatined)
- Fixed the output of various .lib files (PHY_Sumo and Yafray)
- PHY_Sumo now uses a .pch
- Removed #undef _DEBUG from debug builds :p
- FTF_Font is now contains a debug build and is being set to it's correct output path
- Blender/Blenderplayer/3DPlugin all linkto Debug libs where appropriate (instead of static release libs to avoid conflicts with the CRT)
- Python23_d.dll is now loaded into a true debug output of both blenderplayer and blender debug builds
- msvcrtd.dll is now loaded into a true debug output of both blenderplayer and blender debug builds
- Post-builds now clean up their mess
- ActiveX controller now builds
- BlenderPlayer now builds
- Internal libs now using .pch
- Moved the build directory from /blender/obj to ../build/msvc_7/  to follow precedence with scons builds
- Builds are now organized to follow precedence with scons builds with a /libs and a /intern /extern /source obj folders
- Set the proper build path for opennl
- Forcing BLO_loader source files to follow project defaults
- Added an 'extern' project that mimics the /make build of the 'intern' project
- Extern build includes solid and it's associated builds, ftgl, and freetype
- Added .vcproj files to /extern directory
- Added new extern.sln file to /extern directory
- All project now link to the built solid.lib from the extern project instead of lib/windows
- Removed uneeded XCOPYs commands from post-builds
- Added conditional Directory building to post-builds
- Freetype2 source commit (this is need for the building of a correct MFC linked version of the activeX controller as well as a correct release and debug build of the blender project)
- Ftgl is built and linked by the 'extern' project
- Intern/Extern project are now exporting their proper header files
- PHY_Physics is now linking to the correct set of header files (in build path not source)
- Makesdna builds object files into build directory now
- Projects are now ignoring the CORRECT versions of the CRT's  :)
- Renderconverter is now outputting it's obj file to it's own directory instead of /render
- Gen_system is now being built to ../kernel
- BL_src_cre is now being built to /creator
- *.exp and *.ilk are now being cleaned up from linkers
- Libpng.dll and zlib.dll are now being copied to the /bin
- MTDLL build are now available for the correct projects
- ActiveX 3D Plugin now links correctly to solid and freetype2
- Corrected the Preprocessor #define that was labeled incorrectly in FTF_Font and Blender that was causing the FTGL libs to export dll calling conventions.
- Changed the solution configurations to 3D Plugin Release, Debug and Blender Release, Debug for internal and external librarys
- Changed the solution configurations to 3D Plugin Release, Debug and Blender Release, Debug for blender and added 2 new solutions configurations BlenderPlayer Release, Debug
-
2005-02-20 21:33:11 +00:00
Joseph Gilbert
5af05c9610 Update to the MSVC7 project files (vcproj) for Blender's internal libraries
- set build_install_all as the default project (if you give me a quarter ill tell you how :)
- set SoundSystem to it's proper dependencies
- updated those silly silly unix path separators
- set project warning levels to something not so noisy
2005-02-12 02:06:52 +00:00
Kent Mein
aa317a8281 removed 4 unused vars...
Kent
2004-09-01 13:33:24 +00:00
Kester Maddock
d5fde6c48b Added #!/usr/bin/python standard script identifier to the start of SConscript files.
Makes text editors identify SConscripts as Python, and syntax highlight properly.
2004-05-16 13:07:20 +00:00
Joseph Gilbert
b9659a072a - MSVC 6 compiler include paths update 2004-04-10 21:32:35 +00:00
Nathan Letwory
9dea66a835 Major update for Visual Studio .Net project files. Both Release and Debug modes have been sanitised (ie. use .lib instead of .a). This update also makes the structure similar to the msvc6 projectfiles.
The new blender.sln is now found in directory projectfiles_vc7\\blender.

Update to the INSTALL file will follow soon.
2004-04-07 18:17:37 +00:00
Michel Selten
70a4ead0ae SCons updates
* 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.
2004-02-29 21:40:48 +00:00
Michel Selten
9330e553e8 SCons updates
* 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.
2004-02-15 19:25:32 +00:00
Wouter van Heyst
57a7dfe5a5 - Revert to NaN makefiles 2004-01-05 00:06:11 +00:00
Alejandro Conty Estevez
eff07b8329 Basic initial yafray integration by Eeshlo.
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.
2004-01-04 22:10:36 +00:00
Michel Selten
d3e1fc8870 SCons build system files added.
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.
2004-01-04 21:11:59 +00:00
Kent Mein
abede3ca04 A little more cleanup, removed a bunch of unused vars in the code.
Trying to get rid of some of the extra warnings we can ignore ;)

Kent
2003-08-14 15:18:45 +00:00
Daniel Dunbar
465229e4d6 Rest of the VC7 intern projectfiles. 2003-03-18 19:38:36 +00:00
Simon Clitherow
a0c1e2bd3d updated intern project files to suit the lib dir move. 2003-03-12 22:45:34 +00:00
Simon Clitherow
1bbd7b1392 Modified MSVC intern projectfiles - XCOPY doesn't need the /E option.
Updated README to suit the new 'merged' blender target.

--aphex
2003-01-28 19:39:06 +00:00
Francis Laurence
c6a905f7e9 Hello,
*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.
2003-01-12 19:48:53 +00:00
Hans Lambermont
45b243ac47 Workaround for the header file copying dependency hell 2003-01-04 15:07:25 +00:00
Kent Mein
f2aaeb8f5b Two small updates to fix warnings.
The first is renaming fv_data to fv_data2 to get rid of a shadow warning
second is an unused var that was an extra uneeded call to fabs.

Diff included:

Kent
--
mein@cs.umn.edu

Index: BSP_CSGMeshBuilder.cpp
===================================================================
RCS file: /cvsroot/bf-blender/blender/intern/bsp/intern/BSP_CSGMeshBuilder.cpp,v
retrieving revision 1.3
diff -u -r1.3 BSP_CSGMeshBuilder.cpp
--- BSP_CSGMeshBuilder.cpp      25 Nov 2002 09:52:48 -0000      1.3
+++ BSP_CSGMeshBuilder.cpp      3 Jan 2003 15:47:15 -0000
@@ -89,13 +89,13 @@
        }

        if (props.user_face_vertex_data_size) {
-               char * fv_data = NULL;
-               fv_data = new char[4 * props.user_face_vertex_data_size];
+               char * fv_data2 = NULL;
+               fv_data2 = new char[4 * props.user_face_vertex_data_size];

-               face.user_face_vertex_data[0] = fv_data;
-               face.user_face_vertex_data[1] = fv_data + props.user_face_vertex
_data_size;
-               face.user_face_vertex_data[2] = fv_data + 2*props.user_face_vert
ex_data_size;
-               face.user_face_vertex_data[3] = fv_data + 3*props.user_face_vert
ex_data_size;
+               face.user_face_vertex_data[0] = fv_data2;
+               face.user_face_vertex_data[1] = fv_data2 + props.user_face_verte
x_data_size;
+               face.user_face_vertex_data[2] = fv_data2 + 2*props.user_face_ver
tex_data_size;
+               face.user_face_vertex_data[3] = fv_data2 + 3*props.user_face_ver
tex_data_size;
        } else {
                face.user_face_vertex_data[0] = NULL;
                face.user_face_vertex_data[1] = NULL;
[9:47] ~/blender/intern/bsp/intern(mein@captcrab) % cvs diff BSP_MeshFragment.cp
p
Index: BSP_MeshFragment.cpp
===================================================================
RCS file: /cvsroot/bf-blender/blender/intern/bsp/intern/BSP_MeshFragment.cpp,v
retrieving revision 1.3
diff -u -r1.3 BSP_MeshFragment.cpp
--- BSP_MeshFragment.cpp        25 Nov 2002 09:52:48 -0000      1.3
+++ BSP_MeshFragment.cpp        3 Jan 2003 15:47:21 -0000
@@ -106,8 +106,6 @@
                if (BSP_Classification(vert.OpenTag()) == e_unclassified)
                {
                        MT_Scalar sdistance = plane.signedDistance(vert.m_pos);
-                       MT_Scalar fsdistance = fabs(sdistance);
-
                        if (fabs(sdistance) <= BSP_SPLIT_EPSILON) {
                                // this vertex is on
                                vert.SetOpenTag(e_classified_on);
2003-01-03 15:53:46 +00:00
Chris Want
9c18b6cff7 While building with gcc on Irix one is confronted by the message:
---------------------------->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
2002-12-29 15:59:51 +00:00
Chris Want
9e3c814e72 Reverted changes to bsp code so that the code will compile
under gcc 3.x. A better solution should be found as this
breaks booleans.

Chris
2002-12-28 17:55:24 +00:00
Kent Mein
f78de74b20 WooHoo me again ;)
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
2002-12-26 18:25:17 +00:00
Chris Want
f8b3f65d85 Some changes made to the bsp code in early November
(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!)
2002-12-25 08:35:08 +00:00
Kent Mein
782a5b573d Back at it ;)
Removed an unused var...
Here is the cvs diff.

Kent

Index: bsp/intern/BSP_CSGUserData.cpp
===================================================================
RCS file: /cvs01/blender/intern/bsp/intern/BSP_CSGUserData.cpp,v
retrieving revision 1.4
diff -u -r1.4 BSP_CSGUserData.cpp
--- BSP_CSGUserData.cpp 2002/11/25 09:52:48     1.4
+++ BSP_CSGUserData.cpp 2002/12/20 09:37:58
@@ -79,7 +79,6 @@
        int record_index
 ){
        if (m_width) {
-               int output = Size();
                IncSize();
2002-12-20 09:39:02 +00:00
Simon Clitherow
0c1e935175 And the rest! ;) --aphex 2002-12-12 21:16:46 +00:00
Kent Mein
0fbadc8eb7 Yes I did it again ;)
added the following 3 lines to everything in the intern dir:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

Kent
--
mein@cs.umn.edu
2002-11-25 09:53:07 +00:00
Maarten Gribnau
f21dd64460 Added almost all projects in intern to the main MSVC project for intern (in
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
2002-11-08 23:34:53 +00:00
Maarten Gribnau
7325eff128 Added extra ranlib on libary files after being copied to the lib tree for OSX only.
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
2002-11-07 22:41:42 +00:00
Kent Mein
0e8f81f48a Again I had to modify things like mesh->FaceSet().begin();
to &mesh->FaceSet()[0];

mein@cs.umn.edu
2002-11-01 21:39:56 +00:00
Kent Mein
92a0254c8a Ok since I didn't hear anything I committed the indexing changes I made
to these two files.
Basically change edge_set.begin() to &edge_set[0] etc...

mein@cs.umn.edu
2002-11-01 13:54:50 +00:00
Kent Mein
01bff70383 fixed spacing in the headers to get rid of some warnings and some other
little minor spacing issues.
2002-10-30 02:07:20 +00:00
Hans Lambermont
12315f4d0e Initial revision 2002-10-12 11:37:38 +00:00