From: Steve B. <st...@sj...> - 2008-11-23 13:53:12
|
Freeglut is not intended to support every weird feature of every OS - and then fail to support those same features on the other OS's. That's not portability. We can only include API features that are either: a) Part of the original GLUT. b) Utterly portable and identically functional under all supported OS's. Hence this rather wonderful new feature in MPX is totally inappropriate for freeglut until all of the other OS's that we support can do substantially the same thing. Until then - we'd be adding a new way for authors working on the MPX platform to produce code that won't run elsewhere - and that is 100% contrary to the goals for freeglut. Furthermore - freeglut's brief is not to be a cutting edge windowing API with all the bells and whistles. It's here to support the short examples from the OpenGL redbook, so that there is a common way to share cross-platform sample code, so that we can send bug reports to people like nVidia and ATI without having to send an entire, complex application. There are much better windowing systems out there if you don't need rock-solid portability or if you do need features that only run on one platform. If you are working on a large, complex and feature-laden application that doesn't have to be 100% source-level portable - then freeglut is the WRONG windowing library. If you desperately need this feature - and believe it can be done portably - then you need to work closely with WindowsXP and MacOSX programmers to get that exact same functionality on at least those platforms. If that can't be done - then this is definitely not a feature that freeglut should support. What is not acceptable is "Well I made this work on platform X, it's up to someone else to make it work on Y and Z". It's no use hoping that Win7 will support it - it'll probably be 5 years before we're ready to drop WinXP support - so if XP can't do it - we're not interested. -- Steve Florian Echtler wrote: > Hello Sven, > > >>> So here's the updated version - could someone please test it on Windows? >>> As mentioned, now applies against svn HEAD revision (749). >>> >> I think the main point is not making your patch compile on non-X11 platforms, >> which would be trivial, the main point is: What are the portable(!) semantics >> of your new API entries? Simply stating "It does ... on X11 and nothing on all >> other platforms" is not sufficient for a cross-platform library like freeglut, >> and I would strongly object to such extensions. >> > I agree, which is why the patch does something sensible on Windows, too - see below. > > >> Could you please explain what problems your new API entries are supposed to >> solve and how they solve it? What should the API entries do on Windows, Mac OS >> X, X11 implementations without the extension, etc.? >> > MPX (which is going to be Xorg Release 1.7) supports an arbitrary number > of pointers. Maybe something similar will also apply to Windows 7, > though I'm no expert on that. This means that you can get input events > on more than one window location at once. To distinguish these events, > the pointers have an unique ID which needs to be transferred to the > callback, too. As I wouldn't suggest to change any existing semantics > (glutMouseFunc etc.), I propose to add new callbacks which are basically > equivalent to the existing mouse callbacks with the exception that they > now also have an ID parameter. This also makes it easy to have a > sensible fallback behavior on older Xservers, Mac etc. - the callbacks > are triggered simultaneously to the original single-mouse versions, but > always with an ID of 1. > > Yours, Florian > |