[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