11 years agoBGE API - small changes
Campbell Barton [Fri, 24 Apr 2009 20:27:04 +0000 (20:27 +0000)]
BGE API - small changes
- print CListValue errors only once.
- bge_api_validate_py.txt now validates modules as well as types.
- added missing functions and consts for epydoc modules. some of these in still need sorting.

11 years agoChange scon's ordering of static libraries to resolve problem on Linux 64-bit builds.
Ken Hughes [Fri, 24 Apr 2009 20:17:42 +0000 (20:17 +0000)]
Change scon's ordering of static libraries to resolve problem on Linux 64-bit builds.

11 years agoBGE: removed support for time dependent modifiers, they don't make sense in the GE...
Benoit Bolsee [Fri, 24 Apr 2009 19:49:15 +0000 (19:49 +0000)]
BGE: removed support for time dependent modifiers, they don't make sense in the GE. Disable modifiers when Bullet soft body is used: bullet needs the original vertex array.

11 years agoBGE PyAPI epydoc errors fixed
Campbell Barton [Fri, 24 Apr 2009 07:45:17 +0000 (07:45 +0000)]
BGE PyAPI epydoc errors fixed

11 years agopatch for by author J.M.Soler:
Remigiusz Fiedler [Thu, 23 Apr 2009 23:44:43 +0000 (23:44 +0000)]
patch for by author J.M.Soler:
This patch adds support for Patterns.

11 years agoBGE bug #17950: crash when GE softbody is parented to a rigid body/soft body/dynamic...
Benoit Bolsee [Thu, 23 Apr 2009 21:19:42 +0000 (21:19 +0000)]
BGE bug #17950: crash when GE softbody is parented to a rigid body/soft body/dynamic object.

11 years agoBGE bug #17863: Shaky game camera.
Benoit Bolsee [Thu, 23 Apr 2009 20:30:01 +0000 (20:30 +0000)]
BGE bug #17863: Shaky game camera.

11 years agoFix for part of bug #18496: issue with light state switching
Brecht Van Lommel [Thu, 23 Apr 2009 13:30:34 +0000 (13:30 +0000)]
Fix for part of bug #18496: issue with light state switching
when using Dome.

