Commit Graph

426 Commits

Author SHA1 Message Date
Sergey Sharybin
5be97aba95 Recent spinlock commit made scheduling unsafe for threading
Namely, it caused nodes be adding to the pool multiple times.

Returned spin back, but use it only in cases node valency is
zero. So now valency is decreasing without any locks, then
if it's zero spin lock happens, node color (which indicates
whether node is scheduled or not) happens. Actual new task
creation happens outside of locks.

This might sound a bit complicated, but it's straightforward
code which is free from any thread synchronization latency.
2013-08-14 09:24:15 +00:00
Sergey Sharybin
3c9c5b42cb Merging r58778 through r59080 from trunk into soc-2013-depsgraph_mt 2013-08-12 09:35:16 +00:00
Mitchell Stokes
3627541894 BGE: Fixing the memory leaks reported when the BlenderPlayer exits.
They were caused by not having a free_windowmanager_cb set and by not having registered SpaceTypes, which meant data allocated for thosse SpaceTypes could not be freed. These were solved by defining a free_windowmanager_cb for the player that just frees wmWindows, and by making sure we only allocate memory for registered SpaceTypes.
2013-08-10 21:17:46 +00:00
Mitchell Stokes
98176b4e1e BGE: Making sure the BlenderPlayer calls Py_Finalize(). 2013-08-06 02:05:32 +00:00
Sergey Sharybin
24b0f8247f Merging r58701 through r58746 from trunk into soc-2013-depsgraph_mt 2013-07-30 19:05:29 +00:00
Mitchell Stokes
29f8dfd37a BGE: Adding vsync control. Users can enable vsync, disable vsync, or use adaptive vsync via UI options in the render properties, or by using the new Python method bge.render.setVsync(). Win32 and X11 support are done via EXT_swap_control. Support for using EXT_swap_control on OS X still needs to be added to Ghost. 2013-07-29 22:31:32 +00:00
Sergey Sharybin
51dab0e0ef Merging r58475 through r58700 from trunk into soc-2013-depsgraph_mt 2013-07-29 02:49:36 +00:00
Daniel Stokes
4f8fd8c68b BGE Fix [#18804] Shadow type faces cast onto invisible faces (non-GLSL)
Changing the RayHit method to ignore invisible faces
2013-07-25 23:42:20 +00:00
Campbell Barton
3ff3d1bc0f replace use of strcat() where the string offset is known.
also correct bad logic with converting a textblock to 3d-text, bytes-vs-number of chars wasn't handled right.
2013-07-23 12:49:30 +00:00
Sergey Sharybin
2d7a425381 Merging r58362 through r58463 from trunk into soc-2013-depsgraph_mt 2013-07-21 08:14:59 +00:00
Daniel Stokes
ff165fa986 Re fixing BGE bug [#36223] Strange page fault of "Game" actuator
Thanks to Campbell for helping me get a better fix put together.
2013-07-20 03:01:50 +00:00
Mitchell Stokes
efad3eb928 Add the Boost include to the right CMakeLists.txt... 2013-07-20 01:17:00 +00:00
Mitchell Stokes
81769b4f58 More build fixes for r58428. 2013-07-20 01:15:36 +00:00
Mitchell Stokes
f84563d213 SCons fix for r58428. 2013-07-20 01:09:16 +00:00
Mitchell Stokes
5645d9f720 Removing source files from source/gameengine/GamePlayer/common/SConscript that were removed in an earlier commit. This should allow SCons to build the game engine again. 2013-07-20 00:51:05 +00:00
Campbell Barton
a2a99bbc17 edit to r58425, BLI_math is available here, better not copy,paste from linearrgb_to_srgb.
also remove redundant check in AUD_FFMPEGReader::seek.
2013-07-20 00:35:41 +00:00
Mitchell Stokes
cf62de6c6d BGE: Partial fix for [#36151] "Distance model not carrying over to standalone" reported by Florian Schneider (drjaska).
The Blenderplayer wasn't initializing 3D audio settings from the scene settings like the embedded player was.
2013-07-19 23:31:45 +00:00
Mitchell Stokes
eb21bdd249 Merging changes from trunk r58091-58323. 2013-07-17 01:40:26 +00:00
Sergey Sharybin
d44fb5bd8b Merging r58196 through r58265 from trunk into soc-2013-depsgraph_mt 2013-07-15 11:25:56 +00:00
Campbell Barton
02ba328ca8 clang/cmake - quiet warnings for external libs and reference moto as a system include. 2013-07-15 08:26:16 +00:00
Mitchell Stokes
f6502a67f2 BGE cleanup: Getting rid of an unused variable warning in GPG_Canvas::Init(). 2013-07-09 01:42:13 +00:00
Mitchell Stokes
b73793f636 BGE cleanup: removing some unused code from GPC_Canvas. 2013-07-09 01:34:23 +00:00
Mitchell Stokes
60812e0260 BGE cleanup: Removing the GamePlayer/xembed folder and associated build options. This code was very old and not used. For example web player code, look at Burster. 2013-07-09 01:24:51 +00:00
Mitchell Stokes
a6d26cb665 BGE cleanup: GPC_System was an empty class, so I'm dropping it and having GPG_System inherit directly from KX_ISystem. 2013-07-09 01:18:48 +00:00
Mitchell Stokes
7b8453b164 BGE cleanup: removing various unused code and files from GamePlayer/common. 2013-07-09 01:14:52 +00:00
Mitchell Stokes
5b3106b89d BGE cleanup: removing unused banner code from GPC_Canvas. 2013-07-09 01:04:49 +00:00
Sergey Sharybin
b763876cae Made modifiers_getVirtualModifierList safe for threading
Move static variables to context filling in by this fcuntion
and owned by a callee function. This ensures no conflicts
between threads happens because of static variables used in
this function.

Also moved modifier types and virtual modifiers data to a
function called from creator. This is needed to be sure all
the information is properly initialied to the time when
threads starts to use this data.
2013-07-01 11:00:22 +00:00
Mitchell Stokes
c3d70a9baf BGE: Fix for [#34185] "billboard scale problem in groups" reported by Tobias Lijsen (blenderhilfe).
Use world scaling instead of local scaling when billboarding so we get all inherited scaling.
2013-06-24 08:26:05 +00:00
Daniel Stokes
23c0e0d996 BGE: fix [#35811] Blenderplayer crash on closing if file saved with an actual version.
Making sure free_nodesystem() is called before BLO_blendfiledata_free() fixes the problem. free_nodesystem() relies on blendfiledata.
2013-06-24 04:21:17 +00:00
Inês Almeida
5d28a6bb58 Minor code cleanup in 'source/gameengine/GamePlayer/ghost/GPG_Application.cpp'.
Removed a function call with no effect and merged two other lines for legibility.
This commit was reviewed by Moguri.
2013-06-22 09:04:33 +00:00
Mitchell Stokes
92aca19eda BGE: Fix for [#35815] "makeScreenshot() relative path not working in Blenderplayer" reported by HG1.
Someone forgot to add relative path expansion (BLI_path_abs) to the Blenderplayer...
2013-06-22 05:27:28 +00:00
Mitchell Stokes
d3fc2bd95b BGE: Fix for [#33163] "Text Font Bug" reported and fixed by HG1.
The embedded player was calling glPolygonMode(GL_FRONT_AND_BACK, GL_FILL) before rendering font objects, but someone forgot to add this to the Blenderplayer.
2013-06-20 22:37:55 +00:00
Mitchell Stokes
4eded6dbdc BGE: Fix for [#35479] "OSKEY (Command Key on Mac) not working" reported by Mike Pan (mpan3).
The OSKEY was never added to the game engine, so it didn't recognize it.
2013-06-20 03:22:55 +00:00
Campbell Barton
9cf6e305a9 split bge includes for scons onto their own lines (for easier merging) 2013-05-29 21:56:55 +00:00
Jürgen Herrmann
3d3a4e8eec Patch [#35234]:
Fix GetWindowsLon and SetWindowsLong issues with VS2012 and Windows 8.
Remove unneeded #ifdef block for GWL_WNDPROC and GWL_USERDATA
2013-05-13 20:27:05 +00:00
Mitchell Stokes
dbf4328f3f BGE: Adding a render.setFullScreen() and a render.getFullScreen() to allow fulscreening games via Python. 2013-04-13 21:09:02 +00:00
Dalai Felinto
1c80388a73 bge fix: framing mode "Expanded" not updated when resizing blenderplayer
now, with a 'resize' routine for the engine we can/should also recreate some
buffers that are created only at init time (e.g., 2d filters, dome fbos, ...).

This bug was always present in Blender (since 2.49 at least).

Bugfix supported by NF-UBC Nereus Program as part of the development
of OceanViz/NereusViz
2013-04-12 01:52:30 +00:00
Brecht Van Lommel
d579ea2901 Fix #34863: bge.render.makeScreenshot from Blender was only saving PNG files,
while the docs said it followed the settings in the Output panel, other file
formats work now.

Benderplayer still only saves PNG now as documented, but I cleaned up the code
there to reuse existing imbuf functions rather than using own libpng code.
2013-04-04 14:00:31 +00:00
Campbell Barton
64d161de87 style cleanup:
also rename mesh_getVertexCos() --> BKE_mesh_vertexCos_get() to match curve function.
2013-03-26 07:29:01 +00:00
Campbell Barton
09c41019a8 use const pointers for file loading and booleans for animation system return values passed as pointers. 2013-03-17 19:13:04 +00:00
Irie Shinsuke
5792e77239 Patch [#34373] Use i18n monospace font in Text editor and Python console
This patch allows Blender to display i18n monospace font in the text
editor and the Python interactive console. Wide characters that occupy
multiple columns such as CJK characters can be displayed correctly.
Furthermore, wrapping, selection, suggestion, cursor drawing, and
syntax highlighting should work.

Also fixes a bug [#34543]: In Text Editor false color in comment on cyrillic

To estimate how many columns each character occupies, this patch uses
wcwidth.c written by Markus Kuhn and distributed under MIT-style license:

  http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c

wcwidth.c is stored in extern/wcwidth and used as a static library.

This patch adds new API to blenfont, blenlib and blenkernel:

BLF_get_unifont_mono()
BLF_free_unifont_mono()
BLF_draw_mono()
BLI_wcwidth()
BLI_wcswidth()
BLI_str_utf8_char_width()
BLI_str_utf8_char_width_safe()
txt_utf8_offset_to_column()
txt_utf8_column_to_offset()
2013-03-12 07:25:53 +00:00
Campbell Barton
2921d48239 code cleanup: unused vars in collada, preprocessor formatting & warning in mingw.
also compiling without bullet needed a stub added.
2013-03-04 00:53:57 +00:00
Campbell Barton
963b1c1b16 fix for own commit r54806 with argument order and multisampling. 2013-02-24 10:50:33 +00:00
Campbell Barton
630a31a900 fix for fullscreen on X11 (used by the BGE, not blender application),
changing the screen resolution wasn't still allowed for larger virtual desktops.

added an exclusive option to ghost so the fullscreen window is ignored by the window manager and we get all events. (common practice for games on X11).
2013-02-24 05:05:29 +00:00
Campbell Barton
c42b51ed96 GHOST/X11 - free memory allocated by XF86VidModeGetAllModeLines(),
Comment from Zr says this crashes but looks like this was because there was no check if the function failed to allocate to begin with.
2013-02-23 23:15:38 +00:00
Mitchell Stokes
b3c0896967 BGE: Fix for bug #34219 "Webcam support under Linux in Standalone broken" reported by Thomas Achtner (offtools).
No one bothered to update the player for ffmpeg changes made in August 2012. This meant the player was no longer calling avdevice_register_all(), and  ffmpeg would fail to open web cam streams.
2013-02-22 20:37:14 +00:00
Bastien Montagne
dd83387e0b And one more "G.main" compile fix, this time for BGE ;) 2013-02-05 13:31:59 +00:00
Campbell Barton
69993c5d40 style cleanup: spaces -> tabs 2013-02-04 00:18:09 +00:00
Campbell Barton
9da4cab9fd style cleanup: comment format 2013-02-02 04:48:21 +00:00
Dalai Felinto
3a1ee13278 BGE Profile : visual feedback bars and improvements
You can see a screenshot of the funcionality here:
http://wiki.blender.org/index.php/Doc:2.6/manual/Game_Engine/Performance/Display/Framerate_and_Profile

This patch creates a bar-like graph to quickly allow the game dev to see the performance changes.
Also it changes the font to monospace (too allow ' ' padding) and reduced shadow border to
match the blenderplayer one.

Patch finalized and commited at Global Game Jam Vancouver (last one, time to sleep forever now)
2013-01-28 01:26:36 +00:00