[sldev] Snowglobe-Sharp Re: Why hasn't Linden Lab implemented WRITING to NOTECARD?

Dzonatas Sol dzonatas at gmail.com
Thu Jun 11 16:33:38 PDT 2009


Melinda Green wrote:
> Dzonatas Sol wrote:
>> Melinda Green wrote:
>>> If you think things are complicated now, just wait until we start 
>>> leaning heavily on multithreading to spread the load!
>>
>> Sounds like a good time to move UI implementation from C++ and go C#. 
>> It'll make it that much less complicated.
>
> OMG, Yes! Unfortunately I think we're too far along the current path 
> to do that. A change that big would in practice require a complete 
> rewrite. If we ever achieve greater code separation, then this sort of 
> thing becomes possible by layering a 2D Java/Swing or C# GUI over the 
> existing 3D engine. That's my dream anyway.
>
> -Melinda
>
Well, then part of your dream has already become a reality.

I've went ahead and already started on Snowglob-Sharp. Since it is the 
API being exported by glib, it doesn't need to be dependant on C#, as 
gobject exports are being supported by many languages, like Java, 
Python, Ruby, Perl, and more.

Here is where I'm at now:

* "snowglobe-sharp: Determine a template/boilerplate to use to 
auto-generate the C & H GObject files" 
http://jira.dzonux.net:8080/browse/MVS-40

** Since I've already made several API objects, eventually they should 
be all auto-generated, and I can use what I started to create a template 
for them. I went through several UML->MDA->text model conversions and 
determined what is available advanced for its specific implementation 
and too complicated to have it do something simple and similar to 
glib-genmarshal. UML is not even on the stove at this time.

* "snowglobe-sharp: use GAPI tools to auto-generate API wrappers to 
libsnowglobe.dll" http://jira.dzonux.net:8080/browse/MVS-38

** I just completed this. Basically I took all the direct API I had 
done, so far, and wrapped them up to where GAPI tools can auto-gen the 
C# API. This became Snowglobe-Sharp. Eventually I'll untie this part 
from the MonoVida code, but for now I want it to build together for the 
single-keypress build all command that I hit often (plus the API changes 
too quickly to untie right now).

*"Reimplement all chat/communicate panels as MonoVida.Panel.*" 
http://jira.dzonux.net:8080/browse/MVS-25

** The basics for "local chat" is done. See screenshot here: 
https://wiki.secondlife.com/wiki/Alternate_viewers#MonoVida_Studio

** I've moved on to IM sessions, so I have stubs and structures in code 
for that right now.

* Threads are no problem. I already have code that I haven't merged and 
commited where Mono/.NET threads are used instead of what the viewer 
uses. I recently disabled the default signal handler in the viewer, so 
that Mono gives a complete C# stacktrace + gdb output.

I consider code separation already being on the path of being achieved.

Wish we were working together on it...


More information about the SLDev mailing list