11 years ago[#11172] md2 export bug(s)
Campbell Barton [Thu, 23 Apr 2009 11:59:13 +0000 (11:59 +0000)]
[#11172] md2 export bug(s)
export with object transformations applied.

11 years agoMake: removing hidden directories from .app failed.
Ton Roosendaal [Thu, 23 Apr 2009 09:59:19 +0000 (09:59 +0000)]
Make: removing hidden directories from .app failed.

11 years ago== Sequencer ==
Peter Schlaile [Thu, 23 Apr 2009 07:40:01 +0000 (07:40 +0000)]
== Sequencer ==

[#18489] Adding (add filter) nested strips
causes Blender VSE to segfault on frame render.
[#18209] 3 VSE crash bugs with .blends
(all left click and move mouse over Metastrip/Blend Mode related)

... and a new segfault I introduced with my last commit.

Also: memcache limiter refcounts are tested now in critical
      places, printing an error message,
      since doing refcounting right is, well, hard.

11 years ago== SEQUENCER ==
Peter Schlaile [Thu, 23 Apr 2009 06:07:51 +0000 (06:07 +0000)]

This fixes

[#18079] Sequencer color correction does not apply on float image if "make float" is not applied

and closes

[#18582] bug fix #18079

by removing ibuf->rect on image load if ibuf->rect_float is used.
(Don't know, why the OpenEXR loader does that, but I fix this on sequencer
side for now...)

11 years agoBGE Dome update:
Dalai Felinto [Thu, 23 Apr 2009 02:27:11 +0000 (02:27 +0000)]
BGE Dome update:
* Enviroment Map implemented (replacing truncated mode 2).
 - Now it's possible to pre-bake animated (or static) EnvMaps to use with Cube Map textures.

* Enabling 2DFilter in Dome mode
 - no GL_DEPTH_BUFFER supported though.

* Tweaking GameSettings menu (centralizing buttons)

11 years ago[#18574] small bug - warning for depreciated displays even when sce.object...
Campbell Barton [Thu, 23 Apr 2009 00:56:05 +0000 (00:56 +0000)]
[#18574] small bug - warning for depreciated displays even when is used
Remove the warning since the func will sstay in 2.4x

11 years agoBGE Rasterizer methods to handle Screen Space - (getScreenPosition, getScreenVect...
Dalai Felinto [Thu, 23 Apr 2009 00:49:38 +0000 (00:49 +0000)]
BGE Rasterizer methods to handle Screen Space - (getScreenPosition, getScreenVect, getScreenRay)

 - Gets the position of an object projected on screen space.

getScreenVect(x, y):
 - Gets the vector from the camera position in the screen coordinate direction.

getScreenRay(x, y, dist, property):
 - Look towards a screen coordinate (x,y) and find first object hit within dist that matches prop.
- The ray is a call to KX_GameObject->rayCastTo from the KX_Camera object.

Patch [#18589] test files can be found there. Patch reviewed by Campbell

11 years agopatch from Mitchell Stokes, comments only - KX_PYATTRIBUTE_TODO for missing attributes
Campbell Barton [Thu, 23 Apr 2009 00:47:45 +0000 (00:47 +0000)]
patch from Mitchell Stokes, comments only -  KX_PYATTRIBUTE_TODO for missing attributes

11 years agoBGE Python API
Campbell Barton [Thu, 23 Apr 2009 00:32:33 +0000 (00:32 +0000)]
BGE Python API

CListValue fixes
- Disable changing CValueLists that the BGE uses internally (scene.objects.append(1) would crash when drawing)
- val=clist+list would modify clist in place, now return a new value.
- clist.append([....]), was working like extend.
- clist.append(val) didnt work for most CValue types like KX_GameObjects.

Other changes
- "isValid" was always returning True.
- Set all errors for invalid proxy access to PyExc_SystemError (was using a mix of error types)
- Added PyObjectPlus::InvalidateProxy() to manually invalidate, though if python ever gains access again, it will make a new valid proxy. This is so removing an object from a scene can invalidate the object even if its stored elsewhere in a CValueList for eg.

11 years agoFix for bug #14410: multires + vertex colors crash rendering
Brecht Van Lommel [Wed, 22 Apr 2009 23:01:40 +0000 (23:01 +0000)]
Fix for bug #14410: multires + vertex colors crash rendering
or baking while in editmode.

11 years agoFix for bug #18509: mesh deform modifier not working on load,
Brecht Van Lommel [Wed, 22 Apr 2009 22:38:23 +0000 (22:38 +0000)]
Fix for bug #18509: mesh deform modifier not working on load,
with cage on hidden layer.

11 years agoBGE bug #17670: Python controlled mist doesnt work in textured mode.
Benoit Bolsee [Wed, 22 Apr 2009 22:12:36 +0000 (22:12 +0000)]
BGE bug #17670: Python controlled mist doesnt work in textured mode.

11 years ago[#18586] [bug] Ray sensor doesn't return a hit object
Campbell Barton [Wed, 22 Apr 2009 20:43:41 +0000 (20:43 +0000)]
[#18586] [bug] Ray sensor doesn't return a hit object
Supporting len(GameOb) to see how many properties it has backfired since it can then evaluate as false.

11 years ago[#18587] bugfix #18425 (Window.EditMode() ignores undo information)
Campbell Barton [Wed, 22 Apr 2009 19:04:00 +0000 (19:04 +0000)]
[#18587] bugfix #18425 (Window.EditMode() ignores undo information)
from Lorenzo Pierfederici (lento)

11 years agoBGE: some more cleanup, implement proper GetReplica/ProcessReplica workflow for touch...
Benoit Bolsee [Wed, 22 Apr 2009 18:20:41 +0000 (18:20 +0000)]
BGE: some more cleanup, implement proper GetReplica/ProcessReplica workflow for touch/near/radar sensor. Remove duplicated code.

11 years agoBugfix #18039
Ton Roosendaal [Wed, 22 Apr 2009 17:35:37 +0000 (17:35 +0000)]
Bugfix #18039

Armature modifier didn't set amd->prevCos temp variable to NULL
after freeing. Saving this in file will cause error or crash on
reading. Quite weird how it survived so long?

11 years agoBugfix #18058
Ton Roosendaal [Wed, 22 Apr 2009 17:06:47 +0000 (17:06 +0000)]
Bugfix #18058

Ray-transparent didn't pass on thread number to shading code, giving
"blothes" in render, when using node materials.

This also rewinds Campbells commit of feb 21, which tackled the error,
but not the cause.

11 years agoBGE: some more cleanup, remove useless ReplicaSetName(), move code to ProcessReplica.
Benoit Bolsee [Wed, 22 Apr 2009 16:58:04 +0000 (16:58 +0000)]
BGE: some more cleanup, remove useless ReplicaSetName(), move code to ProcessReplica.

11 years agoBGE: some more cleanup in GetReplica/ProcessReplica of deformers: make them consisten...
Benoit Bolsee [Wed, 22 Apr 2009 16:26:22 +0000 (16:26 +0000)]
BGE: some more cleanup in GetReplica/ProcessReplica of deformers: make them consistent with the other classes.

11 years agoBGE C++ API
Campbell Barton [Wed, 22 Apr 2009 14:42:00 +0000 (14:42 +0000)]
PyObjectPlus::ProcessReplica() is now called when any of its subclasses are replicated.

This is important because PyObjectPlus::ProcessReplica() NULL's the 'm_proxy' python pointer I added recently.
Without this a replicated subclass of PyObjectPlus could have an invalid pointer (crashing the BGE).

This change also means CValue::AddDataToReplica() can be moved into CValue::ProcessReplica() since ProcessReplica is always called.

11 years agoBGE C++ API
Campbell Barton [Wed, 22 Apr 2009 12:16:41 +0000 (12:16 +0000)]
Some functions used

Use the second method everywhere so the PyObjectPlus's ProcessReplica() can be called from its subclasses.

Note that PyObjectPlus's ProcessReplica isnt used yet.

11 years agobugfix #18187
Ton Roosendaal [Wed, 22 Apr 2009 11:54:43 +0000 (11:54 +0000)]
bugfix #18187

Using "Key Alpha" didn't work when using MBlur render. The accumulation
code was assuming regular alpha then. Now it corrects for it.

Still it's a bit of a weak spot in Blender's render system. I will look
in the future to make this a real post process; converting all RGBA
buffers in the system, including for all passes, to "key alpha".
Combined with that our compositor should become alpha type aware too.
Everything in Blender assumes premul alpha, which still just will work
best in general...

11 years agoBGE Python API
Campbell Barton [Wed, 22 Apr 2009 09:47:57 +0000 (09:47 +0000)]
BGE Python API
improved how attribute errors are set so each classes py_getattro function dosnt need to set an error if the attribute doesn't exist.
Now py_base_getattro sets an error on a NULL return value when no errors are set to avoid setting errors at multiple levels.

11 years ago[#18577] LightWave (.lwo) Exporter Object Names are Incorrect
Campbell Barton [Wed, 22 Apr 2009 09:08:57 +0000 (09:08 +0000)]
[#18577] LightWave (.lwo) Exporter Object Names are Incorrect
patch from Philip Alldredge (cilcoder), slightly modified

11 years agoBGE
Nathan Letwory [Wed, 22 Apr 2009 06:30:32 +0000 (06:30 +0000)]
* the ternary form refused to compile properly with msvc, rewrite a bit.

11 years agoPatch from Mitchell Stokes for KX_Light to use attrdef's
Campbell Barton [Tue, 21 Apr 2009 23:15:18 +0000 (23:15 +0000)]
Patch from Mitchell Stokes for KX_Light to use attrdef's
Added type access to the SCA_PropertyActuator, added missing function in library docs.

11 years agoBGE bug #18521 fixed: Dupligroups + Bullet Softbodies are broken.
Benoit Bolsee [Tue, 21 Apr 2009 21:33:03 +0000 (21:33 +0000)]
BGE bug #18521 fixed: Dupligroups + Bullet Softbodies are broken.

11 years agoBalance comment markers.
Guillermo S. Romero [Tue, 21 Apr 2009 18:41:45 +0000 (18:41 +0000)]
Balance comment markers.

11 years agoDocumentation.
Guillermo S. Romero [Tue, 21 Apr 2009 17:58:28 +0000 (17:58 +0000)]

11 years agoOld "divide by zero" bug and remove debug printf.
Guillermo S. Romero [Tue, 21 Apr 2009 17:40:39 +0000 (17:40 +0000)]
Old "divide by zero" bug and remove debug printf.

11 years agoCompile warnings, typos and some clarifications.
Guillermo S. Romero [Tue, 21 Apr 2009 17:37:07 +0000 (17:37 +0000)]
Compile warnings, typos and some clarifications.

11 years agoSome Makefile changes still laying around.
Guillermo S. Romero [Tue, 21 Apr 2009 17:24:16 +0000 (17:24 +0000)]
Some Makefile changes still laying around.

11 years agoFix for bug #17457. This bug relates to files that have missing multires vertex data.
Nicholas Bishop [Tue, 21 Apr 2009 16:58:25 +0000 (16:58 +0000)]
Fix for bug #17457. This bug relates to files that have missing multires vertex data.

The fix is, if the file was saved on the highest multires level, then mesh contains a copy of the vertices anyway, and we can just copy it back into multires.

Otherwise, multires is removed from the mesh to avoid a crash.

11 years agoBugfix #18550
Ton Roosendaal [Tue, 21 Apr 2009 15:38:53 +0000 (15:38 +0000)]
Bugfix #18550

"Copy constraints" should increase ipo user count.

11 years agobugfix #18543
Ton Roosendaal [Tue, 21 Apr 2009 15:22:41 +0000 (15:22 +0000)]
bugfix #18543

Using feature XRay + Transparent could crash on undo/redo, the
view3d afterdraw was still storing data here whilst it shouldn't...

Reason was that object got added twice actually... but only freed
once. Also caused weird flashy display.

Note to Brecht for merging: skip this one, I'll fix it in 2.5 too.

11 years agoSHD_dynamic had gen_utils functions from Mathutils, removing
Campbell Barton [Tue, 21 Apr 2009 13:44:24 +0000 (13:44 +0000)]
SHD_dynamic had gen_utils functions from Mathutils, removing

11 years agoFix for missing include using CMake
Daniel Genrich [Tue, 21 Apr 2009 13:34:33 +0000 (13:34 +0000)]
Fix for missing include using CMake

11 years agoBugfix #18519
Ton Roosendaal [Tue, 21 Apr 2009 13:30:58 +0000 (13:30 +0000)]
Bugfix #18519

MultiLayer save (F3) crashes when no rendering/layers exist, happens for
opengl preview render. It now survives, saving empty file and prints error.

Better solution for later: render profiles!

11 years agohope this lets py2.3 build again
Campbell Barton [Tue, 21 Apr 2009 12:48:49 +0000 (12:48 +0000)]
hope this lets py2.3 build again

11 years agoneeded to remove gen_utils functions from Mathutils.c
Campbell Barton [Tue, 21 Apr 2009 12:42:37 +0000 (12:42 +0000)]
needed to remove gen_utils functions from Mathutils.c

11 years agoBGE: Support mesh modifiers in the game engine.
Benoit Bolsee [Tue, 21 Apr 2009 11:01:09 +0000 (11:01 +0000)]
BGE: Support mesh modifiers in the game engine.

Realtime modifiers applied on mesh objects will be supported in
the game engine with the following limitations:

- Only real time modifiers are supported (basically all of them!)
- Virtual modifiers resulting from parenting are not supported:
  armature, curve, lattice. You can still use these modifiers
  (armature is really not recommended) but in non parent mode.
  The BGE has it's own parenting capability for armature.
- Modifiers are computed on the host (using blender modifier
- Modifiers are statically evaluated: any possible time dependency
  in the modifiers is not supported (don't know enough about
  modifiers to be more specific).
- Modifiers are reevaluated if the underlying mesh is deformed
  due to shape action or armature action. Beware that this is
  very CPU intensive; modifiers should really be used for static
  objects only.
- Physics is still based on the original mesh: if you have a
  mirror modifier, the physic shape will be limited to one half
  of the resulting object. Therefore, the modifiers should
  preferably be used on graphic objects.
- Scripts have no access to the modified mesh.
- Modifiers that are based on objects interaction (boolean,..)
  will not be dependent on the objects position in the GE.
  What you see in the 3D view is what you get in the GE regardless
  on the object position, velocity, etc.

Besides that, the feature is compatible with all the BGE features
that affect meshes: armature action, shape action, relace mesh,
VideoTexture, add object, dupligroup.

Known problems:
- This feature is a bit hacky: the BGE uses the derived mesh draw
  functions to display the object. This drawing method is a
  bit slow and is not 100% compatible with the BGE. There may
  be some problems in multi-texture mode: the multi-texture
  coordinates are not sent to the GPU.
  Texface and GLSL on the other hand should be fully supported.
- Culling is still based on the extend of the original mesh.
  If you have a modifer that extends the size of the mesh,
  the object may disappear while still in the view frustrum.
- Derived mesh is not shared between replicas.
  The derived mesh is allocated and computed for each object
  with modifiers, regardless if they are static replicas.
- Display list are not created on objects with modifiers.

I should be able to fix the above problems before release.
However, the feature is already useful for game development.
Once you are ready to release the game, you can apply the modifiers
to get back display list support and mesh sharing capability.

MSVC, scons, Cmake, makefile updated.


11 years agoBlender Python API
Campbell Barton [Tue, 21 Apr 2009 09:44:29 +0000 (09:44 +0000)]
Blender Python API
- Removed the gen_utils.c dependency from Mathutils (since gen_utils wont go into 2.5 but mathutils will), repalced with python functions.
- removed Blender.Mathutils.Point, since it was not documented, the C api never used it, none of our scripts used it (and I never saw a script that used it).

11 years agoFix compilation error in MSVC.
Benoit Bolsee [Tue, 21 Apr 2009 09:38:27 +0000 (09:38 +0000)]
Fix compilation error in MSVC.

11 years agoBGE: show profile in millisecond in addition to percentage.
Benoit Bolsee [Tue, 21 Apr 2009 09:20:47 +0000 (09:20 +0000)]
BGE: show profile in millisecond in addition to percentage.

11 years agoBlender Python API
Campbell Barton [Tue, 21 Apr 2009 07:16:29 +0000 (07:16 +0000)]
Blender Python API

use getseter's for quat and euler types attributes, python3 compatible module initialization for Mathutils and BGL.

11 years ago[#18557] incorrect alpha IPO behavior in game engine
Campbell Barton [Tue, 21 Apr 2009 01:59:14 +0000 (01:59 +0000)]
[#18557] incorrect alpha IPO behavior in game engine
from Louis-Dominique Dubeau (zenoparadox)
report contained fix, ancient bug from rev2.

11 years agouse PyList_SET_ITEM instead of PyList_SetItem,
Campbell Barton [Mon, 20 Apr 2009 23:27:53 +0000 (23:27 +0000)]
use PyList_SET_ITEM instead of PyList_SetItem,

PyList_SetItem does error checking and decref's existing values, PyList_SET_ITEM is a macro for direct assignment, only for use on new lists.

11 years agoBGE Python API
Campbell Barton [Mon, 20 Apr 2009 23:17:52 +0000 (23:17 +0000)]
BGE Python API
Separate getting a normal attribute and getting __dict__, was having to do too a check for __dict__ on each class (multiple times per getattro call from python) when its not used that often.

11 years agoBGE VideoTexture: fix bug with VideoTexture.materialID() since recent commit.
Benoit Bolsee [Mon, 20 Apr 2009 21:20:33 +0000 (21:20 +0000)]
BGE VideoTexture: fix bug with VideoTexture.materialID() since recent commit.

11 years agoBugfix for [#18554] Time + Scale Node Crash
Daniel Genrich [Mon, 20 Apr 2009 18:31:48 +0000 (18:31 +0000)]
Bugfix for [#18554] Time + Scale Node Crash

11 years agoBugfix 18558
Ton Roosendaal [Mon, 20 Apr 2009 18:23:46 +0000 (18:23 +0000)]
Bugfix 18558

In OSX, using spin/extrude etc. buttons, with more than 1 3d window open,
should turn cursor in a Question Mark to indicate you have to tell which
window to use (yes weak, but that's 2.4x!). OSX didn't support that type
of cursor, so no hint happened. Now uses the 'hand' icon for osx... no
nicer one is there afaik.

11 years agoBooleans: Fix for "no faces" error, reported by alxarch, thanks!
Daniel Genrich [Mon, 20 Apr 2009 13:18:54 +0000 (13:18 +0000)]
Booleans: Fix for "no faces" error, reported by alxarch, thanks!

11 years agoBGE Python API
Campbell Barton [Mon, 20 Apr 2009 09:13:59 +0000 (09:13 +0000)]
BGE Python API
- initialize pythons sys.argv in the blenderplayer
- ignore all arguments after a single " - " in the blenderplayer (like in blender), so args can be passed to the game.
- add a utility function PyOrientationTo() - to take a Py euler, quat or 3x3 matrix and convert into a C++ MT_Matrix3x3.
- add utility function ConvertPythonToMesh to get a RAS_MeshObject from a KX_MeshProxy or a name.
- Added error prefix arguments to ConvertPythonToGameObject, ConvertPythonToMesh and PyOrientationTo so the error messages can include what function they came from.
- deprecated brick.getOwner() for the "owner" attribute.

11 years agoScons epydos changed options
Campbell Barton [Sun, 19 Apr 2009 22:02:48 +0000 (22:02 +0000)]
Scons epydos changed options
- no source code since this is only useful if the epydocs contain code, ours are only docstrings.
- set inheritance to included so you dont have to search up the classes to find available functions.
- SConstruct, isolate the exception for importing epydoc.
- Added a print to the SConscript files otherwise it looks like nothings happening.

11 years agoSCons / epydoc support
Nathan Letwory [Sun, 19 Apr 2009 21:26:29 +0000 (21:26 +0000)]
SCons / epydoc support
* properly detect if epydoc is installed.
  patch by Brandano

11 years agoBGE Python API
Campbell Barton [Sun, 19 Apr 2009 21:01:12 +0000 (21:01 +0000)]
BGE Python API
- More verbose error messages.
- BL_Shader wasnt setting error messages on some errors
- FilterNormal depth attribute was checking for float which is bad because scripts often expect ints assigned to float attributes.
- Added a check to PyVecTo for a tuple rather then always using a generic python sequence. On my system this is over 2x faster with an optmized build.

11 years ago(no commit message)
Campbell Barton [Sun, 19 Apr 2009 20:09:05 +0000 (20:09 +0000)]

11 years agoadded a file, and also made scons pick which zip to use based on the...
Joseph Eagar [Sun, 19 Apr 2009 19:36:04 +0000 (19:36 +0000)]
added a file, and also made scons pick which zip to use based on the python version

11 years agoCompile fixed for Win64.
Daniel Genrich [Sun, 19 Apr 2009 19:31:32 +0000 (19:31 +0000)]
Compile fixed for Win64.
Please check if that also compiles on win32.

11 years agoBooleans:
Daniel Genrich [Sun, 19 Apr 2009 18:18:52 +0000 (18:18 +0000)]
- Enable e.g. subsurf before boolean modifier
- Fix editmode crash

11 years agoBooleans: Should work with modifier stack now. Please report (new) problems. Thanks
Daniel Genrich [Sun, 19 Apr 2009 17:47:09 +0000 (17:47 +0000)]
Booleans: Should work with modifier stack now. Please report (new) problems. Thanks

11 years agoBGE Python API
Campbell Barton [Sun, 19 Apr 2009 17:29:07 +0000 (17:29 +0000)]
BGE Python API
removed redundant (PyObject *self) argument from python functions that are not exposed to python directly.

11 years agoBGE: fix Pyfrom_id to work on w64.
Benoit Bolsee [Sun, 19 Apr 2009 17:26:03 +0000 (17:26 +0000)]
BGE: fix Pyfrom_id to work on w64.

11 years agoFix for libopenjpeg to enable win64 compile (is in their tracker and will most likely...
Daniel Genrich [Sun, 19 Apr 2009 16:35:20 +0000 (16:35 +0000)]
Fix for libopenjpeg to enable win64 compile (is in their tracker and will most likely be included in next release)

11 years agoBGE Python API cleanup - no functionality changes
Campbell Barton [Sun, 19 Apr 2009 14:57:52 +0000 (14:57 +0000)]
BGE Python API cleanup - no functionality changes
- comments to PyObjectPlus.h
- remove unused/commented junk.
- renamed PyDestructor to py_base_dealloc for consistency
- all the PyTypeObject's were still using the sizeof() their class, can use sizeof(PyObjectPlus_Proxy) now which is smaller too.

11 years agoBGE Python API
Campbell Barton [Sun, 19 Apr 2009 12:46:39 +0000 (12:46 +0000)]
BGE Python API

This changes how the BGE classes and Python work together, which hasnt changed since blender went opensource.
The main difference is PyObjectPlus - the base class for most game engine classes, no longer inherit from PyObject, and cannot be cast to a PyObject.

This has the advantage that the BGE does not have to keep 2 reference counts valid for C++ and Python.

Previously C++ classes would never be freed while python held a reference, however this reference could be problematic eg: a GameObject that isnt in a scene anymore should not be used by python, doing so could even crash blender in some cases.

Instead PyObjectPlus has a member "PyObject *m_proxy" which is lazily initialized when python needs it. m_proxy reference counts are managed by python, though it should never be freed while the C++ class exists since it holds a reference to avoid making and freeing it all the time.
When the C++ class is free'd it sets the m_proxy reference to NULL, If python accesses this variable it will raise a RuntimeError, (check the isValid attribute to see if its valid without raising an error).
- This replaces the m_zombie bool and IsZombie() tests added recently.

In python return values that used to be..
 return value->AddRef();
Are now
 return value->GetProxy();
 return value->NewProxy(true); // true means python owns this C++ value which will be deleted when the PyObject is freed

11 years agoKX_MeshProxy "numPolygons" and "numMaterials" attributes were using the "materials...
Campbell Barton [Sun, 19 Apr 2009 06:48:27 +0000 (06:48 +0000)]
KX_MeshProxy "numPolygons" and "numMaterials" attributes were using the "materials" attribute function, error made recently when converting attributes.

11 years agoHidden faces were not rendering displayed in the game engine, only the invisible...
Campbell Barton [Sun, 19 Apr 2009 06:29:15 +0000 (06:29 +0000)]
Hidden faces were not rendering displayed in the game engine, only the invisible face flag should be used for this.
Hiding faces is a editing option like selection and should not change rendering, it wasn't even working right because meshes without UVs ignored it.
I thought this was needed for compatibility with old files but just noticed this messes up 2 of the files in

11 years agoBPy
Nathan Letwory [Sun, 19 Apr 2009 00:09:47 +0000 (00:09 +0000)]
* access to sample buffers count of Lamp

11 years agoSCons
Nathan Letwory [Sat, 18 Apr 2009 17:16:08 +0000 (17:16 +0000)]
* some misc changes, mainly cleaning and style unification that were lying around

11 years agoBGE: restore a feature that was lost in 2.48: sharing of display lists between duplic...
Benoit Bolsee [Sat, 18 Apr 2009 09:14:51 +0000 (09:14 +0000)]
BGE: restore a feature that was lost in 2.48: sharing of display lists between duplicated objects.

11 years agoAdded m_zombie to the base python class (PyObjectPlus), when this is set all the...
Campbell Barton [Fri, 17 Apr 2009 20:06:06 +0000 (20:06 +0000)]
Added m_zombie to the base python class (PyObjectPlus), when this is set all the subclasses will raise an error on access to their members.

Other small changes...
- KX_Camera and KX_Light didnt have get/setitem access in their PyType definition.
- CList.from_id() error checking for a long was checking for -1 against an unsigned value (own fault)
- CValue::SpecialRelease was incrementing an int for no reason.
- renamed m_attrlist to m_attr_dict since its a PyDict type.
- removed custom getattro/setattro functions for KX_Scene and KX_GameObject, use py_base_getattro, py_base_setattro for all subclasses of PyObjectPlus.
- lowercase windows.h in VideoBase.cpp for cross compiling.

11 years agoFixing SND_Scene.h missing include problems with cmake + bullet
Daniel Genrich [Fri, 17 Apr 2009 13:42:40 +0000 (13:42 +0000)]
Fixing SND_Scene.h missing include problems with cmake + bullet

11 years agobugfix #18287
Ton Roosendaal [Fri, 17 Apr 2009 10:38:10 +0000 (10:38 +0000)]
bugfix #18287

Texture nodes hang when nodes have a cyclic case.

Added a (temp?) provision to tag node->need_exec zero for cyclic
nodes, and added check for this in texture nodes.
There was also a bug in 'tag changed' for texture nodes, which not
only tagged, but also called the tree exec (should not happen!).

In general the texture exec needs recode; it doesn't use the stacks
as provided per node, but recurses itself to previous nodes, giving
problems like this. Node execs should only do their own bizz, the
node system handles dependency and eval order nicely already.

11 years agolet command line args override the 'blenderlite' target
Campbell Barton [Fri, 17 Apr 2009 10:34:09 +0000 (10:34 +0000)]
let command line args override the 'blenderlite' target

11 years agoMissing <stdlib.h> for abs() made this file not compile for me.
Ton Roosendaal [Fri, 17 Apr 2009 10:24:44 +0000 (10:24 +0000)]
Missing <stdlib.h> for abs() made this file not compile for me.

11 years agopacking from the UV window with margin had a problem with feedback, so running again...
Campbell Barton [Fri, 17 Apr 2009 06:21:49 +0000 (06:21 +0000)]
packing from the UV window with margin had a problem with feedback, so running again and again would give different results.
Scale the margin by the combined area of all boxes to give predictable results.

11 years ago[#18533] Little fix in Particle API doc
Campbell Barton [Fri, 17 Apr 2009 02:33:14 +0000 (02:33 +0000)]
[#18533] Little fix in Particle API doc
from Alberto Santos (dnakhain)

11 years agoBGE: slow parent was causing scaling distortion, now use correct quaternion interpola...
Benoit Bolsee [Thu, 16 Apr 2009 20:13:13 +0000 (20:13 +0000)]
BGE: slow parent was causing scaling distortion, now use correct quaternion interpolation.

11 years agobpy_internal_import.c should build with py2.3 now, also gave bpy_internal_import...
Campbell Barton [Thu, 16 Apr 2009 06:24:47 +0000 (06:24 +0000)]
bpy_internal_import.c should build with py2.3 now, also gave bpy_internal_import functions better names.

11 years agoBGE bug #18168: Get local orientation of object using game engine python script syste...
Benoit Bolsee [Wed, 15 Apr 2009 21:17:08 +0000 (21:17 +0000)]
BGE bug #18168: Get local orientation of object using game engine python script system. Added localOrientation and worldOrientation. orientation attribute deprecated. Same for position and scaling. World attributes are read-only except for worldPosition. Add systematic check on NULL SGNode in all python functions. This is necessary to handle zombie objects (deleted by the game but kept alive by a reference in a list).

11 years agoMerging Shrinkwrap Constraint!
Andre Susano Pinto [Wed, 15 Apr 2009 19:33:25 +0000 (19:33 +0000)]
Merging Shrinkwrap Constraint!
+bvhtree cache (if the derived model doenst gets destroyed then the same BVHtree can be used)
this was needed to allow shrinkwrap constraint to be usable.

It has been ready for a long time.. but only got merged now, for 2.49.

11 years agoBGE Python API
Campbell Barton [Wed, 15 Apr 2009 19:20:12 +0000 (19:20 +0000)]
BGE Python API
Free python modules defined within the blendfile between loading scenes since they would end up accessing old GameLogic, Rasterizer modules as well as old game engine data in the module namespace which can cause problems.

11 years agoOptional margin for packing UV islands and the 'Pack Islands' menu item. Useful for...
Campbell Barton [Wed, 15 Apr 2009 18:20:19 +0000 (18:20 +0000)]
Optional margin for packing UV islands and the 'Pack Islands' menu item. Useful for baking with bleed enabled.

11 years agoThis is patch [#18408] Build issues with make on Cygwin hosted MinGW (2.48.1)
Kent Mein [Wed, 15 Apr 2009 16:23:13 +0000 (16:23 +0000)]
This is patch [#18408] Build issues with make on Cygwin hosted MinGW (2.48.1)
submitted by Wayne Dennis

adds an include, changes pythonlib and does a little cleaning of dlltool stuff.


11 years agoFixing more errors coverity found.
Kent Mein [Wed, 15 Apr 2009 16:16:00 +0000 (16:16 +0000)]
Fixing more errors coverity found.

Imagepaint make sure ibuf exists before we use it.  This is CID# 545
editmesh_tools.c make sure were not indexing array with -1 This is CID# 137
(also removed some trailing whitespace I found)

anim5.c totlen could be -1 so check its > -1  This is CID# 134


11 years agoBGE MouseFocusSensor
Campbell Barton [Wed, 15 Apr 2009 13:50:56 +0000 (13:50 +0000)]
BGE MouseFocusSensor
- fix for multiple viewpors broke single viewport (both work now)
- python could get uninitialized values from m_prevTargetPoint and m_prevSourcePoint
- getting the RayDirection for python could crash blender trying to normalize a zero length vector.
- added python attributes
- removed unused canvas from the MouseFocusSensor class

11 years agoDisable using KX_GameObjects in python that have been removed from the scene (zombie...
Campbell Barton [Wed, 15 Apr 2009 10:57:28 +0000 (10:57 +0000)]
Disable using KX_GameObjects in python that have been removed from the scene (zombie objects) by raising a RuntimeError when accessing methods, attributes or passing to a function.

Common cases of this are when python references an object from the AddObject actuator that has ended, or a scene has been loaded and the old objects freed.

This means some scripts will raise errors now in certain cases but better give the error early rather then failing silently with strange hard to track down behavior & crashes.

Added "isValid" attribute for checking objects are in a scene.

At the moment it uses the SceneGraph Node to check of the objects valid but it might be better to do this in a more generic way so scenes, meshes etc also have this check.

11 years agoBGE Py Api
Campbell Barton [Wed, 15 Apr 2009 08:08:42 +0000 (08:08 +0000)]
BGE Py Api
importing modules wasnt returning the error from the blender text if it failed.

11 years ago[#7789] 3DS Import , Mesh not correct since Blender 2.44
Campbell Barton [Wed, 15 Apr 2009 07:00:11 +0000 (07:00 +0000)]
[#7789] 3DS Import , Mesh not correct since Blender 2.44

There is a problem importing 3ds files where I cant find a way to check if the transforms are applied to the vertex locations or not.
Since 2.44 I made the importer assume they were not since you can manually remove transformations, but not reverse.

Nevertheless most 3ds files have the matrix applied, better not give a bad import by default.
Did some research and other 3ds importers (lib3ds for eg), have the same problem and just assume the transformations applied.

3dsMax imports both correctly so there must be a way to tell but I could not link it to the 3ds version or other mesh options.
Added an option to workaround this problem in rare cases where its needed.

- KX_GameObject.cpp & KX_Scene.cpp, clear the dict before removing the reference in case there is a circular reference.

11 years agoFix for own recent reference count error.
Campbell Barton [Wed, 15 Apr 2009 04:34:27 +0000 (04:34 +0000)]
Fix for own recent reference count error.
- The armature weakref list was  being incref'd twice then decrefed twice (incref and decref were used incorrectly), now only once. My 'fix' broke this.
- In bpy_pydriver_create_dict the 2 refs added from running PyDict_SetItemString twice were undone when clearing the dictionary (added comment)
- changed Py_XDECREF to Py_DECREF int BPY_pyconstraint_update and BPY_pyconstraint_target, Py_XDECREF checs for NULL value which would have crashed blender before it got to Py_XDECREF anyway.
- after every error is reported (PyErr_Print), remove sys.last_traceback and clear the error, I found this fixed certain crashes (usually when starting the game engine or exiting blender), so best do this all the time.

- header_text.c, CcdPhysicsEnvironment.cpp, KX_CameraActuator.cpp - remove some warnings.

11 years agoupdate for DXF-Importer v1.12, DXF-Exporter v1.29 - 2009.04.11 by migius
Remigiusz Fiedler [Wed, 15 Apr 2009 01:37:50 +0000 (01:37 +0000)]
update for DXF-Importer v1.12, DXF-Exporter v1.29 - 2009.04.11 by migius
 - added DWG support, adapted Stani Michiels idea for binding an extern DXF-DWG-converter

The external DXF-DWG converter "dconvertcon.exe" 355kb comes from openDesignAlliance, is free, but not opensource, not GPL-compatible (can not be bundled with commercial programs), so must be downloaded and installed in Blender script folder by user. It is a DOS console application, can be started in background mode, works on Windows, and in Wine on Linux and OSX. Version 1.0 (2002) supports conversion between DXF<->DWG for autocad release: 2.5, 2.6, 9, 10, 11, 12, 13, 14, 2000, 2002.