[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnu3dkit-dev] Event model
From: |
Philippe C . D . Robert |
Subject: |
Re: [Gnu3dkit-dev] Event model |
Date: |
Sat, 12 Oct 2002 10:54:05 +0200 |
On Freitag, Oktober 11, 2002, at 06:50 Uhr, Matt Brandt wrote:
I was looking at GLUTKit and I got to wondering why you wanted to
invent a new event model instead of using the standard cocoa event
model. I'm no authority on GNUStep but I would expect it to implement
the same event model as cocoa. It seems like we would be giving up
some commonality of interface with the rest of the foundation by
implementing different mouse and keyboard events.
Is this something that changes in 0.4, or is there some deep reason
for doing things this way? It seems like for an application that has
some non-OpenGL windows as well as a G3DCamera that the programming
will suffer from the duality. I would rather see something that
implements the view model (G3DView?). For that matter, why not base
the camera on NSOpenGLView?
OK, let me explain the history a bit ...:-) The 3DKit was initially
developed for a special application. By then it ran on Linux only,
using the GNUstep frameworks. This was pre Mac OS X and there was no
NSOpenGLView at all... Anyway, this app was also not a pure GNUstep
app, it was only using the FoundationKit while the rendering was
fullscreen, so I had to develop my own camera class - or better I
designed the 0.2.x/0.3.x G3DKit in a way which enables the usage of any
kind of backend, be it NSOpenGLView/AppKit, glut, SDL or direct X11
rendering on X11 systems. This is done via separate libraries. Now
every backend handles events differently, so I had to provide a nice OO
wrapper for this as well, so that an app depending on the 3DKit was
free to use any of the backends w/o changing its implementation...
In the 0.4 version the camera design will change completely similar to
how you describe it. The camera will not be the view anymore ( as in
NeXT's 3DKit as well ) but only be the controller which uses a channel
( ie. the NSOpenGLView ) to render the scene. This provides more
flexibility and a cleaner design, I think.
Thoughts? Does this answer your question?
-Phil
--
Philippe C.D. Robert
http://www.nice.ch/~phip