From: Fay J. F C. AAC/W. <joh...@eg...> - 2005-06-22 22:26:32
|
Gentlemen, Inasmuch as I kept some very worthwhile changes out of "freeglut" 2.4.0 because we were about to release, I believe that it is now time to put these changes in. I have already started with Joe Krahn's dial box support, although I am having a small problem putting a new file into CVS. Interested parties can contact me or Joe directly for the file. I have also fixed a bug in the Sierpinski sponge code that caused the "Shapes" demo to crash. Finally, I have waiting (for the new file capability to be fixed) a "README.Win32" file and also specific static and DLL versions of the "freeglut" demo programs. Other people just before the release mentioned further fixes to menus, full-screen windows, and game mode. There may have been some others that I do not remember. Now is the time to bring them on. If there are enough of them, we can put out 2.6.0 by the end of the summer. John F. Fay joh...@eg... 850-729-6330 |
From: Joe K. <kr...@ni...> - 2005-06-26 20:42:33
|
There are some non-GLUT-like Joystick functions being put into FreeGlut: /* More joystick functions. Should these go into the API? */ int glutJoystickGetNumAxes( int ident ); int glutJoystickGetNumButtons( int ident ); int glutJoystickNotWorking( int ident ); I propose a more generalized method of supporting 'extended' input devices, with the concept of a 'current' device, as with the Window functions. This is IMHO a better fit to the GLUT design concept. For multiple Joysticks, there could be a simple function: void glutSetJoystick(int ident); Now, all of the glutDeviveGet functions, like HAS_JOYSTICK, etc, return info for the Joystick numer. To move beyond Joysticks, we can add something like this: /* Return a device id, or zero if failed. */ int glutOpenDevice(char *name); void glutSetDevice(int device); Now, glutDeviceGet() returns info for the current device, when using an extended/general device enum: GLUT_DEVICE_NUM_AXES GLUT_DEVICE_NUM_BUTTONS GLUT_DEVICE_NUM_KEYS void glutDeviceKeyFunc(...); void glutDeviceButtonFunc(...); void glutDeviceAxisFunc(...); Or maybe design just one DeviceFunc that can handle multiple types by passing a data pointer: void glutDeviceFunc(...); The generic device functions should be usable with regular devices, so that one can, for example, register a button callback for the Keyboard, for games which want to use the keyboard as a Button device instead of as a Key device. It would be good to have a way to map input items to usages, perhaps: const char * glutGetAxisUsage(int axis); const char * glutGetButtonUsage(int button); const char * glutGetKeyUsage(int key); Joe Krahn |
From: Steve B. <sjb...@ai...> - 2005-06-26 23:16:24
|
Joe Krahn wrote: > There are some non-GLUT-like Joystick functions being put into FreeGlut: > /* More joystick functions. Should these go into the API? */ > int glutJoystickGetNumAxes( int ident ); > int glutJoystickGetNumButtons( int ident ); > int glutJoystickNotWorking( int ident ); Personally, I do not believe joystick support belongs in freeglut. We need to provide just enough support to stay compatible with GLUT. ---------------------------- Steve Baker ------------------------- HomeEmail: <sjb...@ai...> WorkEmail: <sj...@li...> HomePage : http://www.sjbaker.org Projects : http://plib.sf.net http://tuxaqfh.sf.net http://tuxkart.sf.net http://prettypoly.sf.net -----BEGIN GEEK CODE BLOCK----- GCS d-- s:+ a+ C++++$ UL+++$ P--- L++++$ E--- W+++ N o+ K? w--- !O M- V-- PS++ PE- Y-- PGP-- t+ 5 X R+++ tv b++ DI++ D G+ e++ h--(-) r+++ y++++ -----END GEEK CODE BLOCK----- |
From: Joe K. <kr...@ni...> - 2005-06-26 23:27:34
|
Steve Baker wrote: > Joe Krahn wrote: > >> There are some non-GLUT-like Joystick functions being put into FreeGlut: >> /* More joystick functions. Should these go into the API? */ >> int glutJoystickGetNumAxes( int ident ); >> int glutJoystickGetNumButtons( int ident ); >> int glutJoystickNotWorking( int ident ); > > > Personally, I do not believe joystick support belongs in freeglut. > > We need to provide just enough support to stay compatible with > GLUT. What about keyboard and pointer input? They are about equally relevant, as long as freeglut supports a Game Mode. Joe Krahn |
From: Steve B. <sjb...@ai...> - 2005-06-27 02:09:06
|
Joe Krahn wrote: > Steve Baker wrote: > >> Personally, I do not believe joystick support belongs in freeglut. >> >> We need to provide just enough support to stay compatible with >> GLUT. > > What about keyboard and pointer input? They are about equally relevant, > as long as freeglut supports a Game Mode. Mouse and keyboard are both intimately wrapped up with Windowing libraries because of the issues of focus, etc. That's not the case with joysticks - they don't even use the same underlying API's. If you are going to provide joystick support - then why not video cameras, audio, scanners, Lego robots...where do you stop? ---------------------------- Steve Baker ------------------------- HomeEmail: <sjb...@ai...> WorkEmail: <sj...@li...> HomePage : http://www.sjbaker.org Projects : http://plib.sf.net http://tuxaqfh.sf.net http://tuxkart.sf.net http://prettypoly.sf.net -----BEGIN GEEK CODE BLOCK----- GCS d-- s:+ a+ C++++$ UL+++$ P--- L++++$ E--- W+++ N o+ K? w--- !O M- V-- PS++ PE- Y-- PGP-- t+ 5 X R+++ tv b++ DI++ D G+ e++ h--(-) r+++ y++++ -----END GEEK CODE BLOCK----- |
From: Joe K. <kr...@ni...> - 2005-06-27 19:11:50
|
Steve Baker wrote: > Joe Krahn wrote: > >> Steve Baker wrote: >> >>> Personally, I do not believe joystick support belongs in freeglut. >>> >>> We need to provide just enough support to stay compatible with >>> GLUT. >> >> >> What about keyboard and pointer input? They are about equally >> relevant, as long as freeglut supports a Game Mode. > > > Mouse and keyboard are both intimately wrapped up with Windowing > libraries because of the issues of focus, etc. > > That's not the case with joysticks - they don't even use the same > underlying API's. I think joysticks belong because they are event-oriented human-input devices, and human-input events are a big part of what GLUT provides outside of OS-independent access to OpenGL. Joysticks and keyboard/mouse are all human input devices, and they really should be available under the same API, and should follow window focus like 'normal' input devices. > > If you are going to provide joystick support - then why not video > cameras, audio, scanners, Lego robots...where do you stop? > Yes, the point of GLUT is to keep thing simple, not make a bloated API. My original post was an idea to keep from cluttering up the GLUT API with a bunch of extra joystick functions, still allow for more than one joystick, which seems to already be making it's way into FreeGLUT. Joe Krahn |
From: Richard R. <sf...@ol...> - 2005-06-28 00:59:35
|
On Mon, Jun 27, 2005 at 03:11:40PM -0400, Joe Krahn wrote: > Steve Baker wrote: > >Joe Krahn wrote: > >>Steve Baker wrote: [...] > I think joysticks belong because they are event-oriented human-input=20 > devices, and human-input events are a big part of what GLUT provides=20 > outside of OS-independent access to OpenGL. This may come down to whether you see a GLUT-like library as defining a new abstraction, or as basically providing a portability layer. I tend to see it as the latter, and would agree with Steve that joysticks don't belong in something like GLUT. > Joysticks and keyboard/mouse are all human input devices, and they=20 > really should be available under the same API, and should follow window= =20 > focus like 'normal' input devices. Unfortunately, they don't, at least in most cases that I'm aware of. Instead, you access the joystick much as you would access an audio device. --=20 "I probably don't know what I'm talking about." http://www.olib.org/~rkr/ |