[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