[sldev] Plugin API Architecture for Second Life

Rob Lanphier robla at lindenlab.com
Tue Feb 13 09:20:19 PST 2007


On 2/13/07 2:19 AM, Tofu Linden wrote
> The question behind that of exposed functionality should be: what
> do people anticipate doing with such plugins?  'Everything' is perhaps
> not a very useful answer for initial API planning.  :)
>   
Starting with a concrete example that came up during discussion at my
office hour on Friday, I'd like to figure out how to make it possible
for Dale Glass to ship his client scanner (see forwarded email below) as
a plugin.  This would involve the following:
*  Minimal plugin management (e.g. a set of conventions on where plugin
dll/dylib/so files should be located, maybe some initialization file
conventions, and a dialog which lets people know what plugins are loaded
and running in their viewer.
*  Stabilization of important interfaces to enable this functionality,
breaking out that functionality into a separate dll/dylib/so file.  In
Dale's case, an example would the API to our XUI user interface layer.
*  Other hooks/interfaces that give access to useful functionality.  I
think Bushing sums up the options well here:
https://wiki.secondlife.com/wiki/Plugin_architecture_Low-level_Architecture

That's what I think would be a reasonable start on things.  Get the
basic mechanisms in place, stabilize enough interfaces and hooks that
it's possible to actually do something useful (like Dale's plugin), and
call it version 1.0.  After that, keep incrementally adding new hooks
and/or stabilizing other interfaces.

2c please.

Rob
-------- Original Message --------
Subject: 	[sldev] In-client avatar scanner in progress
Date: 	Sat, 20 Jan 2007 04:12:18 +0100
From: 	Dale Glass <dale at daleglass.net>
To: 	sldev at lists.secondlife.com



Ok, I've been giving this a try, and so far I seem to be getting somewhere.

http://daleglass.net/images/screenshots/client_scanner.png

The aim is to create an avatar scanner in the client, showing avatar, 
distance, and payment data to start with. As you can see there I mostly 
looked at how the avatar list is built and tried to make my own code starting 
from that. Screenshot is a bit old, current state of things is better.

I thought I would ask a few questions to make sure I'm going in the right 
direction:

So far I figured out LLVOAvatar::sInstances seems to be a list of all the 
avatars the client knows of (probably the ones known in the connected sims). 
Is this the right place to look for the data? I want to at the very least 
duplicate the functionality of in-world scanners, but with a better 
interface. A constraint is that I don't want to add extra load unless 
required, so I'd like to use data that the client already gets if possible.

Also, can columns be hidden? I'd like to display quite a lot of data, but most 
people probably won't want all of it (like the exact avatar position)

What is LLVOAvatar::isDead()?

Lack of comments in the source complicates things a bit for me, as I'm not 
entirely sure I'm looking for things in the right place, for instance. One of 
my plans is to add doxygen docs to things as I figure them out. Will LL 
accept patches for this?

Does anybody (LL/SL users) mind such a feature being developed, and are there 
chances of getting it into the official client?

And, is there a testing grid/sim for playing with this stuff? I asked on a 
recent town hall, and got told to look in the FAQ, but I don't see anything 
in it. Attempts to connect to other grids failed.

Hope that's not too many questions. Thanks in advance :-)



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
Url : http://lists.secondlife.com/pipermail/sldev/attachments/20070213/3f876b01/signature.pgp


More information about the SLDev mailing list