Mono plugin system for viewer

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Mono plugin system for viewer

Виталий Фицнер

Hello all,

After the discussion about viewer UI on OSCC2015, I thought that my old idea about embedded Mono plugins could still be useful. So here is a very straightforward implementation on it, on top of Alchemy viewer:

https://bitbucket.org/vitaly_chashin/alchemy_mono
https://bitbucket.org/vitaly_chashin/monomainplugin 

The implementation is incomplete and can be improved in many ways, but in current state it already allows to write the plugins for viewer in any .Net/Mono language, without changing the native code and rebuilding the viewer.

Please see the readme.pdf in the first repository for details, and sorry for incomplete documentation – perhaps the TestPlugin project in the second repository could give more details…

Vitaly Chashin

_______________________________________________
Opensim-dev mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Mono plugin system for viewer

Cinder Roxley
On December 6, 2015 at 6:59:05 AM, Виталий Фицнер ([hidden email]) wrote:

Hello all, 

After the discussion about viewer UI on OSCC2015, I thought that my old idea about embedded Mono plugins could still be useful. So here is a very straightforward implementation on it, on top of Alchemy viewer: 

https://bitbucket.org/vitaly_chashin/alchemy_mono 
https://bitbucket.org/vitaly_chashin/monomainplugin 

The implementation is incomplete and can be improved in many ways, but in current state it already allows to write the plugins for viewer in any .Net/Mono language, without changing the native code and rebuilding the viewer. 

Please see the readme.pdf in the first repository for details, and sorry for incomplete documentation – perhaps the TestPlugin project in the second repository could give more details… 

Vitaly Chashin 


Hi Vitaly,

Alchemy Viewer dev here. This looks very cool! Going to play with it a bit this weekend. I wrote a lua-jit plugin system a few years ago, but never bothered to do anything with it. Thanks for sharing!

-- 
Cinder Roxley
Sent with Airmail

_______________________________________________
Opensim-dev mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Mono plugin system for viewer

Виталий Фицнер
In reply to this post by Виталий Фицнер
Hi Cinder,
you're welcome.

I tried AngelScript (works fine) and V8 (too heavy). But in both cases (and with Lua) you have to write the SL protocol packets processing from scratch, and in case of Mono you could reuse the libomv.

Vitaly Chashin


Hi Vitaly,

Alchemy Viewer dev here. This looks very cool! Going to play with it a bit this weekend. I wrote a lua-jit plugin system a few years ago, but never bothered to do anything with it. Thanks for sharing!

--
Cinder Roxley
Sent with Airmail

06.12.2015, 16:58, "Виталий Фицнер" <[hidden email]>:

> Hello all,
>
> After the discussion about viewer UI on OSCC2015, I thought that my old idea about embedded Mono plugins could still be useful. So here is a very straightforward implementation on it, on top of Alchemy viewer:
>
> https://bitbucket.org/vitaly_chashin/alchemy_mono
> https://bitbucket.org/vitaly_chashin/monomainplugin
>
> The implementation is incomplete and can be improved in many ways, but in current state it already allows to write the plugins for viewer in any .Net/Mono language, without changing the native code and rebuilding the viewer.
>
> Please see the readme.pdf in the first repository for details, and sorry for incomplete documentation – perhaps the TestPlugin project in the second repository could give more details…
>
> Vitaly Chashin

--
Отправлено из быстрой почты
http://mail.yandex.ru/neo2/collect/?exp=1&t=5
_______________________________________________
Opensim-dev mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Mono plugin system for viewer

Diva Canto
This is super cool!

On 12/6/2015 7:55 AM, Виталий Фицнер wrote:

> Hi Cinder,
> you're welcome.
>
> I tried AngelScript (works fine) and V8 (too heavy). But in both cases (and with Lua) you have to write the SL protocol packets processing from scratch, and in case of Mono you could reuse the libomv.
>
> Vitaly Chashin
>
>
> Hi Vitaly,
>
> Alchemy Viewer dev here. This looks very cool! Going to play with it a bit this weekend. I wrote a lua-jit plugin system a few years ago, but never bothered to do anything with it. Thanks for sharing!
>

_______________________________________________
Opensim-dev mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Mono plugin system for viewer

Cinder Roxley
In reply to this post by Виталий Фицнер
On December 6, 2015 at 8:55:38 AM, Виталий Фицнер ([hidden email]) wrote:
Hi Cinder, 
you're welcome. 

I tried AngelScript (works fine) and V8 (too heavy). But in both cases (and with Lua) you have to write the SL protocol packets processing from scratch, and in case of Mono you could reuse the libomv. 

Vitaly Chashin 

Hi,

This is true if you’re processing the packets using the embedded language. Alchemy contains the LLEasyMessageSender and LLEasyMessageReader classes though. So you just have to add bindings for whatever embedded solution you’re using. However, there may be other benefits to having libomv available as well.

-- 
Cinder Roxley
Sent with Airmail

_______________________________________________
Opensim-dev mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Mono plugin system for viewer

Виталий Фицнер
Hello,
Yes, I used LLEasyMessageSender for packet injection.
 
Of course, it is possible to create the bindings in the native code for packet processing, but I would say that it is a tradeoff between performance, flexibility, and the amount of code required for implementation. Limited implementation of packet handlers in native code would be faster, but not so flexible; libomv variant - flexible, but perhaps a bit slower; flexible implementation in native code requires more coding.
 
Perhaps a kind of performance test could show if the libomv implementation is bad in some cases, but now it is not optimized at all (except some obvious things). 
 
Vitaly Chashin
 
 
 
 
07.12.2015, 18:05, "Cinder Roxley" <[hidden email]>:
On December 6, 2015 at 8:55:38 AM, Виталий Фицнер ([hidden email]) wrote:
 
Hi Cinder, 
you're welcome. 

I tried AngelScript (works fine) and V8 (too heavy). But in both cases (and with Lua) you have to write the SL protocol packets processing from scratch, and in case of Mono you could reuse the libomv. 

Vitaly Chashin 

Hi,

This is true if you’re processing the packets using the embedded language. Alchemy contains the LLEasyMessageSender and LLEasyMessageReader classes though. So you just have to add bindings for whatever embedded solution you’re using. However, there may be other benefits to having libomv available as well.

-- 
Cinder Roxley
Sent with Airmail
,

_______________________________________________
Opensim-dev mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev

 
 
--
Отправлено из быстрой почты
http://mail.yandex.ru/neo2/collect/?exp=1&t=5
 

_______________________________________________
Opensim-dev mailing list
[hidden email]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
Loading...