Hi,


After failing with the latest subversion sources, I was finally successful in compiling a MacOS browser plugin based on the VMM38b4 sources.  However, I can't get OpenGL to work.  I've traced the problem to sqMacOpenGL.c.  The call to GetWindowGreatestAreaDevice() fails with an error code of -5600 ("Invalid Window Pointer").  I assume that this is because getSTWindow() doesn't work when Squeak is running in a browser plugin.

I hacked it by avoiding all the GDH stuff if we are in a browser, like so:

#ifdef BROWSERPLUGIN
swAttrib[2] = 32;
#else
#ifdef INTERNAL
    #if TARGET_API_MAC_CARBON
DPRINTF(5, (fp, "Getting GDH (Carbon):  %d\n", getSTWindow(), flags));
        stat = GetWindowGreatestAreaDevice(getSTWindow(),kWindowContentRgn,&tempGDH,&ignore); 
if (stat) DPRINTF(1, (fp, "ERROR: failed call to GetWindowGreatestAreaDevice (code: %d)\n", stat, flags));
    #else 
DPRINTF(5, (fp, "Getting GDH (non-Carbon)\n", flags));
        tempGDH = getDominateDevice(getSTWindow(),&ignore);
    #endif
        if (tempGDH == nil) {
DPRINTF(1, (fp, "ERROR: tempGDH is nil (whatever that means)\n", flags));
            return -1;
}
swAttrib[2] = (*(*tempGDH)->gdPMap)->pixelSize;
#else
swAttrib[2] = (*(*GetMainDevice())->gdPMap)->pixelSize;
#endif
if(swAttrib[2] < 16) swAttrib[2] = 16;
#endif


Obviously, this is crap, but I don't know the right thing to do.

Anyway, this allows me to successfully create an OpenGL context ("OpenGL newIn: aRect").  Adding an external FFI plugin to the  browser plugin directory lets me make OpenGL calls.  But something is still wrong: it seems like the OpenGL buffers are never swapped (although DPRINTF assures me that they are: "### Swapping renderer buffers"). 

I've had enough of this for tonight; I need some sleep.  But in the meantime, I'll take any advice I can get (eg: "stop working on that, the latest sources will do everything you need RSN").

Thanks,
Josh