Commit Graph

979 Commits

Author SHA1 Message Date
09da9d4393 cmake maintenance
blender_add_lib now takes a separate include argument to suppress warnings in system includes (mostly ffmpeg & python).
also only build wm_apple.c on apple+carbon configuration.
2011-05-31 01:15:44 +00:00
Dalai Felinto
245d36b706 bugfix for: [#26753] PhysicsConstraints ID trouble on 64bit (linux at least).
[the problem also affected OSX]

PhysicsId are Long, not ints (see PyObject* KX_GameObject::PyGetPhysicsId() )

There is a reference in the code to use PyCapsule instead of int. I'm not sure
about that. This patch at least stops the crashes
(update: I talked with Campbell and he repeated that PyCapsule are better, but if long is working it's fine for now).
2011-05-28 08:16:34 +00:00
d369a6aaaf Windows installer and Path changes, fixing various issues:
* Windows installer not working for non-admin users and multiple users
* Addon scripts not installing next to user configuration
* Portable install not being taken into account in all places

The main problem was the windows installer was installing system scripts in
AppData next to the user configuration directory, which is not shared between
users. Now these are installed in ProgramFiles, and only addon scripts added
by the users go to AppData.

On all platforms, addon scripts were sometimes getting installed between
system scripts, because the scripts folder in the executable directory was
given precedence over the user configuration folder, that is no longer done
now. So addons now behave like user configuration, they are preserved even
if you download a newer build of the same blender version.

If you have an installation of 2.57 on windows, the addon install location
will not change until we do the version bump to 2.58, to avoid conflicts with
the existing the installed 2.57 version.

The old behavior of giving precedence to the local folder was done to support
portable install, where all configuration is written to the local folder. This
is now implemented differently: if and only if a "config" folder exists in the
local folder, portable install will be assumed, and files will only be written
to that local folder.
2011-05-27 09:57:53 +00:00
0858904571 fix [#27414] no-material renders differently in View3D vs BGE
when a texface layer exists this still overrides the default material.
2011-05-17 02:44:52 +00:00
Nathan Letwory
12fecba3ae Remove files that were intended for shader branch. 2011-05-14 18:54:56 +00:00
99113b8541 These two files didn't get added when I created a branch from my working copy. 2011-05-14 06:32:25 +00:00
cb12337363 Code cleanup: remove source/kernel module, this wasn't really the kernel of
anything, only contained a hash map and functions to pass command line args
to the game engine. Moved those to container and BlenderRoutines modules.
2011-05-06 20:18:42 +00:00
8fdebf24f4 harmless changes to quiet clang static check warnings.
- made EXPANDED_AGRP take bAnimContext as an argument.
- remove unneeded NULL check drawFacesColored functions.
- comment some vars which are set but not used.
2011-04-24 10:51:45 +00:00
33b8d53224 minor cleanup & replace inline armature separate pchan searches with BLI_findstring(), no functional changes. 2011-04-20 02:56:51 +00:00
0814cdf54e fix [#26951] blenderplayer and runtimes will not load
blenderplayer wasn't finding bundled python, eg: ./2.57/python/lib
2011-04-18 08:27:50 +00:00
2d1e663440 patch [#26861] Spelling, Typos, and Grammar
- also fix own bad assert from yesterday & remove testing cmake print.
2011-04-11 01:18:25 +00:00
1c6956a4d6 quiet msvc/mingw compiler warnings. 2011-04-10 09:37:04 +00:00
ca254dd37b add option WITH_BUILTIN_GLEW, so linux packagers can disable to use their own glew library. 2011-04-05 23:31:01 +00:00
f4ba9495c5 fix [#26667] Can't import scripts when using blenderplayer
- move import override initialization to bpy_internal_import.c so the player and blender can both call.
- remove ineffectual & unused sandboxing code.
2011-03-29 16:12:25 +00:00
b11f29c8ac clear some c++ warnings. 2011-03-27 07:56:29 +00:00
fcc5b5c48c fix for blenderplayer using un-initialized mathutils types. 2011-03-25 00:34:28 +00:00
481b4842cf Blenderplayer: Fixing import issues. Using PyImport_ExtendInittab() for the Blender modules allows them to be imported in the Blenderplayer. 2011-03-22 08:35:56 +00:00
3384679aec BGE Dynamic Loading:
* Adding keyword arguments to LibLoad
   - load_actions (Default: False) Ensures that all actions are loaded. Otherwise, just actions used by objects in the scene are loaded.
   - verbose (Default: False) Turns on extra prints (eg SceneName: MyScene).
 * Also making error reporting better for when an invalid group/idcode is given.
2011-03-22 02:39:08 +00:00
2513b194a2 pedantic edit, no need to initialize var. 2011-03-21 12:40:06 +00:00
1f52d83a99 BGE Dynamic Loading: When given a relative path (starts with "//") for LibLoad(), make the path absolute. This helps resolve relative paths inside the library. 2011-03-21 09:29:28 +00:00
6c972d634e BGE PhysicsConstraints.exportBulletFile improvement: also export the object names to .bullet files. 2011-03-16 21:20:24 +00:00
5e374328a8 update Bullet physics sdk to latest trunk/version 2.78
add PhysicsConstraints.exportBulletFile(char* fileName) python command
I'll be checking the bf-committers mailing list, in case this commit broke stuff
scons needs to be updated, I'll do that in a second.
2011-03-12 20:34:17 +00:00
53139432dd image.depth, 96/128 for float color images, was 24/32 for byte images.
also use <> for system includes
2011-03-09 01:25:59 +00:00
Dalai Felinto
c39a109dae BGE internal cosmetic changes - Replacing hardcoded values with new defines
---------------------------------------------------------------------------
The Rasterizer code was relying in the values defined on TF_ DNA files. I'm working in the recode of TexFace, bringing the options to the material panel and ran into those cases. They are hard to spot and add a lot of the "magic" effect to the code. Hardcoded values are at least easy to spot. We (still) have a few defines duplicated, relying on each other (a flag previously defined in the code is checked later on but using a different define (although with same value. (e.g. TF_BMFONT and RAS_RENDER_3DPOLYGON_TEXT). It's hell =)
I'm adding some comments to help on that.

Things will be revamped anyways, but it's nice to keep the code a bit more coherent before the real feature commit. That's all, thanks for listening.
2011-03-07 19:14:17 +00:00
57436f3013 fix for own error made r35267. 2011-03-03 08:01:11 +00:00
7348a50d79 change return values from mathutils callbacks to match pythons (-1 is error), so error macro's can be used in both. 2011-02-28 18:42:41 +00:00
f73c993b16 - use Py_CLEAR for python internally referencing other PyObjects (supposed to be safer).
- detect includes for qtcreator projects as well as the ones from cmake (it didnt return all of the right paths).
2011-02-27 04:01:58 +00:00
a11c80d3bb cyclic gc support for KX_PythonSeq 2011-02-27 03:59:17 +00:00
Nathan Letwory
bb6e7faf72 doxygen: gameengine/Ketsji tagged. 2011-02-25 13:35:59 +00:00
Nathan Letwory
5b607701a7 doxygen: prevent GPL license block from being parsed as doxygen comment. 2011-02-23 10:52:22 +00:00
Nathan Letwory
79f79e0cac doxygen: BGE Network, Physics, Rasterizer 2011-02-22 12:42:55 +00:00
Nathan Letwory
5138615554 doxygen: entries for blenderroutines, converter, expressions, gamelogic, gameplayer, ketsji 2011-02-22 10:33:14 +00:00
b5e3d2a2ea Bugfix #25803 (LibLoad'ed scene objects don't have timer property updated)
The KX_Scenes' SCA_TimeEventManagers were not being merged. These handle the timer prop
2011-02-21 23:44:11 +00:00
648dec3411 Fix for bug #25804 (LibLoad'ed scene objects material CRASH when doing mat.getShader())
X_Material's mScene member variable wasn't properly set on merge if it didn't have an mBlenderShader defined. This patch always makes sure it gets set on merge.
2011-02-21 23:41:47 +00:00
Dalai Felinto
230aed6242 BGE: Action and ShapeKey Actuator PingPong playmode.
I have no idea why this hasn't been implemented before (the DEFINES were even there already). But since the Ipo (Fcurve) Actuator supports it I don't see why Action and ShapeKey shouldn't.
More than a new feature or a bugfix this is actually a step forward into unifying them.
2011-02-16 19:53:39 +00:00
62602c797d Fixing a recounting bug so KX_Scene.pre_draw.append() and KX_Scene.post_draw.append() work. 2011-02-12 15:44:09 +00:00
Dalai Felinto
8fd81ab9e6 BGE: frame start/end in action/fcurves/shapekey to support floats
after discussion over the mailing-list it seems that it really makes no sense to restrict that. Specially since we have the "Property" playback mode that usually will be a float.

Since there is no need for do_version or whatoever I don't see a problem. Any Thoughts? Maube to allow it only through the Python API?
2011-02-11 00:03:26 +00:00
89c617a116 remove nan-makefiles 2011-01-30 15:29:22 +00:00
6a2e5ad599 [#25815] Patch gcc 4.6
with minor edits, made sure it works in CMake too.
2011-01-27 00:02:25 +00:00
fc66b3f2ef BGE: support modifiers without mapping to original mesh both graphically and physically, fixes bug #24942 and #25286.
Support for physics is done by skiping the modifiers that
don't support mapping to original mesh. This mapping is
required to report the hit polygon to the application
by the rayCast() function.

Support for graphics is done by using the same render
function that blender uses for the 3D view. This guantees
equal result.

Limitation: there is still a known bug if all these conditions are met:
- Display list enabled
- Old tex face with a several textures mapped to the same material
- no armature or shape keys
- active modifiers

In this case, only a part of the mesh will be rendered
with the wrong texture. To avoid this bug, use the GLSL
materials or make sure to have 1 material=1 texture in
your old tex face objects.
2011-01-23 17:17:21 +00:00
Dalai Felinto
eff0e29cba BGE BugFix [#25711]render.setBackgroundColor() does not work:
Since rev.2 (hans ftw) we have a strange situation where horizon color was being used at Convert time for the WorldInfo background color (and for the fog). However through the Python API only the Rasterizer background color was being updated. On top of that the KX_KetsjiEngine.cpp::SetBackGround was using the WorldInfo bgcolor when render mode was the potato one (TEXTURED). Bottomline, when in potato mode the glClearColor used was the original one in worldinfo, not the API updated one in Rasterized.
2011-01-18 22:27:18 +00:00
8cf1184c04 bad spelling; 'indicies' --> 'indices' 2011-01-18 01:58:19 +00:00
54ceccd0ee - cmake use execute_process, exec_program is deprecated.
- game engine builds without python again.
2011-01-07 08:43:29 +00:00
a0b134cd88 bugfix [#25488] Game engine crash when try to run after blender app start
- also found other places where utf8 isnt ensured.
- remove duplicate NULL checks in object_edit.c
2011-01-06 05:04:07 +00:00
Dalai Felinto
95dcf11a88 BGE: Font Object support to animated (object) colors
implemented the support for animated colors and a workaround for non animated colors. To be cleaned if/when this bug is fixed:
[#25487] BGE: Object Color only works when it has a keyed frame

* also increased the size of the text. Now it supports 280 (or 140 unicode) chars.
2011-01-04 21:27:44 +00:00
5e382eb8e5 rename blenderlib to blender_add_lib 2010-12-22 23:09:30 +00:00
fb977b793e minor warnings removed. 2010-12-17 16:05:40 +00:00
Dalai Felinto
61a7c8d4ae BGE Font: increasing the limit of the text object to 140 2010-12-17 02:45:17 +00:00
fef0549ea5 SVN maintenance.
Plus some typo fixes in comments.
2010-12-16 19:05:47 +00:00
Dalai Felinto
0890b80ed9 Patch:[#25163] BGE support for Blender Font objects - unicode support
Problem/Bug:
------------
There were no way to have proper unicode characters (e.g. Japanese) in Blender Game Engine. Now we can :)
You can see a sample here: http://blog.mikepan.com/multi-language-support-in-blender/

Functionality Explanation:
--------------------------
This patch converts the Blender Font Objects to a new BGE type: KX_FontObject
This object inherits KX_GameObject.cpp and has the following properties:
- text (the text of the object)
- size (taken from the Blender object, usually is 1.0)
- resolution (1.0 by default, maybe not really needed, but at least for debugging/the time being it's nice to have) 

The way we deal with linked objects is different than Blender. In Blender the text and size are a property of the Text databock. Therefore linked objects necessarily share the same text (and size, although the size of the object datablock affects that too). In BGE they are stored and accessed per object. Without that it would be problematic to have addObject adding texts that don't share the same data.

Known problems/limitations/ToDo:
--------------------------------
1) support for packed font and the <builtin>
2) figure why some fonts are displayed in a different size in 3DView/BGE (BLF)
3) investigate some glitches I see some times
4) support for multiline
5) support for more Blender Font Object options (text aligment, text boxes, ...)

[1] Diego (bdiego) evantually will help on that. For the time being we are using the "default" (ui) font to replace the <builtin>.
[2] but not all of them. I need to cross check who is calculating the size/dpi in/correctly - Blender or BLF. (e.g. fonts that work well - MS Gothic)
[3] I think this may be related to the resolution we are drawing the font
[4] It can't/will not be handled inside BFL. So the way I see it is to implement a mini text library/api that works as a middlelayer between the drawing step and BLF. 
    So instead of:
      BLF_draw(fontid, (char *)text, strlen(text));
    We would do:
      MAGIC_ROUTINE_IM_NOT_BLF_draw(fontir, (char *)text, styleflag, width, height);
[5] don't hold your breath ... but if someone wants to have fun in the holidays the (4) and (5) are part of the same problem.

Code Explanation:
-----------------
The patch should be simple to read. They are three may parts:
1) BL_BlenderDataConversion.cpp:: converts the OB_FONT object into a KX_FontObject.cpp and store it in the KX_Scene->m_fonts
2) KetsjiEngine.cpp::RenderFonts:: loop through the texts and call their internal drawing routine.
3) KX_FontObject.cpp::
  a) constructor: load the font of the object, and store other values.
  b) DrawText: calculate the aspect for the given size (sounds hacky but this is how blf works) and call the render routine in RenderTools
4) KX_BlenderGL.cpp (called from rendertools) ::BL_print_game_line:: Draws the text. Using the BLF API

*) In order to handle visibility of the object added with AddObject I'm adding to the m_scene.m_fonts list only the Fonts in a visible layer - unlike Cameras and Lamps where all the objects are added.

Acknowledgements:
----------------
Thanks Benoit for the review and adjustment suggestions.
Thanks Diego for the BFL expertise, patches and support (Latin community ftw)
Thanks my boss for letting me do part of this patch during work time. Good thing we are starting a project in a partnership with a Japanese Foundation and eventual will need unicode in BGE :) for more details on that - www.nereusprogram.org - let's call it the main sponsor of this "bug feature" ;)
2010-12-16 10:25:41 +00:00