[Bf-committers] Web Plugin Status #2
enrico.fracasso at email.it
Fri Aug 22 01:26:53 CEST 2008
On Thu, Aug 21, 2008 at 22:35, Marcelo Coraça de Freitas
<mfreitas at ydeasolutions.com.br> wrote:
> Hello all,
> The Web plugin for netscape is working now. :)
> I only tested it under gentoo linux with mozilla firefox and there are
> some issues.
> 1. There can be only one instance of the plugin.
> 2. It's very slow.
> 3. No shaders.
> 4. A random "Xlib: unexpected async reply" error occurs.
> #1 will require not only plugin changes but also Ketsji modifications
> as there are some global variables being used in the code unless we fork
> the plugin instance.
> I believe #2 and #3 are related - once I got one fixed the other fix
> will come with it.
> I don't know about #4 yet. It gotta be some part of the plugin that's
> running outside the lock. I believe it can be fixed as soon as we
> isolate the problem.
> Most probably we'll be able to fix all those bugs forking the plugin
> instance. But that will require a major refactoring of the plugin code.
> This will be schedule for later work - only after we got the svn branch
> or something.
> Any tips will be rightly appreciated.
> I'll submit a patch to the bug tracking ASAP.
In these days I've followed a totally different way to try to make the
web plugin work on mozilla, i.e. XEmbed
Using XEmbed it's possible to run a plugin as an external application,
so I adapted blenderplayer in order to make it "XEmbed compatible" (I
need to pass a window id to blenderplayer) and then I build a very
small gecko plugin that read the .blend file from the html file and
then run (fork/exec) blenderplayer inside the plugin window/rectangle.
I've submitted the patch as #17508
The main advantages of this technique are:
* very good performance (the same as blenderplayer) so it solves your
* if blender dies, it does not kill firefox (it's an external process)
* blenderplayer can be run as unprivileged user (for security issue)
* multiple instances are possibile
Problems I've found:
* scripting isn't so easy (IPC between processes)
* AFAIK it works only on unix
* running FPSTemplateLightMap.blend (that requires mouse and keyboard
input) sometimes the plugin gets "confused" about the keyboard status.
More information about the Bf-committers