Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-07-31simplify redundant conditionalsMike Erwin
The redundant terms were harmless but check an expression we already know to be true (from earlier in the same conditional). Found by PVS-Studio T48917
2016-06-18Cleanup: style, whitespace, doxy filepathsCampbell Barton
2016-06-11BGE: Various render improvements.Benoit Bolsee
bge.logic.setRender(flag) to enable/disable render. The render pass is enabled by default but it can be disabled with bge.logic.setRender(False). Once disabled, the render pass is skipped and a new logic frame starts immediately. Note that VSync no longer limits the fps when render is off but the 'Use Frame Rate' option in the Render Properties still does. To run as many frames as possible, untick the option This function is useful when you don't need the default render, e.g. when doing offscreen render to an alternate device than the monitor. Note that without VSync, you must limit the frame rate by other means. fbo = bge.render.offScreenCreate(width,height,[,samples=0][,target=bge.render.RAS_OFS_RENDER_BUFFER]) Use this method to create an offscreen buffer of given size, with given MSAA samples and targetting either a render buffer (bge.render.RAS_OFS_RENDER_BUFFER) or a texture (bge.render.RAS_OFS_RENDER_TEXTURE). Use the former if you want to retrieve the frame buffer on the host and the latter if you want to pass the render to another context (texture are proper OGL object, render buffers aren't) The object created by this function can only be used as a parameter of the bge.texture.ImageRender() constructor to send the the render to the FBO rather than to the frame buffer. This is best suited when you want to create a render of specific size, or if you need an image with an alpha channel. bge.texture.<imagetype>.refresh(buffer=None, format="RGBA", ts=-1.0) Without arg, the refresh method of the image objects is pretty much a no-op, it simply invalidates the image so that on next texture refresh, the image will be recalculated. It is now possible to pass an optional buffer object to transfer the image (and recalculate it if it was invalid) to an external object. The object must implement the 'buffer protocol'. The image will be transfered as "RGBA" or "BGRA" pixels depending on format argument (only those 2 formats are supported) and ts is an optional timestamp in the image depends on it (e.g. VideoFFmpeg playing a video file). With this function you don't need anymore to link the image object to a Texture object to use: the image object is self-sufficient. bge.texture.ImageRender(scene, camera, fbo=None) Render to buffer is possible by passing a FBO object (see offScreenCreate). bge.texture.ImageRender.render() Allows asynchronous render: call this method to render the scene but without extracting the pixels yet. The function returns as soon as the render commands have been send to the GPU. The render will proceed asynchronously in the GPU while the host can perform other tasks. To complete the render, you can either call refresh() directly of refresh the texture to which this object is the source. Asynchronous render is useful to achieve optimal performance: call render() on frame N and refresh() on frame N+1 to give as much as time as possible to the GPU to render the frame while the game engine can perform other tasks. Support negative scale on camera. Camera scale was previously ignored in the BGE. It is now injected in the modelview matrix as a vertical or horizontal flip of the scene (respectively if scaleY<0 and scaleX<0). Note that the actual value of the scale is not used, only the sign. This allows to flip the image produced by ImageRender() without any performance degradation: the flip is integrated in the render itself. Optimized image transfer from ImageRender to buffer. Previously, images that were transferred to the host were always going through buffers in VideoTexture. It is now possible to transfer ImageRender images to external buffer without intermediate copy (i.e. directly from OGL to buffer) if the attributes of the ImageRender objects are set as follow: flip=False, alpha=True, scale=False, depth=False, zbuff=False. (if you need to flip the image, use camera negative scale)
2016-04-11BGE: Fix T48071: Global logic managerPorteries Tristan
Previously the logic manager was used as a global variable for SCA_ILogicBrick::m_sCurrentLogicManager, this request to always update it before run any python script and allow call function like ConvertPythonTo[GameObject/Mesh]. The bug showed in T48071 is that as exepted the global m_sCurrentLogicManager is not updated with the proper scene logic manager. Instead of trying to fix it by updating the logic manager everywhere and wait next bug report to add a similar line. The following patch propose a different way: - Every logic brick now contain its logic manager to SCA_ILogicBrick::m_logicManager, this value is set and get by SCA_ILogicBrick::[Set/Get]LogicManager, It's initialized from blender conversion and scene merging. - Function ConvertPythonTo[GameObject/mesh] now take as first argument the logic manager to find name coresponding object or mesh. Only ConvertPythonToCamera doesn't do that because it uses the KX_Scene::FindCamera function. Reviewers: moguri Differential Revision: https://developer.blender.org/D1913
2015-12-16BGE Ketsji clean-up: double-promotion warningsJorge Bernal
2015-12-13BGE: Use float as default instead of double in Moto library.Porteries Tristan
Use float in moto instead of double for MT_Scalar. This switch allow future optimization like SSE. Additionally, it changes the OpenGL calls to float versions as they are very bad with doubles. Reviewers: campbellbarton, moguri, lordloki Reviewed By: lordloki Subscribers: brecht, lordloki Differential Revision: https://developer.blender.org/D1610
2015-10-19BGE: Fix T46381 : last action frame not updated.Porteries Tristan
It fix T46381. Normally BL_Action::Update (manage action time, end, loop…) should be called the same number of times as BL_Action::UpdateIPO (update action position, scale ect… in the game object). But the bug report shows that UpdateIPO is called one less time than Update. To fix it i revert the commit 362b25b38287cb75e4d22b30bdbc7f47e8eb3fdf and implement a mutex in BL_Action::Update. Example file : {F245823} Reviewers: lordloki, kupoman, campbellbarton, youle, moguri, sybren Reviewed By: youle, moguri, sybren Maniphest Tasks: T39928, T46381 Differential Revision: https://developer.blender.org/D1562
2015-10-11BGE: Add recursive dupli group deletionThomas Szepe
This patch will delete all associated objects from a group instance (dupli group) if the are deleted. Reviewers: brita_, sybren, lordloki, moguri Reviewed By: lordloki, moguri Projects: #game_engine Maniphest Tasks: T36388 Differential Revision: https://developer.blender.org/D1205
2015-08-18BGE: Fix mesh not registered in scene libload.Porteries Tristan
2015-08-11BGE: Fix T33187 constraints replication for libloaded objects.Porteries Tristan
Reviewers: Moguri
2015-08-10BGE: Fix T19377 restore dynamics after unparenting object.Porteries Tristan
Reviewers: scorpion81
2015-07-16Fix T45428: Sometimes in a dupligroup linked actuators are not triggeredDalai Felinto
Revert "BGE: Cleanup : merge 3 loop in 1 in function DupliGroupRecurse." This reverts commit 371e5f25a054759014efa27c6fe4d497854ed64e. The fix is basically to revert the cleanup commit 371e5f25 (and 3d658bf7) Also 5dc22fbbf had to be adapted to the reverted code. Conflicts: source/gameengine/Ketsji/KX_Scene.cpp
2015-07-12BGE Clean-up: New EXP prefix for the BGE Expression moduleJorge Bernal
The expression module now uses an EXP prefix and it follows a distribution similar to blender. Additionally the hash function in EXP_HashedPtr.h was simplified and the files EXP_C-Api.h &.EXP_C-Api.cpp were deleted because were unused. Reviewers: campbellbarton, moguri, sybren, hg1 Projects: #game_engine Differential Revision: https://developer.blender.org/D1221
2015-07-06BGE: Fix T45341: Crash when camera is eliminatedJorge Bernal
A null check is added to avoid crashes when the camera is removed during the game and no other is available
2015-07-02BGE: Fix T45196 armature action on libloading.Porteries Tristan
2015-06-15BGE: fix use after freeCampbell Barton
2015-06-13Fix for building without PythonCampbell Barton
2015-05-17BGE: Fix T42244 LibLoad crash with logic brick KX_TouchSensorPorteries Tristan
I remove duplicate and wrong code which treat the special case of KX_TouchSensor. And Also the re-conversion of linked logic brick.
2015-05-15BGE: Fix T41299 Group API for child object in dupli instance group.Porteries Tristan
2015-05-15BGE: Fix stupid typo error in DupliGroupRecursePorteries Tristan
2015-05-15BGE: Cleanup : merge 3 loop in 1 in function DupliGroupRecurse.Porteries Tristan
2015-04-26BGE : addObject in python without reference object.Porteries Tristan
Making the reference argument optional for the addObject function. ``` scene.addObject("Cube") ``` This allows to keep the rotation, scale and position of the original object. To avoid layer problems with lights if the reference arguments is None, the new object have the same layer than the active layers in scene. Reviewers: lordloki, moguri, hg1, sybren Reviewed By: hg1, sybren Subscribers: agoose77 Projects: #game_engine Differential Revision: https://developer.blender.org/D1222
2015-04-21BGE: scene.pre_draw_setup[] callbackDalai Felinto
This callback allows the user to change the camera data right before the rendering calculations. scene.pre_draw[] is not enough here, because if you want to change the camera matrices (projection/modelview) the culling test is done before that (after pre_draw_setup[] though). Reviewers: moguri, campbellbarton Differential Revision: https://developer.blender.org/D1251 Python sample code using this. The sample scene would need a default camera (not used for rendering), a dummy camera ('Camera.VR'), and two cameras ('Camera.Left', 'Camera.Right') that will be used for the actual rendering. ``` import bge def callback(): scene = bge.logic.getCurrentScene() objects = scene.objects vr_camera = objects.get('Camera.VR') if bge.render.getStereoEye() == bge.render.LEFT_EYE: camera = objects.get('Camera.Left') else: camera = objects.get('Camera.Right') vr_camera.worldOrientation = camera.worldOrientation vr_camera.worldPosition = camera.worldPosition def init(): scene = bge.logic.getCurrentScene() main_camera = scene.active_camera main_camera.useViewport = True scene.pre_draw_setup.append(callback) objects = scene.objects vr_camera = objects.get('Camera.VR') vr_camera.useViewport = True vr_camera.setViewport( 0, 0, bge.render.getWindowWidth(), bge.render.getWindowHeight() ) ```
2015-04-19BGE : Standardization of callbacks execution.Porteries Tristan
A new function (RunPythonCallBackList) to call all python functions contained in a python list was developed. This function has: - first argument is the python list of callbacks - second argument is a python list of arguments - third argument is the minimum quantity of arguments - forth argument is the maximum quantity of arguments It improves flexibility and supports *args. Reviewers: moguri, dfelinto, campbellbarton, sybren Reviewed By: campbellbarton, sybren Subscribers: sybren Projects: #game_engine Differential Revision: https://developer.blender.org/D1102
2015-04-06BGE: followup of renaming parameter "other" to "reference"Sybren A. Stüvel
See commit 3e5332bb959c686cb5bc5b6007d96088d5d1bc23
2015-04-06BGE: fixed nomenclature of KX_Scene::addObject and KX_Scene::AddReplicaObjectSybren A. Stüvel
KX_Scene::addObject: Changed the parameter "other" to "reference", as "other" doesn't mean anything. KX_Scene::AddReplicaObject: Changed the parameter "parentobject" to "referenceobject", as the parameter did NOT contain a parent object in any way. Now both functions use the same kind of name for the same thing. Thanks to panzergame / Porteries Tristan.
2015-03-24BGE: Add new world API KX_WorldInfo (KX_Scene)Thomas Szepe
This Patch will add a the world API (mist, background, ambient) to KX_WorldInfo. The new API uses now attributes. Reviewers: campbellbarton, moguri Reviewed By: moguri Subscribers: klauser, brecht Differential Revision: https://developer.blender.org/D157
2015-03-23BGE: LoD Hysteresis clean upJorge Bernal
Move scene hysteresis value to KX_Scene where it should be (instead of KX_GameObject)
2015-03-22BGE: New hysteresis offset to improve LOD level transitionsJorge Bernal
This change introduces a new hysteresis parameter that it will be added or subtracted to/from the LOD distance to avoid popping when a LOD object moves close to the LOD transition continuously. Then, we have the following: - a new LOD Hysteresis setting per scene (default 10%) which is located in Scene context --> Level of Detail panel. This scene parameter also will active/deactive the scene hysteresis. - and a new LOD Hysteresis setting per object (default 10%) which is located in Object context --> Levels of Detail panel. The LOD hysteresis setting per object (if active) will overwrite the hysteresis setting per scene value. For the new blends: the hysteresis setting per scene would be active by default and the per object would be inactive by default. For the old blends: both hysteresis settings (per scene and per object) would be inactive by default. A quick way to take advantage of this feature for old blends would be to activate the hysteresis parameter in the scene context -> Level of Detail panel Reviewers: campbellbarton, kupoman, moguri Reviewed By: kupoman, moguri Subscribers: nonamejuju, lordodin Differential Revision: https://developer.blender.org/D957
2015-03-22BGE: Add physics constraints replicationThomas Szepe
This patch will add a physics constraints replication for group instances (dupli group). It also fix crashing when when a group instance is made from a linked group instance and both are on the active layer. Initial patch T31443 from moerdn (Martin Sell). Reviewers: lordloki, sergof, moguri, sybren Reviewed By: moguri, sybren Differential Revision: https://developer.blender.org/D658
2015-03-16fix D1130 renamed the enum OBJ_FONT to OBJ_TEXT to avoid naming conflicts in ↵Gaia Clary
Windows
2015-03-15BGE : Fix for T43724 and T41599 addObject() with KX_FontObject andPorteries Tristan
overlay scene GetGameObjectType is overwritten in KX_FontObject to differentiate a font object into AddNodeReplicaObject function. Now, in this function, we add fonts in the appropriate list. Reviewers: campbellbarton, moguri, dfelinto, lordloki Reviewed By: lordloki Subscribers: lordloki Projects: #game_logic, #game_engine Differential Revision: https://developer.blender.org/D1130
2015-02-21gameengine: KX_Scene comment cleanupInes Almeida
2015-01-08Fix T40257: Frustum culling not working properlyMitchell Stokes
Instead of getting fancy this time, we'll just use Mahalin's simpler fix. This may have slight performance impacts, but it is a lot simpler than the previous fix and shouldn't cause as many bugs.
2015-01-08Revert "Fix T40257: Frustum culling not working properly"Mitchell Stokes
This reverts commit 315609ec0c1e28eb12bde3e8bbd2a5b03672b1a9. This fix still causes more issues than it solves.
2015-01-07Fix for bool flag useCampbell Barton
2014-09-23Fix T41259: Objects parented to non-armature objects cannot play shape ↵Mitchell Stokes
actions in the BGE
2014-08-23BGE: fix crash and return boolean on scene.replace()Benoit Bolsee
Scene replacement with invalid scene name was crashing blender, now it's a no-op. KS_Scene.replace() to return a boolean to indicate if the scene is valid and is scheduled for replacement. This allows more robust game management.
2014-07-12BGE debug API and actuatorHG1
This patch adds some new debug methods to the KX_GameObject for manually adding the debug list and bge.render for controlling the debug visualization. It also adds a new debug actuator, which allows to control the same functions. This patch is a updated version of T33701. Thread on Blenderartists: http://blenderartists.org/forum/showthread.php?264745-Debug-proerties-for-added-objects-patch&p=2256018&viewfull=1#post2256018 Reviewers: moguri Reviewed By: moguri Differential Revision: https://developer.blender.org/D635
2014-07-11Fix T40257: Frustum culling not working properlyMitchell Stokes
This is mostly the same fix as before, but now code depending on culling checks is executed after KX_Scene->CalculateVisibleMeshes(). As a side-effect, LoD checks and animation culling now use the current frame's culling information rather than the previous frame's.
2014-07-03Fix T40923: An error from a python controller on a LibFreed object causes a ↵Mitchell Stokes
crash
2014-06-20Fix T40697: Skinned meshes with shapekeys crashing in the BGEMitchell Stokes
2014-05-28Fix 40343: Using replace mesh (e.g., LODs) on a skinned mesh crashes.Mitchell Stokes
Need to use parent->AddRef() in a few places.
2014-05-28BGE: Accidentally committed some debug code in 8dafbe.Mitchell Stokes
2014-05-28BGE cleanup: Remove unused KX_TrackToActuator::m_tracktime member.Mitchell Stokes
2014-05-20BGE cleanup: Removing the unused KX_Scene::UpdateMeshTransformations() function.Mitchell Stokes
2014-05-13Fix T40111: replaceMesh() crashes BGE when used on a parented objectMitchell Stokes
The replace mesh code was still calling release() on the parent object when it no longer needed to (due to earlier commits).
2014-05-10BGE: Fixing shape key animations on meshes with no armature.Mitchell Stokes
Their transverts were not being updated after code changes for multi-threaded skinning.
2014-05-05Fix T39928: Blender crash/freeze when game engine is started with animation ↵Mitchell Stokes
played directly on camera object with parents. Updating object IPOs is not currently thread-safe since it also updates children. This leads to problems when parents and children are both animated. For now, updating object IPOs is done in its own loop to avoid threading issues.
2014-05-02Fix T35552: LibLoading objects with Collision sensors gives an errorMitchell Stokes
The collision sensors were not being properly unregistered from the physics system before they were merged into the current scene.