[vtk-developers] vtkCocoaRenderWindow qq

clinton at elemtech.com clinton at elemtech.com
Wed Oct 1 18:52:41 EDT 2008


On Wednesday 01 October 2008 12:22:38 pm clinton at elemtech.com wrote:
> On Wednesday 01 October 2008 11:34:24 am Sean McBride wrote:
> > On 10/1/08 11:29 AM, clinton at elemtech.com said:
> > >To add Carbon to your table:
> > >vtkWindow concept       Cocoa concept       Carbon concept
> > >DisplayId               NSView                 -na-
> > >WindowId                NSWindow            HIView
> > >ParentId                unimplemented       HIView
> > >RootWindow           -na-                        Window
> >
> > Thanks.
> >
> > >However, I assume the Cocoa support was there before HIViews were
> > >supported by
> > >vtkCarbonRenderWindow.
> >
> > Could be.
> >
> > >What I would have expected was something like
> > >vtkWindow concept       Cocoa concept       Carbon concept
> > >DisplayId               -na-                    -na-
> > >WindowId                NSView            HIView
> > >ParentId                 NSView            HIView
> > >RootWindow           NSWindow             Window
> >
> > I'm not trying to be difficult :), but why would you expect this?  Is
> > there some documentation I'm missing?  vtkWindow seems to give no
> > guidance.  Do you know what these refer to on X11 and Win32?
>
> I don't think you're missing any documentation, maybe what you're looking
> for just isn't there.
>
> Here's my view of things.
> Programmers on Win32 and X11 use a "Window" handle.  That Window can be a
> child or not.  You can draw content in that Window.  I consider that
> mapping to Cocoa's NSView.
>
> On X11, a Window that is not a child is managed by the window manager.  The
> window manager addes the minimize button, maximize buttons, window border,
> window title, etc...  I consider that roughly mapping to Mac's NSWindow.
>
> Also, when I consider the typical use cases on X11 and Win32, SetWindowId
> is called with a child Window.
>

I forgot to add, "Display" on X11 is a group of Windows.  So I could have 
multiple vtkX11OpenGLRenderWindow instances with the same DisplayId.  A 
Display could even be a group of windows that show up on another machine over 
the network.  I don't see how that maps to a NSView, which is what the 
current vtkCocoaRenderWindow does.

"Display" has no meaning in Win32, but the vtkWin32*RenderWindow uses it as a 
way for the user to get/set a Device Context, instead of providing another 
get/set function.

Clint



More information about the vtk-developers mailing list