| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
future debugging of VectorRenderModule
|
|
|
|
| |
places where we were not already.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
http://stackoverflow.com/questions/2519655/httpwebrequest-is-extremely-slow."
But the patch is here, in case anyone wants to try it.
This reverts commit 531edd51d82ecd6a842a2611c99e9919634491ef.
|
|
|
|
|
|
| |
http://stackoverflow.com/questions/2519655/httpwebrequest-is-extremely-slow.
Thanks R.Gunther (rigun@rigutech.nl) https://lists.berlios.de/pipermail/opensim-users/2012-September/010986.html
|
|
|
|
|
|
| |
concurrent thread use provoking mono crashes.
Same rationale as commit 13690582.
|
|
|
|
|
|
|
|
|
| |
fall below current viewer discard level 2 thresholds.
Viewer LL 3.3.4 and before sometimes fail to properly redisplay dynamic textures that have a small data length compared to pixel size when pulled from cache.
This appears to happen when the data length is smaller than the estimate discard level 2 size the viewer uses when making this GetTexture request.
This commit works around this by always regenerating dynamic textures that fall below this threshold rather than reusing them if ReuseDynamicTextures = true
This can be controlled by the [Textures] ReuseDynamicLowDataTextures config setting which defaults to false.
|
|
|
|
|
|
|
|
|
|
| |
that of an otherwise valid asset, return HTTP PartialContent rather than RequestedRangeNotSatisfiable.
This is because recent viewers (3.2.1, 3.3.4) and probably earlier ones using the http GetTexture capability will sometimes make such invalid range requests.
This appears to happen if the viewer's estimate of texture sizes at discard levels > 0 (chiefly 2) exceeds the total texture size.
I believe this does not normally happen but can occur for dynamic textures with are large but mainly blank.
If this happens, returning a RequestedRangeNotSatisfiable will cause the viewer to not render the texture at the final resolution.
However, returning a PartialContent (or OK) even with 0 data will allow the viewer to render the final texture.
|
|
|
|
|
|
|
|
|
|
|
| |
configurable on compile.
Disabled (status quo) by default.
This flag makes the dynamic texture module reuse cache previously dynamically generated textures given the same input commands and extra params for 24 hours.
This occurs as long as those commands would always generate the same texture (e.g. they do not contain commands to fetch data from the web).
This makes texture changing faster as a viewer-cached texture uuid is sent and may reduce simulator load in regions with generation of lots of dynamic textures.
A downside is that this stops expiry of old temporary dynamic textures from the cache,
Another downside is that a jpeg2000 generation that partially failed is currently not regenerated until restart or after 24 hours.
|
|
|
|
| |
Remove mismatching ConvertStream() where there is no AsyncConvertStream and neither IDynamicTextureManager implementer implements this method.
|
|
|
|
| |
removal of unncessary syntax clutter
|
|
|
|
|
|
|
|
|
|
| |
prevents malloc heap corruption seen under Ubuntu 10.04.1 and 11.04 - probably a libcairo issue
In testing, it appears that if multiple threads dispose of separate GDI+ objects simultaneously,
the native malloc heap can become corrupted, possibly due to a double free(). This may be due to
bugs in the underlying libcairo used by mono's libgdiplus.dll on Linux/OSX. These problems were
seen with both libcario 1.10.2-6.1ubuntu3 and 1.8.10-2ubuntu1. They go away if disposal is perfomed
under lock.
|
|
|
|
| |
VectorRenderModule inside its own context, rather than disposing of the old font before using it as a prototype for the new.
|
|
|
|
| |
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
|
|
|
|
|
|
|
| |
textures.
The convention is that if an object implements IDiposable() the code must explicitly call Dispose() or call it via the using statement.
This may be particularly important for GDI+ objects since they encapsulate native code entities.
|
|
|
|
| |
OpenJPEG.EncodeFromImage() fails in VectorRender and DynamicTexture modules
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added the following replacement functions for compliance to the OSSL standards stated on the wiki:
osGetTerrainHeight
osSetTerrainHeight
osGetSunParam
osSetSunParam
osSetPenColor
The functions that do not comply to the standard give a warning when used but work normally otherwise.
The graphics primitive drawing command "PenColor" has also been added as well as dynamic texture parameter "bgcolor" as an alternative to "bgcolour".
The following two functions have been renamed because they are not enabled yet aynway:
osWindParamSet => osSetWindParam
osWindParamGet => osGetWindParam
|
| |
|
|
|
|
| |
This reverts commit ec3c31e61e5e540f822891110df9bc978655bbaf.
|
|
|
|
| |
Signed-off-by: Melanie <melanie@t-data.com>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
via
[VectorRender]
font_name = "Comic Sans MS"
in OpenSim.ini
- adding osSetFontName OSSL function
|
| |
|
|
|
|
|
|
| |
using arrow, diamond, round and flat caps.
* Made image request safer, if it can't find an image for any reason, draws a square where the image should be and a message alerting the user.
|
|
|
|
|
|
| |
functions, this one has no start and end point, but a number of points that will form the desired polygon. Only FilledPolygon implemented so far.
* Also added some LSL transparent type conversion, as it's done in LSL scripting (string to integer, float to string, etc)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- fixes wild swings in memory usage related to usage of GetDrawStringSize()
We've been seeing wild swings in memory usage and a large chunk of
memory leak. From analysing this it's pretty clear that the mono
garbage collector is rather buggy! When exercised heavily it looks
like it frees more than its meant to resulting in crashes.
GetDrawStringSize() measures the size in pixels of text. To do this
memory for an image is allocated and used to call the GDI text
measure functions. Although no reference to the temporary memory
for the measuring is kept, it takes quite a while for the mono
garbage collector to clean up - so if lots calls to
GetDrawStringSize() are made at once there can be a spike in memory
usage. If the garbage collector is not fast enough then the GDI
layer runs out of memory. It also looks like the garbage collector
is not always reclaiming all of the memory.
I've attached an OpenSim patch which works around the garbage collector
issues. Instead of dynamically allocating memory for measuring
text sizes, it serialises (on a per region basis) access to a single
block of memory. The effect of this is to be nicer to the garbage
collector as it has a lot less work to do, at the cost of some
theoretical loss in performance (nothing noticeable with our tests
which hit it pretty hard).
OpenSim still does leak memory slowly, but it is a lot more stable
with this patch. I suspect that either the garbage collector misses
bits of freed memory or the GDI/cairo layer leaks a bit each time a
texture is created. Thats going to be a lot harder to hunt down, but
for reference if someone has OpenSim running on Windows it would be
interesting to see if it has the same problem as it would tell us if
its a mono/GDI problem or an OpenSim problem.
|
|
|
|
| |
LICENSE.txt.
|
|
|
|
|
|
|
|
| |
Adds a test to see if the first option on osDynamicTextureData is "AltDelim",
then picks up the first character after the whitespace and uses as a delimiter
instead of ;. If this string does not appear at the start of the data, the
default ; will be used, hence this should not break existing code.
|
|
|
|
|
|
|
|
|
| |
* Added log4net dependency to physxplugin in prebuild.xml.
* Added missing m_log fields to classes.
* Replaced Console.WriteLine with appropriate m_log.Xxxx
* Tested that nant test target runs succesfully.
* Tested that local opensim sandbox starts up without errors.
|
| |
|
|
|
|
| |
with no alpha value). Thanks BlueWall.
|
| |
|
|
|
|
|
| |
Adding the ability to set the background color for osSetDynamicTextureData in the extra data: bgcolour:value (see http://msdn.microsoft.com/en-us/library/aa358802.aspx [^] for color names)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The attached patch implements osGetDrawStringSize that looks like:
vector osGetDrawStringSize(string contentType, string text, string
fontName, int fontSize)
in LSL. It is meant to be used in conjunction with the osDraw*
functions. It returns accurate information on the size that a given
string will be rendered given the specified font and font size.
This allows for nicely formatted and positioned text on the generated
image.
|
| |
|
| |
|
|
NOTHING has been deleted or moved off to forge at this point. what
has happened is that OpenSim.Region.Environment.Modules has been split
in two:
- OpenSim.Region.CoreModules: all those modules that are either
directly or indirectly referenced from other OpenSim packages, or
that provide functionality that the OpenSim developer community
considers core functionality:
CoreModules/Agent/AssetTransaction
CoreModules/Agent/Capabilities
CoreModules/Agent/TextureDownload
CoreModules/Agent/TextureSender
CoreModules/Agent/TextureSender/Tests
CoreModules/Agent/Xfer
CoreModules/Avatar/AvatarFactory
CoreModules/Avatar/Chat/ChatModule
CoreModules/Avatar/Combat
CoreModules/Avatar/Currency/SampleMoney
CoreModules/Avatar/Dialog
CoreModules/Avatar/Friends
CoreModules/Avatar/Gestures
CoreModules/Avatar/Groups
CoreModules/Avatar/InstantMessage
CoreModules/Avatar/Inventory
CoreModules/Avatar/Inventory/Archiver
CoreModules/Avatar/Inventory/Transfer
CoreModules/Avatar/Lure
CoreModules/Avatar/ObjectCaps
CoreModules/Avatar/Profiles
CoreModules/Communications/Local
CoreModules/Communications/REST
CoreModules/Framework/EventQueue
CoreModules/Framework/InterfaceCommander
CoreModules/Hypergrid
CoreModules/InterGrid
CoreModules/Scripting/DynamicTexture
CoreModules/Scripting/EMailModules
CoreModules/Scripting/HttpRequest
CoreModules/Scripting/LoadImageURL
CoreModules/Scripting/VectorRender
CoreModules/Scripting/WorldComm
CoreModules/Scripting/XMLRPC
CoreModules/World/Archiver
CoreModules/World/Archiver/Tests
CoreModules/World/Estate
CoreModules/World/Land
CoreModules/World/Permissions
CoreModules/World/Serialiser
CoreModules/World/Sound
CoreModules/World/Sun
CoreModules/World/Terrain
CoreModules/World/Terrain/DefaultEffects
CoreModules/World/Terrain/DefaultEffects/bin
CoreModules/World/Terrain/DefaultEffects/bin/Debug
CoreModules/World/Terrain/Effects
CoreModules/World/Terrain/FileLoaders
CoreModules/World/Terrain/FloodBrushes
CoreModules/World/Terrain/PaintBrushes
CoreModules/World/Terrain/Tests
CoreModules/World/Vegetation
CoreModules/World/Wind
CoreModules/World/WorldMap
- OpenSim.Region.OptionalModules: all those modules that are not core
modules:
OptionalModules/Avatar/Chat/IRC-stuff
OptionalModules/Avatar/Concierge
OptionalModules/Avatar/Voice/AsterixVoice
OptionalModules/Avatar/Voice/SIPVoice
OptionalModules/ContentManagementSystem
OptionalModules/Grid/Interregion
OptionalModules/Python
OptionalModules/SvnSerialiser
OptionalModules/World/NPC
OptionalModules/World/TreePopulator
|