aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneGraph.cs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* commit code which stops full updates being fired multiple times when ↵Justin Clark-Casey (justincc)2010-05-271-2/+32
| | | | | | attachments cross standalone region boundaries lots of messy debug code here too which would need to be removed
* backport from master fix for attachment displayJustin Clark-Casey (justincc)2010-05-241-1/+0
| | | | this fix stops two full updates being sent on attachment rather than one. Sending two can stop the client displaying attachments properly
* Fix link security issueMelanie2010-04-301-32/+9
|
* Fix bug where approximately half the time, attachments would rez only their ↵Justin Clark-Casey (justincc)2010-03-091-21/+41
| | | | | | | | | | root prim until right clicked (or otherwise updated). The root cause of this problem was that multiple ObjectUpdates were being sent on attachment which differed enough to confuse the client. Sometimes these would eliminate each other and sometimes not, depending on whether the scheduler looked at the queued updates. The solution here is to only schedule the ObjectUpdate once the attachment code has done all it needs to do. Backport from head.
* Formatting cleanup.Jeff Ames2010-02-151-1/+1
|
* Revolution is on the roll again! :)Revolution2010-02-141-0/+9
| | | | | | | | Fixes: Undo, T-pose of others on login, modifiedBulletX works again, feet now stand on the ground instead of in the ground, adds checks to CombatModule. Adds: Redo, Land Undo, checks to agentUpdate (so one can not fall off of a region), more vehicle parts. Finishes almost all of LSL (1 function left, 2 events). Direct flames and kudos to Revolution, please Signed-off-by: Melanie <melanie@t-data.com>
* Revert "change position of OnAttach event firing so that this also happens ↵Melanie2010-02-041-1/+2
| | | | | | | | when a user teleports into a region" The behavior introduced here is not compatible with SL This reverts commit b6bee4999c9d238a052022f105069ea4eb85f8f4.
* change position of OnAttach event firing so that this also happens when a ↵Justin Clark-Casey (justincc)2010-02-031-2/+1
| | | | user teleports into a region
* Actually make EventManager.OnAttach() fire when an object is attached. ↵Justin Clark-Casey (justincc)2010-02-011-0/+3
| | | | Previously, only detach was firing!
* Don't try to start attachment scripts or send updates if the attachment ↵Justin Clark-Casey (justincc)2010-02-011-25/+52
| | | | itself has been unsuccessful
* Experimental: Remove explicit property sendsMelanie2009-12-061-11/+11
|
* Skip single prims in unlink selectionsMelanie2009-12-061-8/+11
|
* Change locking to not mix explicit Monitor.* calls with lock()Melanie2009-12-061-2/+12
|
* Lock updates out while linking and unlinkingMelanie2009-12-061-121/+134
|
* Eliminate multiple updates on link/unlinkMelanie2009-12-061-0/+2
|
* Small performance tweaks to code called by the heartbeat loopJohn Hurliman2009-10-281-5/+9
|
* Experimental change to use an immutable array for iterating ScenePresences, ↵John Hurliman2009-10-231-76/+84
| | | | avoiding locking and copying the list each time it is accessed
* Merge branch 'master' into vehiclesMelanie2009-10-221-22/+10
|\
| * * Change Util.FireAndForget to use ThreadPool.UnsafeQueueUserWorkItem(). ↵John Hurliman2009-10-191-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids .NET remoting and a managed->unmanaged->managed jump. Overall, a night and day performance difference * Initialize the LLClientView prim full update queue to the number of prims in the scene for a big performance boost * Reordered some comparisons on hot code paths for a minor speed boost * Removed an unnecessary call to the expensive DateTime.Now function (if you *have* to get the current time as opposed to Environment.TickCount, always use DateTime.UtcNow) * Don't fire the queue empty callback for the Resend category * Run the outgoing packet handler thread loop for each client synchronously. It seems like more time was being spent doing the execution asynchronously, and it made deadlocks very difficult to track down * Rewrote some expensive math in LandObject.cs * Optimized EntityManager to only lock on operations that need locking, and use TryGetValue() where possible * Only update the attachment database when an object is attached or detached * Other small misc. performance improvements
| * Committing the second part of Jim Greensky @ Intel Lab's patch, ↵John Hurliman2009-10-171-1/+1
| | | | | | | | re-prioritizing updates
| * Object update prioritization by Jim Greensky of Intel Labs, part one. This ↵John Hurliman2009-10-151-1/+0
| | | | | | | | implements a simple distance prioritizer based on initial agent positions. Re-prioritizing and more advanced priority algorithms will follow soon
| * * Removed some of the redundant broadcast functions in Scene and SceneGraph ↵John Hurliman2009-10-151-17/+0
| | | | | | | | | | | | | | | | so it is clear who/what the broadcast is going to each time * Removed two redundant parameters from SceneObjectPart * Changed some code in terse update sending that was meant to work with references to work with value types (since Vector3 and Quaternion are structs) * Committing a preview of a new method for sending object updates efficiently (all commented out for now)
* | Merge branch 'master' into vehiclesMelanie2009-10-151-19/+9
|\ \ | |/
| * Optimized heartbeat by calling Update() only on updated objects.Dan Lake2009-10-131-19/+9
| | | | | | | | | | | | | | | | During the heartbeat loop, Update() is called on every SceneObjectGroup which in turn checks if any SceneObjectPart has changed. For large regions (> 100k prims) this work consumes 20-30% of a CPU even though there are only a few objects updating each frame. There is only one other reason to check every object on every frame, and that is the case where a script has registered the object with an "at target" listener. We can easily track when an object is registered or unregistered with an AtTarget, so this is not a reason to check every object every heartbeat. In the attached patch, I have added a dictionary to the scene which tracks the objects which have At Targets. Each heartbeat, the AtTarget() function will be called on every object registered with a listener for that event. Also, I added a dictionary to SceneGraph which stores references to objects which have been queued for updates during the heartbeat. At each heartbeat, Update() is called only on the objects which have generated updates during that beat.
| * Revert "Rewrote parts of the code that were double-locking different ↵Melanie2009-10-071-23/+13
| | | | | | | | | | | | objects. This is about half of the code base reviewed." This reverts commit e992ca025571a891333a57012c2cd4419b6581e5.
| * Rewrote parts of the code that were double-locking different objects. This ↵Diva Canto2009-10-061-13/+23
| | | | | | | | is about half of the code base reviewed.
* | Merge branch 'master' into vehiclesMelanie2009-10-011-1/+18
|\ \ | |/
| * Formatting cleanup.Jeff Ames2009-10-011-1/+1
| |
| * A little hack to see if this fixes the problems with ~20% of SOG's becoming ↵Diva Canto2009-09-291-0/+17
| | | | | | | | phantom after an import to megaregions.
* | Commit initial version of KittoFlora's vehicle changesopensim2009-09-301-3/+3
|/
* Thank you, dslake, for a set of patches to improve OpenSim startupMelanie2009-09-021-2/+2
| | | | and idle performance.
* Removed some debug messagesDiva Canto2009-08-161-7/+0
|
* Making attachments work again. Tons of debug more. This needs more testing ↵Diva Canto2009-08-161-1/+12
| | | | and a lot of cleaning.
* Merge branch 'master' of ssh://diva@opensimulator.org/var/git/opensim into ↵Diva Canto2009-08-161-10/+7
|\ | | | | | | inventory-connector
| * Misc cleanup.Jeff Ames2009-08-161-10/+7
| |
* | Changed one word in a commentDiva Canto2009-08-151-1/+1
| |
* | Changed FromAssetID to FromItemIDDiva Canto2009-08-151-7/+7
| |
* | Redirected all calls to CachedUserProfile methods to the inventory service. ↵Diva Canto2009-08-121-2/+2
|/ | | | Redirection of the RootFolder property is still todo. This compiles but probably inventory will be inconsistent.
* Slight change to state management for attach scheduling.Alan Webb2009-08-041-2/+2
| | | | Signed-off-by: dr scofield (aka dirk husemann) <drscofield@xyzzyxyzzy.net>
* This change adds support for the attach event in scripts.Alan Webb2009-08-041-0/+2
| | | | | | | | | | | | | | | | | | | [1] Added a new OnAttach event to Scene/EventManager [2] Hooked up existing attach event handler in XEngine. [3] Modified SceneGraph and Scene.Inventory to trigger attach events at the appropriate places. I was forced to distribut the changes across two files because of the way attach processing is distributed across the two files. [4] In the case of RezSingleAttachmentFromInventory it is necessary to handle event scheduling in a special way. There is no synchronous path available, so the fact that this object is attached, and who it is attached to, is cached when the ScriptInstance is created. When the script is started, the attached handler is driven after on_rez (but before changed, this should be reviewed). Signed-off-by: dr scofield (aka dirk husemann) <drscofield@xyzzyxyzzy.net>
* fixed the bug where changing the rotation of a selection of prims in a ↵MW2009-07-171-0/+19
| | | | | | | | | linkset, made each of those prims rotate around its own centre rather than around the geometric centre of the selection like they should do (and like the client expects). This involved adding a new OnUpdatePrimSingleRotationPosition event to IClientAPI so that we can get the changed position from the client. Btw adding new events to IClientAPI is really tedious where you have to copy the change across to at least 5 or 6 other files. [Note this doesn't fix the bug where any rotation changes to the root prim (but not the whole linkset) cause rotation errors on the child prims.]
* Explicitly set the changed status of the prim groups affected in a delinkMelanie Thielker2009-06-021-0/+1
| | | | | | Mantis #2484
* Minor: Change OpenSim to OpenSimulator in older copyright headers and ↵Jeff Ames2009-06-011-1/+1
| | | | LICENSE.txt.
* Add a tweakable for the prim queue preloadMelanie Thielker2009-05-011-0/+1
|
* Again, completely revamp the unlink code to finally allow unlinking Melanie Thielker2009-04-291-79/+81
| | | | | | | | arbitrary combinations of root and child prims from one or multiple link sets. Please test throughly and consider things UNSTABLE until this is proven out.
* Formatting cleanup.Jeff Ames2009-04-141-5/+5
|
* Thank you, dslake, for a patch that converts many of the linear searchesMelanie Thielker2009-04-121-241/+197
| | | | | | | | in SceneGraph to fast dictionary lookups. Includes a regression fix for attachments by myself. Fixes Mantis #3312
* Handle ObjectSpin* packets to spin physical prims on Ctrl+Shift+Dragnlin2009-04-101-0/+41
| | | | | | | | | | | | | | Addresses Mantis #3381 The current implementation works as expected if the object has no rotation or only rotation around the Z axis; you can spin the object left or right (around the world Z axis). It works a little unexpectedly if the object has a non-Z-axis rotation; in this case the body is spun about its local Z axis, not the world Z-axis. (But SL also behaves oddly with a spin on an arbitrarily rotated object.)
* * Implements retrieving child primitives via World.Objects[id] (MRM)Adam Frisby2009-04-091-0/+3
| | | | | | * Optimizes SceneGraph - fetches on primitives via "GetGroupByPrim" wont search the entire list if the primitive is infact the root. (Core) * Updates Test MRM.
* * refactor: Move god related methods in Scene out to a moduleJustin Clarke Casey2009-03-301-1/+1
|