One bug fix from John: Execution state bug-fix in glutMainLoop(), per his
post yesterday.
One fix from me: Changed "if( ButtonPress )" to "if( pressed )".
{ButtonPress} is a constant.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@299 7f0cb862-5218-0410-a997-914c9d46530a
I [John] converted everything to double precision to avoid compiler
warnings. I also added a feature to check for memory leaks under
Windows and removed a memory leak (surprise!).
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@296 7f0cb862-5218-0410-a997-914c9d46530a
Smoothed over some code style issues while I was here, but left the
init-string parsing alone for now.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@292 7f0cb862-5218-0410-a997-914c9d46530a
I believe, checked if *either* a wheel or button callback was set,
and then decided which to use---and unconditionally called it.
I left the "either" check in, but added additional checks before
actually doing the invocation.
* Lots of reformatting. Massive. The usual suspects, though, and fairly
trivial: Re-indenting to standard size, shuffling some spaces to match
the freeglut "standard" of:
if( ... )
...and:
func( ... )
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@285 7f0cb862-5218-0410-a997-914c9d46530a
Flushing the X protocol stack every little bit both adds clutter to the
code and may impede performance.
It seems that we should be able to get rid of these, though
allowing client code to directly call glutMainLoopEvent() does make it
a little more complicated.
Something to ponder.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@279 7f0cb862-5218-0410-a997-914c9d46530a
* Removed TABs.
* Made indentation consistant.
* Deleted say-nothing-new comments.
* Changed an *error*check* from an assert to an if().
(The error-check was on window creation; we don't want to
lose that if the user compiles with asserts deactivated.
Also, assert()s really tell us more about programming errors,
rather than run-time errors, so it is a little misleading to
use assert() for error-checks, even if you can depend upon
assert()s never being compiled away to null statements.)
* Added some XXX comments for things that bear some rumination.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@275 7f0cb862-5218-0410-a997-914c9d46530a
Code facelift included:
* Consistant indentation.
* Removal of all TABs (there were a bunch).
* Fit to 80 columns.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@273 7f0cb862-5218-0410-a997-914c9d46530a
little changes to the code appearance.
* Fit the comments at the start of the file to fit 80 columns.
* Noted an unusual feature of the ATTRIB() macro.
* Added ATTRIB_VAL() macro which is really just two ATTRIB()s.
This lets us put things like {ATTRIB (GLX_RED_SIZE); ATTRIB (1);}
on one statement: {ATTRIB_VAL (GLX_RED_SIZE, 1);}.
I did this to preserve some of the layout of information while also
avoiding the nasty semi-visible ";" in the middle of a line of code.
And by putting the {braces} in the macro definition, I was able to
visually clean code of the form:
if (condition)
{
ATTRIB( X ); ATTRIB( 1 );
}
...rewriting as:
if (condition)
ATTRIB_VAL( X, 1 );
* Eliminated a bunch of say-nothing-new comments in fgChooseVisual().
* Combined some semi-useful comments into a block comment summarizing
a loop.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@272 7f0cb862-5218-0410-a997-914c9d46530a
point of view (at least, insofar as: The original file's code was INCON-
SISTANT. I did not remove the "!= NULL" stuff, did not address the
shortest-branch-first issue for if-else statements, and left some rather
ugly "if (x) {... return y} /* else do this */ return NULL;" garbage.
This should, I think, be re-written as "if (x) return y; else return NULL;"
or even better, "ret = NULL; if (x) ret = y; return ret;"
In short, the code still has some issues, but I think that it's a bit
better.
(Oh, I also got rid of oustanding TABs.)
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@271 7f0cb862-5218-0410-a997-914c9d46530a
Fit most of the code to no more than 80 columns.
Raised some issues about completeness/correctness of trying to
decrement the max-window-ID (apparently in order to partially
recycle some window IDs to slightly slow the rate of growth of
window IDs). (I didn't change what the code does, though.)
The functionality of the code should be unchanged.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@270 7f0cb862-5218-0410-a997-914c9d46530a
WIN32 code. Take abs(direction) as the number of ticks, and count it
down.
<stdlib.h> *should* be included by freeglut_internal.h, I think, so it
should be okay; otherwise add a suitable #include.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@268 7f0cb862-5218-0410-a997-914c9d46530a
Now I've lost track of what I said I'd done. Something like:
* Fixed some issues with multiple wheels.
* Noted in comments some issues about other-than-3-real-buttons.
* Fixed formatting to fit 80 columns.
* Removed some BCPL/C++ style comments (//) that are not legal, and
which, if memory servers, are not even strictly legal when disabled
by preprocessor directives. E.g.,
#if 0
not-syntactically-valid-C
#endif
...is not legal. Though most cpp's will discard the bracketed material
completely before the main C compiler pass has a chance to analyze the
syntax. (MSVC++ and GCC both don't seem to mind the BCPL style comments
in plain C, but let's keep the sources clean, eh?)
* Fixed a problem that would have caused freeglut to report doubled
wheel events under XFree86.
Not tested other than compiling. Personally, I think that the interface
is inherently broken at this point unless you are willing to get user-
configuration. (Which would then solve the complaint that Steve had
about computing the tick-size on behalf of applications.) I.e., there
is NO WAY to know if we have the right buttons to start wheels at, or
if there are any buttons after the first wheel(s), etc. We just have to
guess---and if we are wrong, we can get varying degrees of brokeness.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@267 7f0cb862-5218-0410-a997-914c9d46530a
So I've copied the way the game mode does it. It's not ideal but it works.
The glutGet() for the window border sizes will also have to be fixed at
some point.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@266 7f0cb862-5218-0410-a997-914c9d46530a
It now correctly places the window in X11.
It now uses system dependant code for more efficient use of
windowing system calls.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@265 7f0cb862-5218-0410-a997-914c9d46530a
I missed a few lines that went past 80 columns. (^&
Also made formatting more consistant.
Added a couple of XXX comments re. FreeBSD vs. general BSD #ifdef's.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@264 7f0cb862-5218-0410-a997-914c9d46530a
* Fit lines to 80 columns. (It does get tiresome seeing long lines
forced to break by the right-hand border of windows...(^&)
* Eliminated say-nothing-new comments.
* Made formatting more consistant in spots.
* Eliminated some hard TAB characters.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@263 7f0cb862-5218-0410-a997-914c9d46530a
numbers for OS releases corresponding to system headers.
I modified it to also work with NetBSD; I cannot confirm if it is safe with
any other systems, so it remains protected by a #if.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@262 7f0cb862-5218-0410-a997-914c9d46530a
Added some XXX's where comments seemed to require future attention.
Added some new comments with XXX's where future attention seems profitable.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@261 7f0cb862-5218-0410-a997-914c9d46530a
Re-tweaked some lines (mostly got rid of some TABs, but also resulted
in some changed indentation).
Reformatted a big comment to fit to 80 columns.
Removed bogus references to "Linux". (UNIX, and/or X11 were relavent,
and "UNIX/X11" was substituted for "Linux" in those places. This includes
UNIX-alike systems.)
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@259 7f0cb862-5218-0410-a997-914c9d46530a
Cleanup of fghGetConfig(). (One return statement, simpler code.)
Made glutSetOption() have a more consistant style---and also got its lines
to stay under 80 columns.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@258 7f0cb862-5218-0410-a997-914c9d46530a
(I would have picked them up before, but wanted the bug-fix and
conversion-to-error-message changes to go in before I did more
superficial stuff.)
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@257 7f0cb862-5218-0410-a997-914c9d46530a
((a) || (b)) was defined to have value as:
(a) if (a) != 0
(b) if (a) == 0
...instead, it has value 0/1. This was causing a bug. It's probably
just as well, since what I was trying to do definitely fell into the
category of "clever code" rather than "clear code".
Sorry.
* Made glutSetKeyRepeat() call fgError() if you go out of range. (The
old code silently did nothing---not even a warning.)
If it is really desirable to keep running, we should probably at least
generate an fgWarning().
* Deleted some say-nothing-new comments.
* XXX added: Is glutSetKeyRepeat() deprecated?
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@256 7f0cb862-5218-0410-a997-914c9d46530a
* Removed some say-nothing-useful comments.
* Added some tentative mouse-wheel support.
* Fairly massive reformatting of code.
I made some secondary changes to his changes:
* One compilation error was fixed (missing close-paren + semicolon).
* Deleted a few ore say-nothing-useful comments.
* Some of John's code was strangely formatted to the point that it
seemed completely out of place, so I took the liberty of reformatting
it. Since I used GNU EMACS's <tab> key (which re-indents rather than
inserts TAB characters), I had to propogate some indentation changes
a little further than the bare necessity to match up with John's
changes. (John seems to shoot for 2-space indents, while EMACS
(and I, I confess) strongly prefer 4-space indents. The code that
I was re-indenting had been put to 8-space indents, however.)
I have *not* tested the code beyond compiling. I assume that John did
(and that the compilation error was a result a minor change just before
asking me to commit).
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@255 7f0cb862-5218-0410-a997-914c9d46530a
There should be no alterations to how the code performs.
(I modified how the X11 section of the set-cursor code is indented to
slightly better match (IMHO) the rest of his changes.)
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@254 7f0cb862-5218-0410-a997-914c9d46530a
in some cases, the Menu member variable can be NULL.)
Corrected the menu-attach code to make sure that both Window and Menu
pointers are non-NULL (rather than "at least one").
Rewrote button-checks to more simply and more clearly assert that the
"menu button" is a valid button for menu actions: Instead of laboriously
comparing against the three valid buttons (0, 1, 2 or GLUT_BUTTON_*),
we do a simpler range-check and the upper bound is {FREEGLUT_MAX_MENUS},
allowing us to change the number of menuable buttons fairly easily in
the future.
Also deleted a few say-nothing-new comments.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@250 7f0cb862-5218-0410-a997-914c9d46530a