Commit Graph

1484 Commits

Author SHA1 Message Date
dcnieho
a66dc9389e instead of separate Pause and Resume CBs, we now have a AppStatus CB which passes flags to indicate which state was entered. more extensible
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1586 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 10:54:44 +00:00
dcnieho
753f2f1163 some cleanup
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1585 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 10:36:44 +00:00
dcnieho
c387bfee98 and with 0xFF to indicate to runtime that we want to strip out higher bits - otherwise we get a runtime error when "Smaller Type Checks" is enabled
Thanks Jason Wilkins!

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1584 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 10:20:43 +00:00
dcnieho
e024949098 menu changes based on patch by Jason Wilkins:
- when menu window is shown, the menu's window no longer becomes the active window on windows (we thus don't steal focus from the active window).
- when menu is active and mouse is pressed outside the active menu and if the pressed button is bound to a menu, the old menu is now closed while a new one immediately appears
- menus now hide before their callback is executed, so they don't linger around if callback execution takes a while

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1583 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 10:13:45 +00:00
dcnieho
75dcd74677 can now set the font used for a menu
set default font using glutSetOption(GLUT_MENU_FONT,...) and set font of current menu using glutSetMenuFont()

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1582 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 10:13:04 +00:00
dcnieho
58a343f2e3 error in checking if mouse is in window when opening menu...
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1581 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 10:12:02 +00:00
dcnieho
2f172a9cb0 dont wait till window visible when creating menu, as menu won't be shown until first use...
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1580 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 04:49:13 +00:00
dcnieho
62b5dadbe3 don't show window when creating menu (better fix then making it very small and hiding it asap...
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1579 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 04:28:53 +00:00
dcnieho
9495df62ee variable declaration in wrong place
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1578 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 02:08:55 +00:00
dcnieho
0685ee4d0d - moving to a new way of handling window changes (position, size, visibility)
- we now use a work list and all actions queued up in that list get executed in the main loop, just before redraws are called
- simplified redrawing on windows, now no longer doing so in response to WM_PAINT message. This allows us to full control over when we draw
- now simplified use of state variables in X11 and andriod
- resize, reposition etc callback now processed thru notify checkers that call callback only if needed
- worklist also has an init work type which is executed once for every window, just before the window receives its first draw. This gets rid of hacks to call the reshape function once (that only worked for windows that are created before mainloop is entered)
- in init work processor we also check for presence of draw callback as not having one is an error following GLUT.
- some cleanup in general

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1577 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 01:56:39 +00:00
dcnieho
52bd423f58 using FREE_GLUT_BUILD_STATIC_LIBS and FREEGLUT_BUILD_SHARED_LIBS instead of their unprefixed counterparts to avoid these defs leaking into build settings for other projects.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1576 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 01:29:17 +00:00
dcnieho
dde06cbe5c change CMAKE_SOURCE_DIR to CMAKE_CURRENT_SOURCE_DIR as requested on tracker ( Jim ( d3x0r ) - 2013-03-18 11:36:51 PDT )
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1575 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-04 01:23:27 +00:00
dcnieho
b0d3a86555 to check for menu opening/closing upon button press, should pass cursor position in the window, not in the root window
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1574 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-03 11:20:56 +00:00
dcnieho
2811836c94 cleaned up a bunch of warnings
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1573 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-01 15:40:51 +00:00
dcnieho
b7bbf6277e bit more cleanup
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1572 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-01 15:12:49 +00:00
dcnieho
86a5d3fc91 note about glutSetVertexAttribTexCoord2 in shapes demo
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1571 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-01 12:25:53 +00:00
dcnieho
67cd64fd7a implement setter for texture coord 2 (u,v) vertex attribute so it can be used by FreeGLUT
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1570 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-01 12:01:17 +00:00
dcnieho
1af0007c38 further worked on the teapot drawing code:
cleaned up some debug stuff, and generalized the code
now added teacup and teaspoon too, so we have Newell's set complete
As source attribution, i copied in the whole original email message that the data was taken from, and where i downloaded that email message
fixed z offset as well, so all three objects now drawn centered

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1569 7f0cb862-5218-0410-a997-914c9d46530a
2013-04-01 11:46:20 +00:00
dcnieho
78b4e988c4 same as for all other geometry functions, teapot takes double, not GLdouble now.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1568 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-31 09:46:27 +00:00
dcnieho
6581072673 teapot now using vertex arrays or vertex attribute arrays, using handwritten Bezier surface evaluation code
in fg_geometry, fixed up normal generation for visualization and added support for drawing texture coordinates (teapot has texture coordinates, other geometric shapes don't)

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1567 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-31 09:21:14 +00:00
dcnieho
fc84854e33 wasn't using GLbooleans in this platform independent part of the code
(e.g. used TRUE instead of GL_TRUE)


git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1566 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-21 05:23:31 +00:00
dcnieho
eca6fc6749 normalizing line endings..
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1565 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-19 16:34:21 +00:00
dcnieho
3d935ff946 added some beginner notes for compiling through cmake on Unix
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1564 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-19 14:50:44 +00:00
dcnieho
dbad51f95b note on use of gluint/glushort in fg_geometry
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1563 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-19 10:23:18 +00:00
dcnieho
074ae923ab - another strdup
- windows only opened in iconic state if its a non-gamemode, non-menu toplevel window
- depending on whether window is iconic or not glutSetWindowTitle or glutSetIconTitle call should have immediate effect on windows

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1562 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-17 14:01:46 +00:00
dcnieho
ace8df53ef strdup instead of malloc/strcpy
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1561 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-17 09:09:41 +00:00
dcnieho
24caa9843b small comment fix (this was not todo, we're not leaking memory here)
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1560 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-16 15:46:39 +00:00
dcnieho
7d4a63d970 on windows too: call resize callback only in response to WM message
(yes, on both platform we now don't have an initial resize callback call, it'll be back later)

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1559 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-06 09:27:18 +00:00
dcnieho
9ae70d72c7 gamemode: just go fullscreen
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1558 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-06 09:17:52 +00:00
dcnieho
b3b678a2f7 now have a default reshape callback function that is used if the user didn't set any, instead of having what to do spread out over the code
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1557 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-06 09:17:13 +00:00
dcnieho
d2991524cb fghHavePendingRedisplaysCallback: docs fixed up, and return without checking subwindows first if we have already found a window with pending redisplay
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1556 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-06 03:51:01 +00:00
dcnieho
05fc819508 comment on timer checking, are timers always sorted by triggertime? Else the code is wrong...
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1555 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-06 03:50:14 +00:00
dcnieho
9c2936cd85 joystick:
- only poll joysticks if we have an active joystick
- active joystick is defined as having callback and having positive (NON-ZERO!) pollInterval, as per GLUT sources
- use fgState.NumActiveJoysticks instead of fghHaveJoystick to save bunch of unnecessary function calls etc
- fghcbCheckJoystickPolls more concervative, per window we first check if a joystick is active (per above definition)

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1554 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-06 03:39:00 +00:00
dcnieho
59ae6d2a56 fghSleepForEvents immediately returns if we have an idle callback, so simply don't call the function at all if we just processed the idle callback
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1553 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-05 17:08:32 +00:00
dcnieho
7365dc38d4 error when entering main loop with no windows defined, as GLUT does
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1552 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-04 16:27:00 +00:00
dcnieho
9fa8bcf4db if user opens menu in parent window and then clicked child window, the menu wasn't closed. Fixed (and some cleanup)
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1551 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-04 10:18:35 +00:00
dcnieho
5e97fed06a MenuStatusCallback when menu was closed did not return location of pointer relative to child window's top-left, it only worked for top level windows.
To make this work, fghPlatformGetCursorPos now can return cursor pos relative to top-left of a specified window's client area (this is untested on X11)

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1550 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-04 09:54:55 +00:00
dcnieho
5398d76b76 callign entryfunc should not steal the current window, so save before calling and restore after callback returns
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1549 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-04 09:25:15 +00:00
dcnieho
76f9c9a902 handling of mouse messages more conform docs, some cleanup
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1548 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-04 09:17:03 +00:00
dcnieho
bf4a53a72e missed the windowproc return value
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1547 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 18:43:22 +00:00
dcnieho
bab8eb3423 WM_PAINT more conform to docs
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1546 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 18:28:55 +00:00
dcnieho
c8177024db document glutSetWindowTitle, glutSetIconTitle
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1545 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 17:44:44 +00:00
dcnieho
4edd89470b some cleanup: on window creation, don't have to zero variables that
already set to zero by calloc
in windowproc, don't have handlers that only forward the message to
defwindowproc


git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1544 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 17:22:34 +00:00
dcnieho
78707f3e63 implemented glutSetIconTitle that works on win32, when a window is
minimized, its title is now changed, and changed back when it is restored


git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1543 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 17:20:47 +00:00
dcnieho
736f745cc1 fixed up handling of WM_MOUSEWHEEL, low order of wParam is not the mouse
wheel number, but indicates which virtual keys are pressed during the
scroll wheel motion


git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1542 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 15:42:26 +00:00
dcnieho
7caa405f57 Visibility functions better implemented now. All goes through
WM_SHOWWINDOW except for a newly created window (WM_SHOWWINDOW is too
early for callback then). I now have a state variable that indicates
whether visibility has been notified yet for a new window. This
notification gets done just before the window is first drawn. This
removes the need for fgPlatformMainLoopPreliminaryWork on windows, and
it also works for windows created when the mainloop is already running


git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1541 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 10:31:34 +00:00
dcnieho
c7656b8659 comment on implementation of window status callback
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1540 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 07:43:48 +00:00
dcnieho
4d83b5ab50 simplified some window rect calculations
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1539 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 07:41:23 +00:00
dcnieho
5e48d25cdb document coordinates returned by glutPositionFunc, other doc
improvements regarding docs


git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1538 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 07:15:20 +00:00
dcnieho
6d9e4fdb30 updated docs for fgPlatformMainLoopPreliminaryWork
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1537 7f0cb862-5218-0410-a997-914c9d46530a
2013-03-01 06:50:15 +00:00