Personal tools
You are here: Home downloads Gem Documentation GemWiki MultipleWindows

Edit history

Edit: -1 of 1
Time: 2008-05-28 18:04:41
Note: /pd/pd/community/projects/software/gem/documentation/GemWiki/MultipleWindows/reparent

currently work is done on support for multiple windows.


  + each [gemwindow] represents a window
    - specifically an on-screen window or an output (ieee1394, file, ?)

  + there should be objects to output to other resssources (e.g. pbuffer,...)
    - offscreen rendering shouldn't have to worry about framerates, because it's assumed they are used every rendercycle

  + rendering is controlled by [gemcontrol]

  + it should be possible to attach [gemhead]s to certain "rendering contexts", e.g. to render a gemlist only to a specific window - offscreen windows probably need to be treated differently, because there can be multiple offscreen windows rendered in the same pass; but we still want to be able to associate more than one gem chain to an offscreen...probably we should associate onscreen windows by a name/symbol, and offscreens by a range of rendering priorities (ie. gemhead 46-52 go to offscreen 1, but 53-55 got to offscreen 2, then offscreen 1 and 2 are rendered to [gemhead 60 firstscreen])

  + RenderTrigger: each gem-object should receive a trigger message once a render-cycle. if several [GemOutput]s are connected to one [gemcontrol], gem-objects will receive the trigger-message only once and not for each GemOutput. 

problems and possible solutions:

  timing issues 

   what if several "contexts" run at different speed

   solution: just do it: compile each gemhead into a display-list and rebuild it only, if it was modified (what for do we have the setModified()-thingie)

  sharing display-lists:

   display-lists are server-based and can only be shared on one display/server. it is impossible to share display-lists across several (remote) displays (might only be of interest for linux)

   possible solution: (non-invasive!, so we don't need to care)


    a big MUST is compatibility with prior versions of Gem.

    solution: use [gemwindow] and [gemcontrol] to simulate a [gemwin]

associating gemlists with contexts.

  see ContextNames

objects involved:


  [gemwindow], !GemOutput


  !GemBase (?)

  controlling the rendering GemcontrolGemoutput

code that is affected:

  obviously: GemOutput, [gemwindow]

  obviously: !GemMan, [gemcontrol]

  GemCache: currently rather useless; might get important again, see RenderTrigger

  *lighting* ! (lights used to be allocated globally, this will not work at all for multiple openGL-contexts,...)

Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser