<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sheet+Spotter</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sheet+Spotter"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Sheet_Spotter"/>
	<updated>2026-07-28T16:56:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=HTTP_Texture&amp;diff=366932</id>
		<title>HTTP Texture</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=HTTP_Texture&amp;diff=366932"/>
		<updated>2009-05-21T02:17:38Z</updated>

		<summary type="html">&lt;p&gt;Sheet Spotter: Added simplified class diagrams for &amp;quot;Texture Threads&amp;quot; and &amp;quot;Texture Workers&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Questions this document will answer:&lt;br /&gt;
* What is the &amp;quot;http-texture&amp;quot; project?&lt;br /&gt;
* Where are the files involved with this project? (modified compared to trunk)&lt;br /&gt;
* How is this supposed to work?&lt;br /&gt;
* What about all those threads and their use?&lt;br /&gt;
* What about CURL use?&lt;br /&gt;
&lt;br /&gt;
== Objective of the http-texture Project ==&lt;br /&gt;
The initial idea of the project is to allow the viewer to point to any image file of any format anywhere on the internet, pull it using the http protocol and use it as a regular texture anywhere textures are used.&lt;br /&gt;
&lt;br /&gt;
This involves a bunch of moving (and new) parts:&lt;br /&gt;
* Using any file format as textures (instead of just j2c)&lt;br /&gt;
* Pulling image files using HTTP (instead of UDP)&lt;br /&gt;
* Getting resources from any host (instead of just the LL asset server)&lt;br /&gt;
&lt;br /&gt;
This is a rather ambitious and wide ranging change. As of today (March 24th, 2009), the main plumbing has been implemented with the following caveats:&lt;br /&gt;
* Only jpeg images are supported as another file format&lt;br /&gt;
* Such images must be loaded at once (no progressive rendering yet)&lt;br /&gt;
* Except for jpegs specified with an &amp;quot;http://&amp;quot; URLs, all other images are still using the old fashion protocol&lt;br /&gt;
* There are still quite a bit of crashes here and there... Don&#039;t use such a build for your regular SL activities (search for bugs logged against &#039;&#039;http-texture branch&#039;&#039; in PJIRA for more info)&lt;br /&gt;
&lt;br /&gt;
== Files Involved ==&lt;br /&gt;
Here are the files involved in the implementation of this feature:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/indra/llcommon/llqueuedthread.cpp        // Modifications to the virtual method LLQueuedThread::threadedUpdate()&lt;br /&gt;
/indra/llcommon/llqueuedthread.h          // (does nothing in the root class, see derived class)&lt;br /&gt;
&lt;br /&gt;
/indra/llimage/llimage.cpp                // Initializes the image worker thread LLImageWorker::initImageWorker()&lt;br /&gt;
/indra/llimage/llimagedxt.cpp&lt;br /&gt;
/indra/llimage/llimageworker.cpp          // Main implementation of the threading for llimage objects (completely redone)&lt;br /&gt;
/indra/llimage/llimageworker.h&lt;br /&gt;
&lt;br /&gt;
/indra/llmessage/llcurl.cpp               // Threaded CUrl implementation&lt;br /&gt;
/indra/llmessage/llcurl.h                 // (all of this has already been merged in trunk)&lt;br /&gt;
/indra/llmessage/llhttpclient.cpp         //&lt;br /&gt;
/indra/llmessage/llhttpclient.h           //&lt;br /&gt;
/indra/llmessage/llhttpassetstorage.cpp   //&lt;br /&gt;
/indra/llmessage/llurlrequest.cpp         //&lt;br /&gt;
/indra/llmessage/llurlrequest.h           //&lt;br /&gt;
&lt;br /&gt;
/indra/newview/llappviewer.cpp            // Calls the init of the image decoding threads&lt;br /&gt;
/indra/newview/llconsole.cpp              // Changed to use mutexes and different line coloring&lt;br /&gt;
/indra/newview/llconsole.h                // &lt;br /&gt;
/indra/newview/lltexturecache.cpp         // Changes with locked mutex, cache but without offset writing and other limitations&lt;br /&gt;
/indra/newview/lltexturecache.h           // Adds open file book keeping mOpenFiles&lt;br /&gt;
/indra/newview/lltexturefetch.cpp         // Adds most of the changes related to http texture fetching and threading&lt;br /&gt;
/indra/newview/lltexturefetch.h           //&lt;br /&gt;
/indra/newview/lltextureview.cpp          // Lots of fonts and text changes. Similar to llconsole in scope.&lt;br /&gt;
/indra/newview/llviewerimage.cpp          // Creates the texture request from the passed URL&lt;br /&gt;
/indra/newview/llviewerimage.h            // Holds the URL for the texture in mURL&lt;br /&gt;
/indra/newview/llviewerimagelist.cpp      // Manages the list of textures&lt;br /&gt;
/indra/newview/llviewerimagelist.h        // Defines getImageFromUrl()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
=== Fetching ===&lt;br /&gt;
==== Common Mechanism ====&lt;br /&gt;
The fetching mechanism uses threads to get data while the main rendering loop goes on. All threads used here inherit from LLThread so a good understanding of this class (and of LLMutex, defined in the same llthread file) is important to understand the texture fetching mechanism.&lt;br /&gt;
&lt;br /&gt;
4 threads are used when requesting a tile/image/texture:&lt;br /&gt;
* the LLTextureCache thread: used to retrieve all textures from the local cache. This one is actually not used for http fetched textures.&lt;br /&gt;
* the LLTextureFetch thread: used to request textures (all types: j2c, jpg, etc...) from servers, support a variety of protocols (UDP, HTTP). That&#039;s the &amp;quot;front&amp;quot; thread of sort, the one that we hit first when posting a texture fetch request and that handles the delegation of tasks to other threads.&lt;br /&gt;
* the LLImageDecodeThread thread: used to convert the raw data loaded from the image file (or gathered in chunks by the network thread) into pixel data. In http texture, this is used at the end to decode the whole jpeg image in one single chunk of work.&lt;br /&gt;
* curl thread&lt;br /&gt;
&lt;br /&gt;
Synchronization between threads is done using LLMutex, a wrap around Apache mutex to lock/unlock critical sections. &lt;br /&gt;
&lt;br /&gt;
Threaded code is really hairy to track with work orders being created, checked, yielding, running, aborted, ending but not quite done, etc... It&#039;s hard to find ones way through the maze. So it&#039;s a good idea to keep in mind a little narrative, a story of what is supposed to happen. It&#039;s also a good handle to compare the code with the intent of the designer and, hopefully, fix problems.&lt;br /&gt;
&lt;br /&gt;
So, how is an http texture supposed to be fetched and find its way in the viewer&#039;s data structure?&lt;br /&gt;
&lt;br /&gt;
The general idea of texture fetching is the following:&lt;br /&gt;
* code asks for an image using LLViewerImageList::getImageFromUrl(): ideally, this is all the high level code needs to know. Textures retrieved through http are simply passed to the LLViewerImageList which handles all the fetch, load, etc... of the texture and returns an LLViewerImage pointer to the caller. The whole thing is supposed to be handled completely transparently underneath.&lt;br /&gt;
* this getImageFromUrl() call instantiates an LLViewerImage creation, passing the url to the constructor and adds it to the list of managed images&lt;br /&gt;
* the list updateImagesFetchTextures() is regularly called on the main thread&lt;br /&gt;
* this causes updateFetch() to be called on each image on the list&lt;br /&gt;
* the updateFetch() eventually calls createRequest() on the LLTextureFetch thread using the image url&lt;br /&gt;
* the LLTextureFetch thread adds a worker to its list to handle the request&lt;br /&gt;
* depending on the url and image id, the LLTextureFetchWorker calls the LLTextureCached thread or not. Note that, as of today:&lt;br /&gt;
** all files starting with &amp;quot;file://&amp;quot; are treated as local files and use the local cache worker to load. This is the case of all textures used in the UI and skins.&lt;br /&gt;
** all textures known by their UUID use the remote cache worker which tests if there is a local cached texture (stored from a previous session) and, if not, makes a network request. This is the code path used for all j2c scene textures.&lt;br /&gt;
** all other textures are &amp;quot;http://&amp;quot; jpeg images and will trigger an http request (see below)&lt;br /&gt;
* if the cache has the image, it loads it and passes the resulting raw and decoded image to the fetch worker&lt;br /&gt;
* if not, a network request is started, if the http flag is on, this will be an HTTP request. Note that, as of today:&lt;br /&gt;
** all j2c textures are using the old UDP request scheme&lt;br /&gt;
** only jpeg images are using the HTTP request scheme. This code path is exercised only in the map panel which fetches its image data from the Amazon S3 repository.&lt;br /&gt;
* the image file is fetched&lt;br /&gt;
* when done, the raw image is decoded using the LLImageDecodeThread thread&lt;br /&gt;
* when decoded, the request is deleted and the LLViewerImage updated with the decoded image&lt;br /&gt;
&lt;br /&gt;
==== HTTP Fetch ====&lt;br /&gt;
For the HTTP fetch mechanism, here&#039;s a zoomed in trace of what happens starting with the texture fetch request creation:&lt;br /&gt;
* LLTextureFetch::createRequest() is called when an http url is detected&lt;br /&gt;
** LLTextureFetchWorker::LLTextureFetchWorker(): a worker is added to the queue&lt;br /&gt;
** LLTextureFetchWorker::startWork() starts by initializing a bunch of things on the worker&lt;br /&gt;
*** LLTextureFetchWorker::setDesiredDiscard(): the code currently requests the entire image to be loaded by the worker before going back to the main thread&lt;br /&gt;
** LLTextureFetchWorker::doWork() is called on the thread and allocate some time to each workers in sequence. The state of the work is updated depending of what&#039;s achieved:&lt;br /&gt;
*** mState = INIT&lt;br /&gt;
*** mState = LOAD_FROM_TEXTURE_CACHE : which actually does nothing currently for http fetched textures (no cached)&lt;br /&gt;
*** mState = SEND_HTTP_REQ&lt;br /&gt;
**** LLTextureFetch::addToHTTPQueue() and HTTPGetResponder::HTTPGetResponder() : creates a request on the http thread&lt;br /&gt;
*** mState = WAIT_HTTP_REQ: waits for the http thread to come back &lt;br /&gt;
*** during that time, the other threads might request the status of the worker using LLTextureFetch::getRequestFinished and LLTextureFetch::getFetchState&lt;br /&gt;
**** HTTPGetResponder::completedRaw(): eventually, the http thread completes &lt;br /&gt;
**** LLTextureFetch::removeFromHTTPQueue(): the fetch order is taken off the http queue&lt;br /&gt;
**** LLTextureFetchWorker::callbackHttpGet(): the callback is executed and the http worker deleted&lt;br /&gt;
*** mState = DECODE_IMAGE: is the new state of the fetch worker&lt;br /&gt;
**** It instantiates a DecodeResponder() on the LLImageDecodeThread and the LLTextureFetchWorker will check for it to complete&lt;br /&gt;
*** When completed, the file is written to cache (not implemented yet for http textures!)&lt;br /&gt;
*** LLTextureFetchWorker::finishWork and LLTextureFetchWorker::endWork are called&lt;br /&gt;
*** The request is then deleted, first it&#039;s removed from the queue, then the worker is deleted:&lt;br /&gt;
**** LLTextureFetch::deleteRequest()&lt;br /&gt;
**** LLTextureFetch::removeRequest()&lt;br /&gt;
**** LLTextureFetch::removeFromNetworkQueue()&lt;br /&gt;
**** LLTextureFetchWorker::deleteOK&lt;br /&gt;
**** LLTextureFetchWorker::clearPackets is eventually called&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
* For the moment, the file (jpg) is downloaded at once (no partial download implemented yet)&lt;br /&gt;
* http downloaded files are not cached yet. In most cases though, it&#039;s not very relevant since the LLViewerImageList maintains live instances of all loaded images so the cache would be useful only between sessions&lt;br /&gt;
* The viewer uses only non nested mutex (APR_THREAD_MUTEX_UNNESTED).&lt;br /&gt;
* Threads manage work units as lists (maps actually) of LLWorkerClass objects.&lt;br /&gt;
&lt;br /&gt;
=== Caching ===&lt;br /&gt;
&lt;br /&gt;
See also the public wiki [http://wiki.secondlife.com/wiki/Texture_Cache Texture Cache] documentation for a general overview. The writing here under covers things that are specific to the http-texture branch and questions recently asked on the sldev mailing list.&lt;br /&gt;
&lt;br /&gt;
The texture caching system implemented in lltexturecache.cpp is rather simple in its concept although it&#039;s not a simple store of raw files. The main elements of this system are:&lt;br /&gt;
* the header cache&lt;br /&gt;
* the &amp;quot;body&amp;quot; files&lt;br /&gt;
* the LRU and time stamping mechanism&lt;br /&gt;
&lt;br /&gt;
LLTextureCache operations are implemented in a worker thread (inheriting from LLWorkerThread) so all the operations on the cache system are done by worker objects (inheriting from LLWorkerClass) in parallel to the rest of the viewer&#039;s operations.&lt;br /&gt;
&lt;br /&gt;
==== Header Cache ====&lt;br /&gt;
&lt;br /&gt;
The idea of the Header Cache is to allow fast retrieval of basic texture information (file size, image size, color model, other metadata...) without having to open and close each cached file. Instead, a single cache file containing all of these information for all cached textures is used.&lt;br /&gt;
&lt;br /&gt;
===== cache/texture.cache =====&lt;br /&gt;
&lt;br /&gt;
This file simply stores the first 600 byte chunk of raw data from the original stream into a single stream of texture &amp;quot;headers&amp;quot; (note that this is a conventional name and might store more than just metadata). This system is effective in SL because the viewer retrieves textures from the network in small packets of raw data and is able to decode a partially downloaded texture. So there&#039;s no penalty in storing the first retrieved packet in a special unique &amp;quot;header&amp;quot; file when they are first streamed down. The rest of the texture file is stored as a separate &amp;quot;body&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Each record in that file is exactly TEXTURE_CACHE_ENTRY_SIZE (600 bytes) in size per texture.&lt;br /&gt;
&lt;br /&gt;
===== cache/texture.entries =====&lt;br /&gt;
&lt;br /&gt;
To retrieve a texture header knowing its UUID, the viewer uses a map giving for each UUID an index in the texture.cache file. This (UUID,index) table is saved in the cache/texture.entries file, alongside cache/texture.cache.&lt;br /&gt;
&lt;br /&gt;
In addition to the UUID (mID), each entry also contains:&lt;br /&gt;
* mImageSize : the original raw file size&lt;br /&gt;
* mBodySize : the size of the body file only (i.e. mBodySize = mImageSize - TEXTURE_CACHE_ENTRY_SIZE in the current case where the offset is null or zero if the file is smaller than TEXTURE_CACHE_ENTRY_SIZE)&lt;br /&gt;
* mTime : a time stamp stating when last the texture was used.&lt;br /&gt;
&lt;br /&gt;
To optimize the position of frequently used textures and purge old ones, the cache is organized using an LRU (Least Recently Used) algorithm.&lt;br /&gt;
&lt;br /&gt;
==== Body Files ====&lt;br /&gt;
&lt;br /&gt;
Once the first packets are received and stored in the header cache file, the rest of the file (nicknamed &amp;quot;BODY&amp;quot;) is stored in a texture specific file. Note that, because of this design: &lt;br /&gt;
* the header part is not being duplicated in the body file so, in effect, those cached texture files are not usable as is&lt;br /&gt;
* if the total file size is smaller than the size of a header cache entry (TEXTURE_CACHE_ENTRY_SIZE), the whole file is actually in the header cache and no body texture cached file is created&lt;br /&gt;
&lt;br /&gt;
The body file is stored in the cache/textures folder hierarchy using a name built from the UUID of the texture asset as:&lt;br /&gt;
	/[0-F]/UUID.texture&lt;br /&gt;
&lt;br /&gt;
[0-F] being the first digit (in hexadecimal) of the UUID. This split between folders is to avoid running into file count limits in a folder on some platforms.&lt;br /&gt;
&lt;br /&gt;
==== Reading and Writing the Cache ====&lt;br /&gt;
&lt;br /&gt;
Because of this (somewhat) arbitrary split between header cache and body cache, there is a little bit of copy bits acrobatic to do to recreate a seamless stream when reading the cache back. This code is implemented in LLTextureCacheRemoteWorker and can be traced between the (mState == HEADER) and (mState == BODY) sections in LLTextureCacheRemoteWorker::doRead().&lt;br /&gt;
&lt;br /&gt;
One puzzling data member of LLTextureCacheRemoteWorker to consider is mOffset. This covers data that are reserved for extra information in the formatted image buffer at creation *before* the readFromCache() is invoked (see LLTextureFetchWorker::doWork() in lltexturefetch.cpp). This quantity is fixed, file format specific and never changed. Those data are also *not* part of the raw stream of image data and should be taken out of the stream when reading the cache back.&lt;br /&gt;
&lt;br /&gt;
This is the idea behind the various offset and skipping of data made between the (mState == HEADER) and (mState == BODY) sections in doRead().&lt;br /&gt;
&lt;br /&gt;
In truth, we haven&#039;t found any instance of that code being exercised with anything else but (mOffset == 0). So it&#039;s possible that this code is somewhat buggy (there&#039;s no unit test for it). &lt;br /&gt;
&lt;br /&gt;
In the http-texture branch, the cache now supports jpeg cached files in addition to j2c files. However, it does not support offset writing so, again, there&#039;s no chance for the code to be ever exercised with anything else but (mOffset == 0). &lt;br /&gt;
&lt;br /&gt;
For this reason, we believe we should consider suppressing support for this mOffset reading/writing as it makes the code more complex and is likely to crash anyway since writing cache in http-texture does not support it.&lt;br /&gt;
&lt;br /&gt;
=== Threads ===&lt;br /&gt;
[[Image:TextureThreads20090520.png|200px|thumb|right|Texture Threads]]&lt;br /&gt;
[[Image:TextureWorkers20090520.png|200px|thumb|right|Texture Workers]]&lt;br /&gt;
The relationship between the threads and workers described in this section is shown in the &amp;quot;Texture Threads&amp;quot; and &amp;quot;Texture Workers&amp;quot; simplified class diagrams (found on the right hand side). You can view larger versions of the diagrams by clicking on them, or you can open the larger versions in another browser window. (Some of the variable names from the source code have been renamed in the diagrams to simplify the explanation.)&lt;br /&gt;
&lt;br /&gt;
All threads in the viewer derives from LLThread which is a wrapper around the APR thread mechanism. This package implements threads (LLThread), mutexes (LLMutex) and mutex conditions (LLCondition).&lt;br /&gt;
&lt;br /&gt;
All threads involved with texture handling are of the LLQueuedThread class (derived from LLThread), meaning that they essentially run all the time and handle work bundle.&lt;br /&gt;
&lt;br /&gt;
Most of those (actually all of them except LLImageDecodeThread) are &amp;quot;worker threads&amp;quot; of the LLWorkerThread class (derived from LLQueuedThread) and handle specialized work orders (derived from LLWorkerClass) in a worker queue. This allows lengthy operations (like fetching textures...) to be delegated to the thread and, asynchronously, checked for completion while the application continues to render.&lt;br /&gt;
&lt;br /&gt;
The list of &amp;quot;workers&amp;quot; are organized as maps, usually indexed by images UUIDs.&lt;br /&gt;
&lt;br /&gt;
While debugging or tracing threads, a good advice is to &amp;quot;follow the mutex&amp;quot;. You need to identify which section of memory each mutex or condition is protecting and make sure lock/unlock are done at the right moment when writing or reading those sections of memory.&lt;br /&gt;
&lt;br /&gt;
==== LLTextureFetch ====&lt;br /&gt;
This is the most complete thread of the list. The complexity comes from the fact that the work order on that thread do instantiate other work orders on other threads to get the work done. An additional complexity is that there are several queues and, therefore, several mutexes handled on that thread making the deciphering of the state of the work orders on the thread a tad difficult.&lt;br /&gt;
&lt;br /&gt;
Basically though, the thread follows for each work order the narrative described above. Here&#039;s a complete trace of how the LLTextureFetch thread handles an http texture retrieval from the request creation to the image decoding passed to the image list:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LLTextureFetch::createRequest&lt;br /&gt;
LLTextureFetchWorker::LLTextureFetchWorker&lt;br /&gt;
LLTextureFetchWorker::calcWorkPriority, priority = 136633646&lt;br /&gt;
LLTextureFetchWorker::startWork&lt;br /&gt;
LLTextureFetchWorker::setDesiredDiscard, discard = 5, size = 33554432&lt;br /&gt;
LLTextureFetch::getFetchState: Fetch state = 1&lt;br /&gt;
LLTextureFetchWorker::doWork: Handle mState INIT&lt;br /&gt;
LLTextureFetchWorker::clearPackets&lt;br /&gt;
LLTextureFetchWorker::doWork: Handle mState LOAD_FROM_TEXTURE_CACHE&lt;br /&gt;
LLTextureFetchWorker::doWork: Handle mState SEND_HTTP_REQ&lt;br /&gt;
LLTextureFetch::getHTTPQueueSize&lt;br /&gt;
LLTextureFetch::getTextureBandwidth&lt;br /&gt;
LLTextureFetch::removeFromNetworkQueue&lt;br /&gt;
LLTextureFetch::addToHTTPQueue&lt;br /&gt;
HTTPGetResponder::HTTPGetResponder&lt;br /&gt;
LLTextureFetchWorker::doWork: Handle mState WAIT_HTTP_REQ&lt;br /&gt;
LLTextureFetch::getFetchState: Fetch state = 7&lt;br /&gt;
LLTextureFetchWorker::setImagePriority, priority = 1.018e+006&lt;br /&gt;
LLTextureFetch::getRequestFinished: Request finished = 0&lt;br /&gt;
HTTPGetResponder::completedRaw&lt;br /&gt;
LLTextureFetch::removeFromHTTPQueue&lt;br /&gt;
LLTextureFetchWorker::callbackHttpGet&lt;br /&gt;
HTTPGetResponder::~HTTPGetResponder&lt;br /&gt;
LLTextureFetch::getFetchState: Fetch state = 8&lt;br /&gt;
LLTextureFetchWorker::doWork: Handle mState DECODE_IMAGE&lt;br /&gt;
Push a DecodeResponder() on the LLImageDecodeThread&lt;br /&gt;
LLTextureFetchWorker::doWork: Handle mState DECODE_IMAGE_UPDATE&lt;br /&gt;
LLTextureFetchWorker::doWork: Handle mState DONE&lt;br /&gt;
LLTextureFetchWorker::finishWork, param = 0, completed = 1&lt;br /&gt;
LLTextureFetchWorker::endWork, param = 0, aborted = 0&lt;br /&gt;
LLTextureFetch::deleteRequest()&lt;br /&gt;
LLTextureFetch::removeRequest()&lt;br /&gt;
LLTextureFetch::removeFromNetworkQueue()&lt;br /&gt;
LLTextureFetchWorker::deleteOK&lt;br /&gt;
LLTextureFetchWorker::~LLTextureFetchWorker&lt;br /&gt;
LLTextureFetchWorker::clearPackets&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LLTextureCache ====&lt;br /&gt;
The LLTextureCache thread takes care of saving and loading image files on the local file system, aka &amp;quot;cached&amp;quot; files as those files are supposed to be downloaded from SL servers or other web resources (e.g. Amazon S3). Note that in fact, some of those &amp;quot;cached&amp;quot; files are downloaded at install time with the application bundle so they are not truly &amp;quot;cached&amp;quot; but, heck... This thread allows the rest of the viewer application to request image files using file names, URLs or UUIDs transparently and rely on the LLTextureCache thread to load the cached version if it has already been downloaded.&lt;br /&gt;
&lt;br /&gt;
Note: in the current implementation, images that are fetched using an HTTP URL are never cached on the local system. For this to work, we would need a convention to convert URLs to local file name (using a parsing convention) and there&#039;s no such system in place yet. Besides, the system would have to handle obsolete files, modified files, etc... There is however a system to convert UUIDs into local file name through LLTextureCache::getLocalFileName(). For the moment though, we do not create a UUID for each HTTP fetched texture so this caching system is not usable in that case.&lt;br /&gt;
&lt;br /&gt;
The LLTextureCache thread is a worker thread (like almost all other threads in the viewer) meaning that it is started at launch and keeps running for the whole life time of the application. It handles &amp;quot;work orders&amp;quot; through a pooled list of objects types LLTextureCacheWorkers. There are actually 2 flavors of this worker:&lt;br /&gt;
* LLTextureCacheRemoteWorker&lt;br /&gt;
* LLTextureCacheLocalFileWorker: used to load local files (which file names start in &amp;quot;file://&amp;quot;), all UI textures are loaded using that worker.&lt;br /&gt;
&lt;br /&gt;
One or the other flavor is created when the cache is queried through a readFromCache() call on the LLTextureCache thread. This call is done by an LLTextureFetchWorker object in the LLTextureFetch thread. For the moment, such calls are done only for local files (file name starting with &amp;quot;file://&amp;quot;) and for files known only by their UUID. Files known by an &amp;quot;http://&amp;quot; URL are not hitting that call at all.&lt;br /&gt;
&lt;br /&gt;
To load a local file (UI texture for instance), the sequence of calls is as follow:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LLTextureFetchWorker::CacheReadResponder::CacheReadResponder:()&lt;br /&gt;
LLTextureCache::readFromCache()&lt;br /&gt;
LLTextureCacheLocalFileWorker::LLTextureCacheLocalFileWorker()&lt;br /&gt;
LLTextureCacheWorker::read()&lt;br /&gt;
LLTextureCacheWorker::startWork()&lt;br /&gt;
LLTextureCacheLocalFileWorker::doRead()     // loads the entire file using LLAPRFile::readEx()&lt;br /&gt;
LLTextureCacheWorker::finishWork()&lt;br /&gt;
LLTextureCache::ReadResponder::setData: setData: imagesize = 1068, imagelocal = 1&lt;br /&gt;
LLTextureCache::addCompleted()&lt;br /&gt;
LLTextureFetchWorker::CacheReadResponder::completed: CacheReadResponder::completed() // will lock the fetch queue and transfer the image&lt;br /&gt;
   LLTextureFetch::lockQueue()&lt;br /&gt;
   LLTextureFetch::unlockQueue()&lt;br /&gt;
LTextureCacheWorker::endWork()&lt;br /&gt;
LLTextureCacheWorker::~LLTextureCacheWorker()&lt;br /&gt;
LLTextureFetchWorker::DecodeResponder::DecodeResponder:()&lt;br /&gt;
LLTextureFetchWorker::DecodeResponder::completed:()&lt;br /&gt;
   LLTextureFetch::lockQueue()&lt;br /&gt;
   LLTextureFetch::unlockQueue()&lt;br /&gt;
LLTextureCache::readComplete()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LLImageDecodeThread ====&lt;br /&gt;
This thread is used in http texture to decompress the image texture once the raw image has been downloaded. If you&#039;re trying to get familiar with threads in the viewer, it&#039;s interesting to read that code in detail as it is short and gives a good overview of how the various objects involved in thread signaling work in the viewer. You&#039;ll see thread, requests, mutex and responders in action in 150 or so lines of code.&lt;br /&gt;
&lt;br /&gt;
There&#039;s only one mutex (mCreationMutex) and one list (mCreationList) in the class. All access (read or write) to the mCreationList are guarded by mutex locking/unlocking. The list is a temporary buffer of data used to instantiate requests on the queued thread. Requests are then processed in order and the responder called when done.&lt;br /&gt;
&lt;br /&gt;
Computations performed on the requests themselves are not guarded by mutexes as no one access the request data but the decoding thread. Once a work order is done, its result is made accessible to the calling thread by calling a responder.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a detailed narrative of how things work:&lt;br /&gt;
* LLTextureFetchWorker::doWork(): when the worker reaches the (mState == DECODE_IMAGE) state, a call to decodeImage() on the LLImageDecodeThread is made.&lt;br /&gt;
* As part of the call, a pointer to a newly created DecodeResponder object is passed. This responder will be called once the decoding is complete.&lt;br /&gt;
* That call to decodeImage() pushes a new record on the mCreationList in the LLImageDecodeThread. The mCreationMutex is locked/unlocked for this call.&lt;br /&gt;
* At that point, no decoding code proper is really done or even started, there&#039;s just a record for a decoding request on the list. The request itself is not created either.&lt;br /&gt;
* The decodeImage() call returns to the LLTextureFetch thread and the state of the worker is changed to (mState == DECODE_IMAGE_UPDATE)&lt;br /&gt;
* For all subsequent LLTextureFetchWorker::doWork() calls, the worker will check the mDecoded flag which will be switched to true only when the responder&#039;s completed() method will be called by the LLImageDecodeThread thread.&lt;br /&gt;
* During that time, the LLImageDecodeThread continues processing:&lt;br /&gt;
** The way LLQueuedThread are implemented, they run an infinite loop and wait on condition. The main thread calls update() over and over updating the condition and making sure the processing thread gets some action (unless the thread is paused or idle but, let&#039;s not make things too complicated in this story, let&#039;s just assume the thread is running).&lt;br /&gt;
** LLImageDecodeThread::update() is called, locks the list again and iterates through it.&lt;br /&gt;
** For each record in that list, a new ImageRequest object is instantiated and is added to the queue using addRequest().&lt;br /&gt;
** The generic LLQueuedThread code then calls LLImageDecodeThread::processRequest() and LLImageDecodeThread::finishRequest().&lt;br /&gt;
** LLImageDecodeThread::processRequest() performs the actually decompression and decoding of the image data.&lt;br /&gt;
** LLImageDecodeThread::finishRequest() does some basic clean up and calls the responder&#039;s completed() method that will flip the mDecoded flag in the fetch worker.&lt;br /&gt;
&lt;br /&gt;
For another view of that thread, you can take a look at its unit test in indra/llimage/tests/llimageworker_test.cpp. This unit test exercises the thread class in both a threaded and non threaded way.&lt;br /&gt;
&lt;br /&gt;
==== LLLFSThread ====&lt;br /&gt;
The LLLFSThread (LFS stands for &amp;quot;Local File System&amp;quot;) is used to queue file access on the client machine. It can be used to both load and save data on the local file system.&lt;br /&gt;
&lt;br /&gt;
In the case of texture loading, it&#039;s used to read images from the cache if the USE_LFS_READ compilation option is set (which is not set by default).&lt;br /&gt;
&lt;br /&gt;
By default (USE_LFS_READ not defined), the image files are loaded using LLAPRFile which is a wrapper class around the Apache file access facility.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Intro to threads and mutexes:&lt;br /&gt;
* [http://www.ibm.com/developerworks/library/l-posix1.html Threads]&lt;br /&gt;
* [http://www.ibm.com/developerworks/library/l-posix2/ Mutex]&lt;br /&gt;
* [http://www.ibm.com/developerworks/library/l-posix3/ Condition Variables]&lt;br /&gt;
&lt;br /&gt;
== Jira Issues ==&lt;br /&gt;
&lt;br /&gt;
New Jira Issues&lt;br /&gt;
{|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Pre-existing Jira Issues&lt;br /&gt;
{|&lt;br /&gt;
{{Issue|VWR-8473|type=fs|Add a menu choice to force re-download of ruthed avs, missing textures or shapes}}&lt;br /&gt;
{{Issue|SVC-3446|type=fs|Ability to load textures on prim faces via http/https, as well as, for sculpt maps}}&lt;br /&gt;
{{Issue|VWR-217|type=fs|New Feature -&amp;gt; LSL -&amp;gt; Dynamic Web Textures}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Development of this feature ==&lt;br /&gt;
&lt;br /&gt;
As of this writing (2009-03-30), development on this branch is being done in the [http://svn.secondlife.com/trac/linden/browser/projects/2009/http-texture http-texture branch on svn.secondlife.com].  See [[HTTP Texture Development]] for more information about contributing&lt;br /&gt;
&lt;br /&gt;
[[Category:Open Source Portal]]&lt;br /&gt;
[[Category:Linden Lab Projects]]&lt;/div&gt;</summary>
		<author><name>Sheet Spotter</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:TextureWorkers20090520.png&amp;diff=366812</id>
		<title>File:TextureWorkers20090520.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:TextureWorkers20090520.png&amp;diff=366812"/>
		<updated>2009-05-21T01:47:03Z</updated>

		<summary type="html">&lt;p&gt;Sheet Spotter: Simplified class diagram for the worker classes used by the texture threads in the HTTP-Texture branch. Some variable names from the source code have been renamed in the diagram to simplify the explanation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simplified class diagram for the worker classes used by the texture threads in the HTTP-Texture branch. Some variable names from the source code have been renamed in the diagram to simplify the explanation.&lt;/div&gt;</summary>
		<author><name>Sheet Spotter</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:TextureThreads20090520.png&amp;diff=366802</id>
		<title>File:TextureThreads20090520.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:TextureThreads20090520.png&amp;diff=366802"/>
		<updated>2009-05-21T01:45:14Z</updated>

		<summary type="html">&lt;p&gt;Sheet Spotter: Simplified class diagram for the thread classes used in the HTTP-Texture branch. Some variable names from the source code have been renamed in the diagram to simplify the explanation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simplified class diagram for the thread classes used in the HTTP-Texture branch. Some variable names from the source code have been renamed in the diagram to simplify the explanation.&lt;/div&gt;</summary>
		<author><name>Sheet Spotter</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Limits&amp;diff=89111</id>
		<title>Limits</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Limits&amp;diff=89111"/>
		<updated>2008-08-31T19:35:39Z</updated>

		<summary type="html">&lt;p&gt;Sheet Spotter: Added &amp;#039;Max. length of avatar name&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help&lt;br /&gt;
|BugFixes=&lt;br /&gt;
|Avatar=&lt;br /&gt;
|Object=&lt;br /&gt;
|Land=&lt;br /&gt;
|Community=&lt;br /&gt;
|Viewer=&lt;br /&gt;
|Communication=&lt;br /&gt;
|Multimedia=&lt;br /&gt;
|Navigation=&lt;br /&gt;
|Misc=*&lt;br /&gt;
|Description=&lt;br /&gt;
|Wiki=&lt;br /&gt;
|Glossary=*&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This page is an easy reference to common queries about &#039;&#039;&#039;Second Life limits&#039;&#039;&#039;. Some of these will almost definitely change over time, so if you spot something incorrect/outdated, please take a moment to update it. Also see the  [http://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;amp;task=knowledge&amp;amp;questionID=5480 Knowledge Base counterpart of this article].&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
* &#039;&#039;&#039;Max. prim dimensions (non-megaprim)&#039;&#039;&#039; - 10x10x10 m&lt;br /&gt;
* &#039;&#039;&#039;Min. prim dimensions&#039;&#039;&#039; - 0.01x0.01x0.01 m&lt;br /&gt;
* &#039;&#039;&#039;Max. # of prims in a linkset&#039;&#039;&#039; - 255&lt;br /&gt;
* &#039;&#039;&#039;Max. link distance&#039;&#039;&#039; - See [[Linkability Rules]].&lt;br /&gt;
* &#039;&#039;&#039;Max. # of prims in a physical object&#039;&#039;&#039; - 32&lt;br /&gt;
** If you try to link more, it&#039;ll either say &amp;quot;Can&#039;t enable physics for objects with more than 32 primitives&amp;quot; or &amp;quot;Object has too many primitives -- its dynamics have been disabled.&amp;quot;.&lt;br /&gt;
** Note that this limit includes the driver and passengers of physics-enabled vehicles, e.g. if you are making a car to sit 4 people, 28 prims are available for the car itself.&lt;br /&gt;
* &#039;&#039;&#039;Max. build height&#039;&#039;&#039; - 4,096 m (SL 1.20.x or later required)&lt;br /&gt;
** This is 768 m for viewers prior to SL 1.20.x&lt;br /&gt;
&lt;br /&gt;
== Avatar ==&lt;br /&gt;
* &#039;&#039;&#039;Max. # of attachment points&#039;&#039;&#039; - 30 for avatar, 8 for HUD.&lt;br /&gt;
** They can be viewed in Edit menu &amp;gt; Detach Object.&lt;br /&gt;
* &#039;&#039;&#039;Max. unassisted fly height&#039;&#039;&#039; - Stable hover almost 150 m above the ground (terrain mesh).&lt;br /&gt;
** While an improvement over the previous limit of 50 m, Torley thinks this limit is ridiculous because Second Life is 3D. You can easily acquire a flight attachment to fly up to seemingly infinite heights.&lt;br /&gt;
* &#039;&#039;&#039;Common shoe sizes&#039;&#039;&#039; - Most women&#039;s shoes are designed for a size 0 (zero) foot. Men&#039;s generally scale up to 14. You can check this by going to Edit menu &amp;gt; Appearance and clicking on the Shape &amp;gt; Legs tab.&lt;br /&gt;
* &#039;&#039;&#039;Max. length of avatar name&#039;&#039;&#039; - 31 for first name, 31 for last name, 63 for total (including the space).&lt;br /&gt;
&lt;br /&gt;
== Chat (text) ==&lt;br /&gt;
* &#039;&#039;&#039;Whisper distance (done via scripting objects)&#039;&#039;&#039; - 10 m&lt;br /&gt;
* &#039;&#039;&#039;Chat distance&#039;&#039;&#039; - 20 m&lt;br /&gt;
* &#039;&#039;&#039;Shout distance&#039;&#039;&#039; - 100 m&lt;br /&gt;
** Rule of thumb: when you&#039;re at default zoom (View menu &amp;gt; Reset View), if you can see another other person&#039;s nametag, they can see your chat. If they&#039;re far enough away that you don&#039;t see a nametag, they won&#039;t &amp;quot;hear&amp;quot; you unless you shout.&lt;br /&gt;
* &#039;&#039;&#039;Max. length of a chat message&#039;&#039;&#039; - 1023 bytes/single-byte characters&lt;br /&gt;
** The same holds true for an IM&amp;lt;-&amp;gt;email replies.&lt;br /&gt;
&lt;br /&gt;
== Groups ==&lt;br /&gt;
* &#039;&#039;&#039;Max. # of groups you can belong to&#039;&#039;&#039; - 25&lt;br /&gt;
** Roles within groups are sort of like sub-groups. In many cases, you can use them instead of creating new groups.&lt;br /&gt;
* &#039;&#039;&#039;Min. # of members in a group&#039;&#039;&#039; - 2&lt;br /&gt;
** A group with only 1 person for 48 hours will be disbanded (cancelled).&lt;br /&gt;
* &#039;&#039;&#039;Max. # of roles allowed in a group&#039;&#039;&#039; - 10 (including &amp;quot;Owners&amp;quot; and &amp;quot;Everyone&amp;quot;, which can&#039;t be deleted)&lt;br /&gt;
&lt;br /&gt;
== Inventory ==&lt;br /&gt;
* &#039;&#039;&#039;Max. # of inventory items that can be sent in a folder&#039;&#039;&#039; - 42&lt;br /&gt;
** Folders count as items too. This has more to do with packet size limits than cheeky Douglas Adams references. ;)&lt;br /&gt;
&lt;br /&gt;
== Land ==&lt;br /&gt;
* &#039;&#039;&#039;Max. parcel size&#039;&#039;&#039; - 65,536 m2&lt;br /&gt;
** Covering a whole region, or square on the World Map.&lt;br /&gt;
* &#039;&#039;&#039;Min. parcel size&#039;&#039;&#039; - 16 m2&lt;br /&gt;
* &#039;&#039;&#039;Max. &amp;quot;NO ENTRY&amp;quot; ban line height&#039;&#039;&#039; - 768 m above the terrain mesh.&lt;br /&gt;
** This is if you&#039;re explicitly banned from a parcel. If the parcel is simply not public access or restricted to certain Residents/a group, then the access lines go up to 50 m above the terrain mesh.&lt;br /&gt;
* &#039;&#039;&#039;Max. prims in a region&#039;&#039;&#039; - 15,000 (3,750 prims for an [http://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;amp;task=knowledge&amp;amp;questionID=4235 Openspace] region) &amp;lt;== (July 6, 2008) This limit for openspace sims is an intended limit, however due to a bug in the object bonus option the limit is currently unlimited. Using more than 3750prim on an openspace is still unadvisable because the sim performance decreases rapidly with the extra prims.  Some openspace sims have been reported to hold 18000+ prims momentarily before crashing.&lt;br /&gt;
* &#039;&#039;&#039;Max. Autoreturn value&#039;&#039;&#039; - besides &amp;quot;0&amp;quot; (which means: &#039;&#039;never&#039;&#039;), 999,999 minutes is the biggest autoreturn value.&lt;br /&gt;
* &#039;&#039;&#039;Terraforming limits&#039;&#039;&#039; - Almost all mainland can be raised/lowered by +/-4 m. Estate (private island) terraformability is settable to a max of +/-100 m by the estate owner or managers. Bay City regions cannot be terraformed, and there may be others.--[[User:Shadoe Landman|Shadoe Landman]] 13:07, 6 July 2008 (PDT)&lt;br /&gt;
** A few, very old regions like Da Boom have a terraform range of +/-40 m.&lt;br /&gt;
* &#039;&#039;&#039;Max. water height&#039;&#039;&#039; - 100 m&lt;br /&gt;
** Region water height is usually 20 m, and adjacent regions should have the same water height, or else they&#039;ll look discontinuous.&lt;br /&gt;
* &#039;&#039;&#039;Misc. estate limits&#039;&#039;&#039; - You can have a max. of 10 estate managers, 500 allowed Residents, 63 allowed groups, and 500 banned Residents.&lt;br /&gt;
** See World menu &amp;gt; Region/Estate &amp;gt; Estate tab.&lt;br /&gt;
* &#039;&#039;&#039;Mainland max. # of agents&#039;&#039;&#039; - 40 avatars/region&lt;br /&gt;
* &#039;&#039;&#039;Island max. # of agents&#039;&#039;&#039; - 100 avatars/region&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* &#039;&#039;&#039;Healthy Viewer FPS&#039;&#039;&#039; - Generally, FPS above 15 is good. The higher it gets, the smoother. You can check via Help menu &amp;gt; Lag Meter, or for more advanced usage, see View menu &amp;gt; Statistics Bar.&lt;br /&gt;
* &#039;&#039;&#039;Avatar Rendering Cost scores&#039;&#039;&#039; - [http://blog.secondlife.com/2008/05/01/who-me-yes-you-couldnt-be-then-who-introducing-avatar-rendering-cost/ Learn all about it!]&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
For specific scripting limits, lookup calls in the [[LSL Portal]].&lt;br /&gt;
&lt;br /&gt;
== Textures ==&lt;br /&gt;
* &#039;&#039;&#039;Aspect ratios&#039;&#039;&#039; of profile, place, etc. pictures — all of these were measured at UI size = 1.000:&lt;br /&gt;
** &#039;&#039;&#039;Search &amp;gt; All for &amp;quot;Classifieds&amp;quot;, &amp;quot;People&amp;quot;, and &amp;quot;Places&amp;quot;&#039;&#039;&#039; - 4:3 (256x192 pixels)&lt;br /&gt;
** &#039;&#039;&#039;Search &amp;gt; Places and Classified tabs&#039;&#039;&#039; - ~7:5 (398x282 pixels)&lt;br /&gt;
** &#039;&#039;&#039;Search &amp;gt; Land tab&#039;&#039;&#039; - ~7:5 (358x252 pixels)&lt;br /&gt;
** &#039;&#039;&#039;Profile &amp;gt; 2nd Life tab&#039;&#039;&#039; - ~4:3 (178x133 pixels)&lt;br /&gt;
** &#039;&#039;&#039;Profile &amp;gt; Picks tab&#039;&#039;&#039; - ~16:9 (288x162 pixels)&lt;br /&gt;
** &#039;&#039;&#039;Profile &amp;gt; 1st Life tab&#039;&#039;&#039; - 1:1 (133x133 pixels)&lt;br /&gt;
** &#039;&#039;&#039;Profile &amp;gt; Classifieds tab&#039;&#039;&#039; - ~3:2 (206x137 pixels)&lt;br /&gt;
** &#039;&#039;&#039;Profile &amp;gt; Web tab&#039;&#039;&#039; - 1:1 (400x400 pixels) Note Scrollbars will eat 15 pixels&lt;br /&gt;
** &#039;&#039;&#039;About Land &amp;gt; Options tab&#039;&#039;&#039; - ~3:2 (178x117 pixels)&lt;br /&gt;
** &#039;&#039;&#039;Group Information &amp;gt; General tab&#039;s &amp;quot;Group Insignia&amp;quot;&#039;&#039;&#039; - 1:1 (126x126 pixels)&lt;br /&gt;
&#039;&#039;Some of these textures are shared (for example, Search &amp;gt; All place pages, Search &amp;gt; Places, and About Land &amp;gt; Options use the same image), so you will want to pick a happy medium ratio and use enough pixels to fill the larger panels without too much blur.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Maximum texture size&#039;&#039;&#039; - 1024x1024 pixels&lt;br /&gt;
** We strongly recommend you use as small textures as possible because larger ones consume more memory and take substantially longer to load.&lt;br /&gt;
&lt;br /&gt;
[[Category:Creation]] [[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Sheet Spotter</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Open_Source_Meeting/2008-08-21&amp;diff=87600</id>
		<title>Open Source Meeting/2008-08-21</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Open_Source_Meeting/2008-08-21&amp;diff=87600"/>
		<updated>2008-08-22T00:00:46Z</updated>

		<summary type="html">&lt;p&gt;Sheet Spotter: Corrected formatting problem at [14:40]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [14:01] [[User:Squirrel Wood|Squirrel Wood]]:  quick question.... the SL client gets stuck at the region handshake when I try to log in from work... what can I do about it?&lt;br /&gt;
* [14:01] [[User:Rob Linden|Rob Linden]]:  thanks Michelle2 for the agenda: https://wiki.secondlife.com/wiki/Open_Source_Meeting/Agenda&lt;br /&gt;
* [14:02] [[User:Carjay McGinnis|Carjay McGinnis]]:  where&#039;s the soft one?&lt;br /&gt;
* [14:02] [[User:Rob Linden|Rob Linden]]:  Squirrel....not sure, probably a firewall issue&lt;br /&gt;
* [14:02] [[User:Q Linden|Q Linden]]:  squirrel, guessing it&#039;s a port problem?&lt;br /&gt;
* [14:02] [[User:Squirrel Wood|Squirrel Wood]]:  It gets past the login. just the handshake fails&lt;br /&gt;
* [14:03] [[User:Rob Linden|Rob Linden]]:  I&#039;ll (eventually) be posting the transcript from this meeting on the wiki, so bear that in mind while you type&lt;br /&gt;
* [14:03] [[User:Carjay McGinnis|Carjay McGinnis]]:  so the xmlrpc part works?&lt;br /&gt;
* [14:03] [[User:Squirrel Wood|Squirrel Wood]]:  I would assume it does&lt;br /&gt;
* [14:04] [[User:Rob Linden|Rob Linden]]:  pinged Soft, but we can probably get started&lt;br /&gt;
* [14:04] [[User:Rob Linden|Rob Linden]]:  1. Discussion of Trunk branch, build issues, updates on 1.21&#039;s QA progress etc Michelle2 Zenovka 08:58, 21 August 2008 (PDT)&lt;br /&gt;
* [14:04] [[User:Rob Linden|Rob Linden]]:  (this is a Soft-centric issue, though)&lt;br /&gt;
* [14:04] [[User:Liana Linden|Liana Linden]]:  Hey, folks. Can the rest of you see the agenda up on the big screen?&lt;br /&gt;
* [14:04] [[User:Carjay McGinnis|Carjay McGinnis]]:  thus the question for the soft one&lt;br /&gt;
* [14:05] [[User:Siddhartha Fonda|Siddhartha Fonda]]:  where is it&lt;br /&gt;
* [14:05] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  not yet, not showing web media on parcel&lt;br /&gt;
* [14:05] [[User:Harleen Gretzky|Harleen Gretzky]]:  yes, the hand&lt;br /&gt;
* [14:05] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  can see it.&lt;br /&gt;
* [14:05] [[User:Siddhartha Fonda|Siddhartha Fonda]]:  oh&lt;br /&gt;
* [14:05] [[User:McCabe Maxsted|McCabe Maxsted]]:  I can, but the text&#039;s pretty tiny&lt;br /&gt;
* [14:05] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  ther eit goes&lt;br /&gt;
* [14:05] [[User:Liana Linden|Liana Linden]]:  Click &amp;quot;play&amp;quot; on your media control panel.&lt;br /&gt;
* [14:05] [[User:Siddhartha Fonda|Siddhartha Fonda]]:  gotcha&lt;br /&gt;
* [14:05] [[User:Siddhartha Fonda|Siddhartha Fonda]]:  yeah see it now&lt;br /&gt;
* [14:05] [[User:Carjay McGinnis|Carjay McGinnis]]:  only a big hand&lt;br /&gt;
* [14:05] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  if you zoom it its fine&lt;br /&gt;
* [14:05] [[User:Carjay McGinnis|Carjay McGinnis]]:  oh, it turns black&lt;br /&gt;
* [14:06] [[User:Carjay McGinnis|Carjay McGinnis]]:  ah, now, cool&lt;br /&gt;
* [14:06] [[User:Liana Linden|Liana Linden]]:  Great. Sorry to interrupt, Rob.&lt;br /&gt;
* [14:06] [[User:Rob Linden|Rob Linden]]:  can&#039;t see it acutally...but that&#039;s ok&lt;br /&gt;
* [14:07] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  3 points.. 2 defaults&lt;br /&gt;
* [14:07] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  I rasied this issue to see if anyone else was still having any general issues with cmake and to get an inside update on progress of the branch&lt;br /&gt;
* [14:07] [[User:Thomas Shikami|Thomas Shikami]]:  Greetings&lt;br /&gt;
* [14:07] [[User:Carjay McGinnis|Carjay McGinnis]]:  inside update sounds nice&lt;br /&gt;
* [14:08] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  We had the little struct issue with gcc 4.3.1 which i fogot to tell anyone about, and cmake 2.6.2 but i think things from outside are basicly working&lt;br /&gt;
* [14:08] [[User:Carjay McGinnis|Carjay McGinnis]]:  that was fixed already if I saw correctly&lt;br /&gt;
* [14:08] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  can&#039;t remember if fmod mess got resolved&lt;br /&gt;
* [14:08] [[User:Rob Linden|Rob Linden]]:  Soft is on his way. I don&#039;t think there&#039;s any big updates, though&lt;br /&gt;
* [14:08] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  yes soft pushed an immediate fix then is going to clean it up again later&lt;br /&gt;
* [14:09] [[User:Thomas Shikami|Thomas Shikami]]:  isn&#039;t cmake 2.4.x used?&lt;br /&gt;
* [14:09] [[User:Carjay McGinnis|Carjay McGinnis]]:  it&#039;s always intriguing how many weird things are accepted by the microsoft compiler&lt;br /&gt;
* [14:09] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  thats the offical supported version&lt;br /&gt;
* [14:09] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  2.6.0 and 2.6.1 don&#039;t work correctly but there is a 2.6.2-RC on cmake.org/files that does work&lt;br /&gt;
* [14:09] [[User:Rob Linden|Rob Linden]]:  Soft: we&#039;re on 1. Discussion of Trunk branch, build issues, updates on 1.21&#039;s QA progress etc Michelle2 Zenovka 08:58, 21 August 2008 (PDT)&lt;br /&gt;
* [14:09] [[User:Carjay McGinnis|Carjay McGinnis]]:  greetings Soft&lt;br /&gt;
* [14:09] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  Hey soft&lt;br /&gt;
* [14:09] [[User:Soft Linden|Soft Linden]]:  Hey hey&lt;br /&gt;
* [14:10] [[User:Thomas Shikami|Thomas Shikami]]:  and sorry if I&#039;m asking the obvious, sometimes people just forget about the trivial stuff and then wonder, why something doesn&#039;t work&lt;br /&gt;
* [14:10] [[User:Aimee Trescothick|Aimee Trescothick]]:  (Would putting the prim on fullbright make the agenda clearer to read?)&lt;br /&gt;
* [14:10] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  Thomas: you mean the cmake versions?&lt;br /&gt;
* [14:10] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  shakes his head.. &amp;quot;It&#039;s light enough in daylight.. Fontype is just too small.&lt;br /&gt;
* [14:11] [[User:Thomas Shikami|Thomas Shikami]]:  yes, that&#039;s an example&lt;br /&gt;
* [14:11] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  yea cmake 2.6.2-rc is not widely enough known about&lt;br /&gt;
* [14:11] [[User:McCabe Maxsted|McCabe Maxsted]]:  is the build page on the wiki updated?&lt;br /&gt;
* [14:11] [[User:Rob Linden|Rob Linden]]:  I&#039;m still puttering along on this spec: https://wiki.secondlife.com/wiki/User:Rob_Linden/Build_Tool_Improvement_Spec_-_2008. I&#039;ve got some feedback that I still need to incorporate&lt;br /&gt;
* [14:12] [[User:Rob Linden|Rob Linden]]:  ..but that&#039;s going to be a while to go from spec to code&lt;br /&gt;
* [14:12] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  I don&#039;t think anyone has that cmake issue up anywhere yet, i can add it to my page which is also referenced alot&lt;br /&gt;
* [14:12] [[User:Carjay McGinnis|Carjay McGinnis]]:  we need a agenda HUD&lt;br /&gt;
* [14:14] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  would be handy yes..&lt;br /&gt;
* [14:14] [[User:Rob Linden|Rob Linden]]:  Soft, is there any short term stuff that&#039;s going to be useful for folks to know about here vis a vis build improvements?&lt;br /&gt;
* [14:15] [[User:Rob Linden|Rob Linden]]:  can&#039;t think of anything&lt;br /&gt;
* [14:15] [[User:Soft Linden|Soft Linden]]:  Michelle&#039;s page is actually the best. I&#039;d be happy if we base our official 1.21 build instructions off of hers&lt;br /&gt;
* [14:15] [[User:Rob Linden|Rob Linden]]:  ah, yes, instructions=good&lt;br /&gt;
* [14:15] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  I though Rob&#039;s was a rewrite of mine&lt;br /&gt;
* [14:15] [[User:Soft Linden|Soft Linden]]:  I believe we&#039;re running out of surprises now, though.&lt;br /&gt;
* [14:15] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  Timescales?&lt;br /&gt;
* [14:15] [[User:Soft Linden|Soft Linden]]:  I&#039;m sorry - I think I misunderstood the question. The existing build improvements I&#039;m talking about, not the proposed stuff.&lt;br /&gt;
* [14:16] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  i&#039;m kind of talking about 1.21 hitting RC&lt;br /&gt;
* [14:16] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  in conjunction with the build improvments that will be live&lt;br /&gt;
* [14:17] [[User:Rob Linden|Rob Linden]]:  1.21 RC should be real soon now. the 1.24 server deploy was the main blocker for that I believe&lt;br /&gt;
* [14:17] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  1.21 has mono compile too?&lt;br /&gt;
* [14:17] [[User:McCabe Maxsted|McCabe Maxsted]]:  I&#039;ve been having a lot of crashes with 1.21; I assume that&#039;s due to the extra debug stuff, yeah?&lt;br /&gt;
* [14:17] [[User:Carjay McGinnis|Carjay McGinnis]]:  ok, was already wondering why things got so quiet recently&lt;br /&gt;
* [14:17] [[User:Soft Linden|Soft Linden]]:  1.21 will be very close to what you see in release right now. Yes, mono compile should be there.&lt;br /&gt;
* [14:17] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  cool&lt;br /&gt;
* [14:17] [[User:Soft Linden|Soft Linden]]:  release/ - now trunk/&lt;br /&gt;
* [14:18] [[User:Aimee Trescothick|Aimee Trescothick]]:  mono tick box is there in trunk now&lt;br /&gt;
* [14:18] [[User:Aimee Trescothick|Aimee Trescothick]]:  :)&lt;br /&gt;
* [14:18] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  i&#039;ve not actualy been running trunk only building it, lol&lt;br /&gt;
* [14:18] [[User:Aimee Trescothick|Aimee Trescothick]]:  lol&lt;br /&gt;
* [14:18] [[User:Carjay McGinnis|Carjay McGinnis]]:  still waiting for the python tick box&lt;br /&gt;
* [14:18] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  ha&lt;br /&gt;
* [14:18] [[User:McCabe Maxsted|McCabe Maxsted]]:  hehe&lt;br /&gt;
* [14:18] [[User:Rob Linden|Rob Linden]]:  you&#039;ll have to forgive future confused Lindens....internally, &amp;quot;trunk&amp;quot; is still the &amp;quot;release&amp;quot; branch&lt;br /&gt;
* [14:19] [[User:Thomas Shikami|Thomas Shikami]]:  still looking for a mono tick box for agent inventory compile&lt;br /&gt;
* [14:19] [[User:Soft Linden|Soft Linden]]:  Hopefully we remedy that. Release as three different things in concept, name and target is just silly.&lt;br /&gt;
* [14:19] [[User:Rob Linden|Rob Linden]]:  ....though those of us who have suggested renaming the internal &amp;quot;release&amp;quot; branch have gotten many +1s&lt;br /&gt;
* [14:20] [[User:Carjay McGinnis|Carjay McGinnis]]:  do it on a quiet lonely night&lt;br /&gt;
* [14:20] [[User:Carjay McGinnis|Carjay McGinnis]]:  and then take a long vacation&lt;br /&gt;
* [14:20] [[User:Soft Linden|Soft Linden]]:  Ha :&amp;gt;&lt;br /&gt;
* [14:20] [[User:Carjay McGinnis|Carjay McGinnis]]:  when you return everything will have worked itself out&lt;br /&gt;
* [14:20] [[User:Soft Linden|Soft Linden]]:  The blocking thing is that it will complicate a lot of existing branches merging back into trunk.&lt;br /&gt;
* [14:21] [[User:Soft Linden|Soft Linden]]:  We&#039;re pushing to move off of subversion, so it&#039;s been proposed that if we do that in the near future, we do the rename then as well.&lt;br /&gt;
* [14:21] [[User:Carjay McGinnis|Carjay McGinnis]]:  well, we had so many weird issues due to renaming things in svn&lt;br /&gt;
* [14:21] [[User:Soft Linden|Soft Linden]]:  Exactly.&lt;br /&gt;
* [14:21] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  yea i can&#039;t believe sub version is holding up with the amout of branching and sub development you do, it must be a merge nightmare&lt;br /&gt;
* [14:21] [[User:Rob Linden|Rob Linden]]:  k....anything else we need to discuss on item #1, or can we move on?&lt;br /&gt;
* [14:21] [[User:Q Linden|Q Linden]]:  startles awake, screaming&lt;br /&gt;
* [14:22] [[User:Rob Linden|Rob Linden]]:  :)&lt;br /&gt;
* [14:22] [[User:Rob Linden|Rob Linden]]:  next up: 2. Any directly related to secondlife, opensource projects anyone wants yo update on (i have one hence my item) Michelle2 Zenovka 11:01, 21 August 2008 (PDT)&lt;br /&gt;
* [14:22] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  well firsly i wanted to bring up the debian package of the viewer..&lt;br /&gt;
* [14:23] [[User:Rob Linden|Rob Linden]]:  do tell&lt;br /&gt;
* [14:23] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  Mozilla has finally bitten and hard, one of the critical libs has vanished from debianb testing and unstable and now i have massive ABI breakage on xulrunner&lt;br /&gt;
* [14:23] [[User:Carjay McGinnis|Carjay McGinnis]]:  oh, you were unable to find it?&lt;br /&gt;
* [14:24] [[User:Rob Linden|Rob Linden]]:  I had heard from Callum that the 1.8 to 1.9 transition was practically a rewrite for these purposes&lt;br /&gt;
* [14:24] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  even if i do i now have to fork debian and ubuntu&lt;br /&gt;
* [14:24] [[User:Carjay McGinnis|Carjay McGinnis]]:  yikes :-/&lt;br /&gt;
* [14:24] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  ubuntu froze months ago and has the lib, testing is freezing now and does not&lt;br /&gt;
* [14:24] [[User:Rob Linden|Rob Linden]]:  (Mozilla 1.8 to 1.9)&lt;br /&gt;
* [14:24] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  yea its a laugh and a half&lt;br /&gt;
* [14:24] [[User:Carjay McGinnis|Carjay McGinnis]]:  that&#039;s silly&lt;br /&gt;
* [14:24] [[User:Rob Linden|Rob Linden]]:  (which is the engine for Firefox 2 and Firefox 3 respectively)&lt;br /&gt;
* [14:25] [[User:Soft Linden|Soft Linden]]:  So ubuntu has it, but likely won&#039;t have it in the next release. Debian loses it sooner.&lt;br /&gt;
* [14:25] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  its going to come down to me hosting a version of the package&lt;br /&gt;
* [14:25] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  and if i do that i might just as well fall back to the &amp;quot;linden&amp;quot; way of packaging mozilla&lt;br /&gt;
* [14:26] [[User:Rob Linden|Rob Linden]]:  we&#039;ve had some hiccups with our webkit evaluation, but we&#039;re still coming around to the idea that that&#039;s the way forward&lt;br /&gt;
* [14:26] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  i think we were hoping that something may have appeared even as development code&lt;br /&gt;
* [14:26] [[User:Carjay McGinnis|Carjay McGinnis]]:  huccups?&lt;br /&gt;
* [14:26] [[User:Carjay McGinnis|Carjay McGinnis]]:  -u+i&lt;br /&gt;
* [14:27] [[User:Rob Linden|Rob Linden]]:  I can&#039;t really go into details. at any rate, we do have some code that I think we should be able to publish&lt;br /&gt;
* [14:27] [[User:Rob Linden|Rob Linden]]:  ...but it still needs A LOT of work&lt;br /&gt;
* [14:27] [[User:Aimee Trescothick|Aimee Trescothick]]:  (hiccips?)&lt;br /&gt;
* [14:27] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  well if its published you can start to get patches ;-)&lt;br /&gt;
* [14:28] [[User:Carjay McGinnis|Carjay McGinnis]]:  still, that does not sound good&lt;br /&gt;
* [14:29] [[User:Rob Linden|Rob Linden]]:  I think there&#039;s reasons to be optimistic still&lt;br /&gt;
* [14:29] [[User:Rob Linden|Rob Linden]]:  at any rate....were there other updates you had Michelle2?&lt;br /&gt;
* [14:29] [[User:Carjay McGinnis|Carjay McGinnis]]:  ok, taking your word on it&lt;br /&gt;
* [14:29] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  Yea my other side project&lt;br /&gt;
* [14:29] [[User:Carjay McGinnis|Carjay McGinnis]]:  ;)&lt;br /&gt;
* [14:30] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  i&#039;ve been working on my own text client&lt;br /&gt;
* [14:30] [[User:Rob Linden|Rob Linden]]:  oh, cool&lt;br /&gt;
* [14:30] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  just though i would announce, its pretty functional, based on Gtk# and mono&lt;br /&gt;
* [14:30] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  mainly because everone else uses dam winforms and latest version is not mono compatible yet&lt;br /&gt;
* [14:31] [[User:Rob Linden|Rob Linden]]:  libsecondlife for the protocol handling, then?&lt;br /&gt;
* [14:31] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  yes&lt;br /&gt;
* [14:32] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  [http://www.byteme.org.uk/secondlife/omvviewer-light.html] for details&lt;br /&gt;
* [14:33] [[User:Rob Linden|Rob Linden]]:  nice&lt;br /&gt;
* [14:33] [[User:Carjay McGinnis|Carjay McGinnis]]:  yeah, looks promising&lt;br /&gt;
* [14:33] [[User:Rob Linden|Rob Linden]]:  presumably will run on windows, as well, I take it&lt;br /&gt;
* [14:34] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  yes, but you need to e mono Gtk# package&lt;br /&gt;
* [14:34] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  * the mono...&lt;br /&gt;
* [14:34] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  its quite cool i develop in VC# at work and monodevelop at home&lt;br /&gt;
* [14:34] [[User:Scotts Winkler|Scotts Winkler]]:  hey rob, everyone&lt;br /&gt;
* [14:34] [[User:Scotts Winkler|Scotts Winkler]]:  late :)&lt;br /&gt;
* [14:35] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  I heard a rumor about the lindens own text client with voice support&lt;br /&gt;
* [14:36] [[User:Rob Linden|Rob Linden]]:  LIES LIES!&lt;br /&gt;
* [14:36] [[User:Rob Linden|Rob Linden]]:  shrugs&lt;br /&gt;
* [14:36] [[User:Carjay McGinnis|Carjay McGinnis]]:  greetings Scotts&lt;br /&gt;
* [14:36] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  not in braille writing either ? :|&lt;br /&gt;
* [14:36] [[User:Siglor Nootan|Siglor Nootan]]:  yay i found lindens!&lt;br /&gt;
* [14:37] [[User:Rob Linden|Rob Linden]]:  Michelle2 (or anyone else) updates on other open source packages?&lt;br /&gt;
* [14:38] [[User:Rob Linden|Rob Linden]]:  (wind blowing)&lt;br /&gt;
* [14:39] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  It was just that from me&lt;br /&gt;
* [14:39] [[User:A group|A group]]:  member named Bridie Linden gave you don&#039;t be a d*ck.&lt;br /&gt;
* [14:39] [[User:Rob Linden|Rob Linden]]:  okee dokee, next item:&lt;br /&gt;
* [14:40] [[User:Soft Linden|Soft Linden]]:  Joe announced a bit on that - you can probably google for articles about it to see what&#039;s there. I haven&#039;t followed that project myself.&lt;br /&gt;
* [14:40] [[User:Rob Linden|Rob Linden]]:  urgh....not sure if it&#039;s appropriate, though: [[User:Bau Ur|Bau Ur]] Discussion of http://jira.secondlife.com/browse/VWR-4094 Ability of persons banned from parcel to build and script at elevation of 800 M over the parcel; also persons banned from a parcel may overhang their objects from an adjoining parcel. This is of considerable concern to sandbox users and sandbox admins trying to provide a good environment for new creators in SL. Lindens involved in governance, community development and resident retention may be interested. &lt;br /&gt;
* [14:40] [[User:Carjay McGinnis|Carjay McGinnis]]:  was wondering about that one&lt;br /&gt;
* [14:40] [[User:Thomas Shikami|Thomas Shikami]]:  should be 4096m&lt;br /&gt;
* [14:40] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  what is open source about that one ?&lt;br /&gt;
* [14:40] [[User:Liana Linden|Liana Linden]]:  Bau pinged me earlier with an agenda item, and I directed him to post to the wiki. Didn&#039;t know what it was about. Is there a better venue for this question?&lt;br /&gt;
* [14:40] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  its not really open source&lt;br /&gt;
* [14:41] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  should be handled by G Team, i find *shrug*&lt;br /&gt;
* [14:41] [[User:Rob Linden|Rob Linden]]:  it&#039;s a governace thing&lt;br /&gt;
* [14:41] [[User:Rob Linden|Rob Linden]]:  Governance, even&lt;br /&gt;
* [14:41] [[User:Soft Linden|Soft Linden]]:  That&#039;s a good topic for the Monday triage. It&#039;s already imported, but if it deserves additional weight, that would be a good place to make the argument.&lt;br /&gt;
* [14:42] [[User:Thomas Shikami|Thomas Shikami]]:  physics team and server programmers&lt;br /&gt;
* [14:42] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  i think we have been around the loops with this type of discussion of over hanging prims etc more than once and as you said there is nothign we can do here, we can&#039;t patrch the viewer etc&lt;br /&gt;
* [14:42] [[User:Liana Linden|Liana Linden]]:  I&#039;ll reply to Bau and direct him to the Monday triage and/or a governance Linden. Thanks.&lt;br /&gt;
* [14:42] [[User:Rob Linden|Rob Linden]]:  ah, I see, yeah. that issue should probably also be moved to SVC.&lt;br /&gt;
* [14:42] [[User:Rob Linden|Rob Linden]]:  anyhoo&lt;br /&gt;
* [14:42] [[User:Carjay McGinnis|Carjay McGinnis]]:  redirects to SVC-2900 which is assigned to thekellz&lt;br /&gt;
* [14:42] [[User:Carjay McGinnis|Carjay McGinnis]]:  that redirect is nice&lt;br /&gt;
* [14:42] [[User:Carjay McGinnis|Carjay McGinnis]]:  it never shows the VWR-page&lt;br /&gt;
* [14:43] [[User:Rob Linden|Rob Linden]]:  oh, would you look at that&lt;br /&gt;
* [14:43] [[User:Soft Linden|Soft Linden]]:  Yeah. I moved that earlier.&lt;br /&gt;
* [14:43] [[User:Soft Linden|Soft Linden]]:  - ninja.&lt;br /&gt;
* [14:43] [[User:Rob Linden|Rob Linden]]:  yeah, I didn&#039;t even notice. ok. anything else we should talk about here&lt;br /&gt;
* [14:43] [[User:Rob Linden|Rob Linden]]:  ?&lt;br /&gt;
* [14:44] [[User:Rob Linden|Rob Linden]]:  Hippo awards coming soon&lt;br /&gt;
* [14:44] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  wooot&lt;br /&gt;
* [14:44] [[User:Liana Linden|Liana Linden]]:  Yep. Will be announced on Sat 9/6.&lt;br /&gt;
* [14:44] [[User:Liana Linden|Liana Linden]]:  At SLCC and right here inworld.&lt;br /&gt;
* [14:44] [[User:Rob Linden|Rob Linden]]:  thinks through other things to discuss....&lt;br /&gt;
* [14:44] [[User:Liana Linden|Liana Linden]]:  Email about that comming soon to sldev.&lt;br /&gt;
* [14:44] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  sighs and thinks thats the 6/9 to all Europeans , lol&lt;br /&gt;
* [14:45] [[User:Liana Linden|Liana Linden]]:  Sorry, I usually spell out the month just for that reason. Sept 6 at noon Pacific Time.&lt;br /&gt;
* [14:45] [[User:Thomas Shikami|Thomas Shikami]]:  Set. Sep. 6?&lt;br /&gt;
* [14:45] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  it&#039;s sep 6th to us all .&lt;br /&gt;
* [14:45] [[User:Rob Linden|Rob Linden]]:  careful or I&#039;ll go all ISO on your *** ;-)&lt;br /&gt;
* [14:45] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  laughs, only being difficult&lt;br /&gt;
* [14:45] [[User:Carjay McGinnis|Carjay McGinnis]]:  6.9.&lt;br /&gt;
* [14:45] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  lol&lt;br /&gt;
* [14:45] [[User:Rob Linden|Rob Linden]]:  2008-09-06 .... there&lt;br /&gt;
* [14:45] [[User:Nyx Linden|Nyx Linden]]:  2008-09-06&lt;br /&gt;
* [14:46] [[User:Aimee Trescothick|Aimee Trescothick]]:  prefers 20080906&lt;br /&gt;
* [14:46] [[User:Liana Linden|Liana Linden]]:  In any case, if you&#039;re not at SLCC, please join me here at that time and date to hear the announcement of winners.&lt;br /&gt;
* [14:46] [[User:Soft Linden|Soft Linden]]:  2008-09-06&lt;br /&gt;
* [14:46] [[User:Soft Linden|Soft Linden]]:  Yis&lt;br /&gt;
* [14:46] [[User:Carjay McGinnis|Carjay McGinnis]]:  what do you do in the year 20080?&lt;br /&gt;
* [14:46] [[User:Soft Linden|Soft Linden]]:  20080-09-06&lt;br /&gt;
* [14:46] [[User:Aimee Trescothick|Aimee Trescothick]]:  200800906&lt;br /&gt;
* [14:46] [[User:Carjay McGinnis|Carjay McGinnis]]:  yes, meant Aimee&lt;br /&gt;
* [14:47] [[User:Rob Linden|Rob Linden]]:  in other news....&lt;br /&gt;
* [14:47] [[User:Rob Linden|Rob Linden]]:  (I got nuthin)&lt;br /&gt;
* [14:47] [[User:Carjay McGinnis|Carjay McGinnis]]:  that&#039;s a tooosday BTW&lt;br /&gt;
* [14:47] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  whot?&lt;br /&gt;
* [14:47] [[User:Soft Linden|Soft Linden]]:  By then I&#039;ll be using full names, as my petition for January Softuary March will have passed.&lt;br /&gt;
* [14:47] [[User:Aimee Trescothick|Aimee Trescothick]]:  rofl&lt;br /&gt;
* [14:47] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  no plans to open source more of the LL code ?&lt;br /&gt;
* [14:47] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  no roadmap .. no progress .. nada ?&lt;br /&gt;
* [14:47] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  you guys all been on vacation or what ? :|&lt;br /&gt;
* [14:48] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  smirks.&lt;br /&gt;
* [14:48] [[User:Squirrel Wood|Squirrel Wood]]:  open can, eat sauce.&lt;br /&gt;
* [14:48] [[User:Soft Linden|Soft Linden]]:  There&#039;s still quite a bit of new stuff appearing, but it&#039;s more related to OGP, not the everyday viewer work.&lt;br /&gt;
* [14:48] [[User:Rob Linden|Rob Linden]]:  well, Q started last week in his lead role in Sustaining Engineering, and we&#039;ve all been going over the patch list much more carefully&lt;br /&gt;
* [14:49] [[User:Rob Linden|Rob Linden]]:  our efforts right now are mainly around detail work rather than splashy new stuff, but that&#039;s the theme in general&lt;br /&gt;
* [14:49] [[User:Rob Linden|Rob Linden]]:  Mono is about as splashy as it gets&lt;br /&gt;
* [14:49] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  Hmm just seen one of my JIRA patches is taged as fix pending VWR-4981&lt;br /&gt;
* [14:49] [[User:Squirrel Wood|Squirrel Wood]]:  Mono has been in testing for quite some time though&lt;br /&gt;
* [14:50] [[User:Rob Linden|Rob Linden]]:  we&#039;re mulling over some ways of working with regular contributors more efficiently&lt;br /&gt;
* [14:50] [[User:Rob Linden|Rob Linden]]:  how many of you have three or more patches pending?&lt;br /&gt;
* [14:50] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  just curios .. since nothing has been published much on SLDEV since oct 2007 either..&lt;br /&gt;
* [14:51] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  pending as in &amp;quot;fix pending&amp;quot; or just out there on JIRA?&lt;br /&gt;
* [14:51] [[User:Rob Linden|Rob Linden]]:  (as in, unresolved, not just &amp;quot;fix pending&amp;quot;)&lt;br /&gt;
* [14:51] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  i&#039;ve got a handful&lt;br /&gt;
* [14:51] [[User:Rob Linden|Rob Linden]]:  I know Aimee does as well. Carjay, I&#039;m assuming you do too&lt;br /&gt;
* [14:51] [[User:Carjay McGinnis|Carjay McGinnis]]:  looking, lost track a bit&lt;br /&gt;
* [14:52] [[User:Aimee Trescothick|Aimee Trescothick]]:  waves&lt;br /&gt;
* [14:52] [[User:Aimee Trescothick|Aimee Trescothick]]:  :)&lt;br /&gt;
* [14:52] [[User:Carjay McGinnis|Carjay McGinnis]]:  ok, 3 unresolved, but fix pending&lt;br /&gt;
* [14:52] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  i&#039;ve got one i need to look at again, its acceped in principle, but needs another round of tidying&lt;br /&gt;
* [14:52] [[User:Carjay McGinnis|Carjay McGinnis]]:  rest resolved or fixed&lt;br /&gt;
* [14:52] [[User:Rob Linden|Rob Linden]]:  that&#039;s reassuring&lt;br /&gt;
* [14:53] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  a few of mine are things like crazy mozzila stuff which there is no real resolution&lt;br /&gt;
* [14:53] [[User:Rob Linden|Rob Linden]]:  I think we&#039;ve gotten a lot better in general, but haven&#039;t done a good job of really tracking that in a deep way&lt;br /&gt;
* [14:53] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  i&#039;ve got one or two which are clear bug fixes that have not been applied&lt;br /&gt;
* [14:53] [[User:Squirrel Wood|Squirrel Wood]]:  Things have improved so you are moving in the right direction ^^&lt;br /&gt;
* [14:53] [[User:Carjay McGinnis|Carjay McGinnis]]:  aha!&lt;br /&gt;
* [14:53] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  nods.&lt;br /&gt;
* [14:54] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  Things have improved... much.. admitted..&lt;br /&gt;
* [14:54] [[User:Carjay McGinnis|Carjay McGinnis]]:  indeed&lt;br /&gt;
* [14:54] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  ok .. q ?&lt;br /&gt;
* [14:54] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  the voice implementation .. i &#039;m not sure it&#039;s .. done yet&lt;br /&gt;
* [14:55] [[User:Rob Linden|Rob Linden]]:  Michelle2: which ones are those?&lt;br /&gt;
* [14:55] [[User:Q Linden|Q Linden]]:  Will -- what do you mean?&lt;br /&gt;
* [14:55] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  VWR-8194 but the fix may have bypassed JIRA as i pinged sldev on that as well (thats carjays effort too on this one)&lt;br /&gt;
* [14:56] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  and someone i forget who was excited about it&lt;br /&gt;
* [14:56] [[User:Liana Linden|Liana Linden]]:  Running off to another meeting. Thanks all.&lt;br /&gt;
* [14:56] [[User:Soft Linden|Soft Linden]]:  It&#039;s been a few weeks on that one - I can add a note pinging the Linden who owns that internally.&lt;br /&gt;
* [14:57] [[User:Soft Linden|Soft Linden]]:  It&#039;s assigned to the right guy, he&#039;s just a very busy one.&lt;br /&gt;
* [14:57] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  Yea its a clear buffer overrun and easy to fix&lt;br /&gt;
* [14:57] [[User:Carjay McGinnis|Carjay McGinnis]]:  hm, actually not that easy if you want to do it properly&lt;br /&gt;
* [14:57] [[User:Carjay McGinnis|Carjay McGinnis]]:  you&#039;d have to write some tests for it afterwards&lt;br /&gt;
* [14:58] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  the proper way is to not use an artifical buffer for GL calls&lt;br /&gt;
* [14:58] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  may be thats the blocker? its going to be done properly with a render pipe rewrite of that section&lt;br /&gt;
* [14:59] [[User:Carjay McGinnis|Carjay McGinnis]]:  well, the proper way is not to use immediate mode at all&lt;br /&gt;
* [14:59] [[User:Rob Linden|Rob Linden]]:  yeah, there&#039;s definitely some rework planned in that general area&lt;br /&gt;
* [14:59] [[User:Rob Linden|Rob Linden]]:  well, we&#039;re out of time. anything else we should cover here?&lt;br /&gt;
* [15:00] [[User:Rob Linden|Rob Linden]]:  alright, thanks everyone!&lt;br /&gt;
* [15:00] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  nah, call it a night!&lt;br /&gt;
* [15:00] [[User:Carjay McGinnis|Carjay McGinnis]]:  thanks, Rob&lt;br /&gt;
* [15:00] [[User:Q Linden|Q Linden]]:  thanks, all&lt;br /&gt;
* [15:00] [[User:Michelle2 Zenovka|Michelle2 Zenovka]]:  Thanks&lt;br /&gt;
* [15:00] [[User:Harleen Gretzky|Harleen Gretzky]]:  ttfn&lt;br /&gt;
* [15:00] [[User:Aimee Trescothick|Aimee Trescothick]]:  thank q :D&lt;br /&gt;
* [15:00] [[User:WiLLuMPJuH Footman|WiLLuMPJuH Footman]]:  nods goodbye and retreats.&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Sheet Spotter</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Open_Source_Meeting/Agenda&amp;diff=71405</id>
		<title>Open Source Meeting/Agenda</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Open_Source_Meeting/Agenda&amp;diff=71405"/>
		<updated>2008-06-12T20:48:54Z</updated>

		<summary type="html">&lt;p&gt;Sheet Spotter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt; [[Open Source Meeting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open source meeting - Thursday, 2pm PT.&lt;br /&gt;
&lt;br /&gt;
[http://slurl.com/secondlife/Hippotropolis/248/15/25/ Teleport] to the Linden Open Source Project headquarters.&lt;br /&gt;
&lt;br /&gt;
Please try to add your items as early as possible in the week to give Rob a chance to round up any Lindens that may be appropriate to the discussion.  Please also bring items up on [[SLDev]] before or concurrently with adding them as agenda items here.&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
* Update from the Lindens (standing item) - [[User:Rob Linden|Rob Linden]]&lt;br /&gt;
* Texture caching, follow up from SLDEV, can we store some kind of uncompressed data etc [[User:Michelle2 Zenovka|Michelle2 Zenovka]] 08:02, 5 June 2008 (PDT)&lt;br /&gt;
* {{jira|VWR-7531}} - Dynamic grid loading to the login panel [[User:Michelle2 Zenovka|Michelle2 Zenovka]] 08:02, 5 June 2008 (PDT)&lt;br /&gt;
** including establishing a standard format for grid (region domain) and agent domain identifiers (see my comment in VWR-7531) [[User:Cenji Neutra|Cenji Neutra]] 09:42, 5 June 2008 (PDT)&lt;br /&gt;
* Puppettering - Jake gave us the source code to discuss and play.. so Discuss! (seriously, not sure if there is much if better items turn up last minute then please replace) [[User:Michelle2 Zenovka|Michelle2 Zenovka]] 08:04, 5 June 2008 (PDT)&lt;br /&gt;
* cmake - Hows everyone finding it, build issues, other issues etc [[User:Michelle2 Zenovka|Michelle2 Zenovka]] 08:06, 5 June 2008 (PDT)&lt;br /&gt;
*{{jira|VWR-6994}} - &amp;quot;Avatar Rendering Cost&amp;quot; blanks current hover text. [[User:Sheet Spotter|Sheet Spotter]] 13:48, 12 June 2008 (PDT)&lt;br /&gt;
**I would like to understand the process for assisting LL to identify and correct JIRA issues.&lt;br /&gt;
**For example, I added a comment to VWR-6994 to describe the cause of this problem.&lt;br /&gt;
***Is this the correct procedure? &lt;br /&gt;
***Do I need to inform someone when the cause of a problem has been identified?&lt;br /&gt;
**Pointing me at any existing process that a developer should follow would be appreciated.&lt;br /&gt;
* Next item? Your name? (sign with &amp;quot;&amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;&amp;quot; which will be converted to your name + timestamp)&lt;br /&gt;
&lt;br /&gt;
Default agenda is issue triage of issues listed here: http://jira.secondlife.com/secure/IssueNavigator.jspa?mode=hide&amp;amp;requestId=11240&lt;/div&gt;</summary>
		<author><name>Sheet Spotter</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Open_Source_Meeting/Agenda&amp;diff=71402</id>
		<title>Open Source Meeting/Agenda</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Open_Source_Meeting/Agenda&amp;diff=71402"/>
		<updated>2008-06-12T20:47:59Z</updated>

		<summary type="html">&lt;p&gt;Sheet Spotter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt; [[Open Source Meeting]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open source meeting - Thursday, 2pm PT.&lt;br /&gt;
&lt;br /&gt;
[http://slurl.com/secondlife/Hippotropolis/248/15/25/ Teleport] to the Linden Open Source Project headquarters.&lt;br /&gt;
&lt;br /&gt;
Please try to add your items as early as possible in the week to give Rob a chance to round up any Lindens that may be appropriate to the discussion.  Please also bring items up on [[SLDev]] before or concurrently with adding them as agenda items here.&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
* Update from the Lindens (standing item) - [[User:Rob Linden|Rob Linden]]&lt;br /&gt;
* Texture caching, follow up from SLDEV, can we store some kind of uncompressed data etc [[User:Michelle2 Zenovka|Michelle2 Zenovka]] 08:02, 5 June 2008 (PDT)&lt;br /&gt;
* {{jira|VWR-7531}} - Dynamic grid loading to the login panel [[User:Michelle2 Zenovka|Michelle2 Zenovka]] 08:02, 5 June 2008 (PDT)&lt;br /&gt;
** including establishing a standard format for grid (region domain) and agent domain identifiers (see my comment in VWR-7531) [[User:Cenji Neutra|Cenji Neutra]] 09:42, 5 June 2008 (PDT)&lt;br /&gt;
* Puppettering - Jake gave us the source code to discuss and play.. so Discuss! (seriously, not sure if there is much if better items turn up last minute then please replace) [[User:Michelle2 Zenovka|Michelle2 Zenovka]] 08:04, 5 June 2008 (PDT)&lt;br /&gt;
* cmake - Hows everyone finding it, build issues, other issues etc [[User:Michelle2 Zenovka|Michelle2 Zenovka]] 08:06, 5 June 2008 (PDT)&lt;br /&gt;
*{{jira|VWR-6994}} - &amp;quot;Avatar Rendering Cost&amp;quot; blanks current hover text. &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**I would like to understand the process for assisting LL to identify and correct JIRA issues.&lt;br /&gt;
**For example, I added a comment to VWR-6994 to describe the cause of this problem.&lt;br /&gt;
***Is this the correct procedure? &lt;br /&gt;
***Do I need to inform someone when the cause of a problem has been identified?&lt;br /&gt;
**Pointing me at any existing process that a developer should follow would be appreciated.&lt;br /&gt;
* Next item? Your name? (sign with &amp;quot;&amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;&amp;quot; which will be converted to your name + timestamp)&lt;br /&gt;
&lt;br /&gt;
Default agenda is issue triage of issues listed here: http://jira.secondlife.com/secure/IssueNavigator.jspa?mode=hide&amp;amp;requestId=11240&lt;/div&gt;</summary>
		<author><name>Sheet Spotter</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlRezObject&amp;diff=32369</id>
		<title>LlRezObject</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlRezObject&amp;diff=32369"/>
		<updated>2007-09-22T17:37:14Z</updated>

		<summary type="html">&lt;p&gt;Sheet Spotter: Added statement &amp;quot;Silently fails when trying to rez objects more than 10 meters away&amp;#039; to Caveats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/inventory|inventory|uuid=false|type=object}}&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|func_id=104|func_sleep=0.1|func_energy=200.0&lt;br /&gt;
|func=llRezObject|sort=RezObject&lt;br /&gt;
|p1_type=string|p1_name=inventory&lt;br /&gt;
|p2_type=vector|p2_name=pos|p2_desc=position (in region coordinates)&lt;br /&gt;
|p3_type=vector|p3_name=vel|p3_desc=velocity&lt;br /&gt;
|p4_type=rotation|p4_name=rot|p4_desc=rotation&lt;br /&gt;
|p5_type=integer|p5_name=param|p5_desc=[[on_rez]] event parameter and value returned by [[llGetStartParameter]] in the rezzed object.&lt;br /&gt;
|func_footnote=Causes a hard delay based on the mass of the object rezzed. The root of &#039;&#039;&#039;inventory&#039;&#039;&#039; is not at &#039;&#039;&#039;pos&#039;&#039;&#039; but the center of &#039;&#039;&#039;inventory&#039;&#039;&#039; is.&amp;lt;br/&amp;gt;To have the root prim at &#039;&#039;&#039;pos&#039;&#039;&#039; use [[llRezAtRoot]] instead.&lt;br /&gt;
|func_desc=Instantiate &#039;&#039;&#039;inventory&#039;&#039;&#039; object at &#039;&#039;&#039;pos&#039;&#039;&#039; with velocity &#039;&#039;&#039;vel&#039;&#039;&#039; and rotation &#039;&#039;&#039;rot&#039;&#039;&#039; with start parameter &#039;&#039;&#039;param&#039;&#039;&#039;&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
*Silently fails when trying to rez objects more than 10 meters away&lt;br /&gt;
|constants&lt;br /&gt;
|examples&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRezAtRoot]]|Rezzes the object at the requested position}}&lt;br /&gt;
{{LSL DefineRow||[[llGetStartParameter]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llGodLikeRezObject]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow||[[object_rez]]|triggered when this object rezzes an object from inventory}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|inventory&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Rez&lt;br /&gt;
|cat2=Object&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sheet Spotter</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlRezObject&amp;diff=32368</id>
		<title>LlRezObject</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlRezObject&amp;diff=32368"/>
		<updated>2007-09-22T17:03:43Z</updated>

		<summary type="html">&lt;p&gt;Sheet Spotter: Added explicit statement that position argument is in region coordinates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/inventory|inventory|uuid=false|type=object}}&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|func_id=104|func_sleep=0.1|func_energy=200.0&lt;br /&gt;
|func=llRezObject|sort=RezObject&lt;br /&gt;
|p1_type=string|p1_name=inventory&lt;br /&gt;
|p2_type=vector|p2_name=pos|p2_desc=position (in region coordinates)&lt;br /&gt;
|p3_type=vector|p3_name=vel|p3_desc=velocity&lt;br /&gt;
|p4_type=rotation|p4_name=rot|p4_desc=rotation&lt;br /&gt;
|p5_type=integer|p5_name=param|p5_desc=[[on_rez]] event parameter and value returned by [[llGetStartParameter]] in the rezzed object.&lt;br /&gt;
|func_footnote=Causes a hard delay based on the mass of the object rezzed. The root of &#039;&#039;&#039;inventory&#039;&#039;&#039; is not at &#039;&#039;&#039;pos&#039;&#039;&#039; but the center of &#039;&#039;&#039;inventory&#039;&#039;&#039; is.&amp;lt;br/&amp;gt;To have the root prim at &#039;&#039;&#039;pos&#039;&#039;&#039; use [[llRezAtRoot]] instead.&lt;br /&gt;
|func_desc=Instantiate &#039;&#039;&#039;inventory&#039;&#039;&#039; object at &#039;&#039;&#039;pos&#039;&#039;&#039; with velocity &#039;&#039;&#039;vel&#039;&#039;&#039; and rotation &#039;&#039;&#039;rot&#039;&#039;&#039; with start parameter &#039;&#039;&#039;param&#039;&#039;&#039;&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRezAtRoot]]|Rezzes the object at the requested position}}&lt;br /&gt;
{{LSL DefineRow||[[llGetStartParameter]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llGodLikeRezObject]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow||[[object_rez]]|triggered when this object rezzes an object from inventory}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|inventory&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Rez&lt;br /&gt;
|cat2=Object&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sheet Spotter</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSetTimerEvent&amp;diff=30995</id>
		<title>LlSetTimerEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSetTimerEvent&amp;diff=30995"/>
		<updated>2007-09-09T22:09:39Z</updated>

		<summary type="html">&lt;p&gt;Sheet Spotter: Adding missing comment &amp;quot;Passing in 0.0 stops further timer events.&amp;quot; to the function description.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=107|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llSetTimerEvent|p1_type=float|p1_name=sec&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=Cause the {{LSLG|timer}} event to be triggered every &#039;&#039;&#039;sec&#039;&#039;&#039; seconds. Passing in 0.0 stops further timer events.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=*The timer event is adversely effected by [[llGetRegionTimeDilation|time dilation]] (lag).&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;pre&amp;gt;&lt;br /&gt;
float gap = 2.0;&lt;br /&gt;
float counter = 0.0;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        // Activate the timer listener every 2 seconds&lt;br /&gt;
        llSetTimerEvent(gap);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;The timer stops.&amp;quot;);&lt;br /&gt;
        llSetTimerEvent(0);&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        counter = counter + gap; &lt;br /&gt;
        llSay(0, (string)counter+&amp;quot; seconds have passed&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llSensorRepeat]]|}}&lt;br /&gt;
|also_events={{LSL DefineRow||[[timer]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|sort=SetTimerEvent&lt;br /&gt;
|cat1=Script&lt;br /&gt;
|cat2=Time&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sheet Spotter</name></author>
	</entry>
</feed>