Ryan Minihan:
 |On that note, what I really want to do is have dx render to a gnome
 |canvas or drawing area.  I'm having difficulty finding anything in the
 |gnome or dx documentation as to whether this is even possible.  All the
 |samples are built using motif.  Is this a requirement?   Or can I just
 |pass dx the pointer to an existing window?  

Shouldn't be a problem.  AFAIK DX uses straight X and GL/GLX, not specific
WM calls.  I've used DXLink to render to a Tcl/Tk-created window in Python,
with or without hardware rendering.

For a short reference, grab:

  http://people.freebsd.org/~rhh/py-opendx/py-opendx-1.11.tar.gz

and browse the examples (very C-like), in particular:

  test/03-tk_win.py
  test/07-hwrender.py
  test/10-supervise_spin.py

Some key snippets:

  where_str = "X%d,,#X%d" % ( picture.winfo_depth(), picture.winfo_id() )
  display   = "Display( img, where=\"%s\" );" % where_str
  ...
  assert hw_render_mode in [ "none", "gl","opengl" ]
  if hw_render_mode != "none":
    assert rendering_approx in [ "none", "box", "dots", "wireframe" ]
  ...
  cmd = DX.DXEXEC + " -execonly"
  if hw_render_mode != "none": cmd = cmd + " -hwrender %s" % hw_render_mode
  if depth          == 8     : cmd = cmd + " -8bitcmap private"
  conn = DXLStartDX( cmd, None )
  ...
  DXLSend( conn, ('box2  = Options( box, "rendering mode", "hardware", ' +
                  '"rendering approximation", "%s", ' +
                  '"interaction mode", iact_mode );') % 
                 hw_render_approx )
  
  # Create Supervise objects
  ...
  

Just make sure you create your window (via Gnome/etc.) in the correct
visual -- the one you tell DX to use (e.g. TrueColor 24-bit, or Pseudocolor
8-bit).

Randy

-- 
Randall Hopper (mailto:[EMAIL PROTECTED])
Lockheed Martin Operation Support
EPA Scientific Visualization Center
US EPA N127-01; RTP, NC 27711

Reply via email to