From: Brian P. <bri...@tu...> - 2006-01-16 23:48:04
|
David Rose wrote: > Brian Paul wrote: > > > A "single application with multiple motherships" is nonsensical (for > lack of a better word) in Chromium. > > > This makes me sad. Why is this? Does Chromium make heavy use of global > data, or does it have much non-reentrant code? There's some global data, but Chromium was designed with the plan that a chromium "session" is configured by a single mothership instance. Until your post, I don't think anyone's ever considered or needed otherwise. I'm still trying to wrap my brain around the idea of multiple motherships now. :) We may have different views of what the mothership should be. > > The application never gets a pointer to a SPU. The OpenGL dispatcher > > just routes all the gl*() calls to the corresponding functions in the > > head SPU. > > > Is it still possible to route calls to a SPU dispatch table without > going through the crappfaker library? I remember it used to be possible > to do this with something like: > > dispatch_table.Begin(...) > dispatch_table.Vertex3f(...) > dispatch_table.End(...) > > But I'm unable to find any references to this on the web page now. 'glim' is the dispatch table. It's basically used like this: void glAccum( GLenum op, GLfloat value ) { glim.Accum( op, value ); } But bypassing glAccum() and calling glim.Accum() instead wouldn't really buy you much. > If > we absolutely have to go through the crappfaker, that explains why it is > necessary to have a single global Chromium session--but this makes me > sad too. In addition to exporting the OpenGL and GLX APIs, the appfaker library also loads the SPU chain and does some other bootstrapping. -Brian |