changed html tags to doxygen commands in documentation/src/glut.dox
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6710 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
8fbaa8bafc
commit
094da5dafa
@ -9,18 +9,18 @@ the follow-on FreeGLUT 2.4.0 libraries.
|
||||
\section glut_using Using the GLUT Compatibility Header File
|
||||
|
||||
You should be able to compile existing GLUT source code by including
|
||||
<tt><FL/glut.H></tt> instead of <tt><GL/glut.h></tt>. This can be
|
||||
done by editing the source, by changing the <tt>-I</tt> switches to
|
||||
the compiler, or by providing a symbolic link from <tt>GL/glut.h</tt>
|
||||
to <tt>FL/glut.H</tt>.
|
||||
\c <FL/glut.H> instead of \c <GL/glut.h>. This can be
|
||||
done by editing the source, by changing the \c -I switches to
|
||||
the compiler, or by providing a symbolic link from \c GL/glut.h
|
||||
to \c FL/glut.H.
|
||||
|
||||
<I>All files calling GLUT procedures must be compiled with C++</I>. You
|
||||
<i>All files calling GLUT procedures must be compiled with C++</i>. You
|
||||
may have to alter them slightly to get them to compile without warnings,
|
||||
and you may have to rename them to get make to use the C++ compiler.
|
||||
|
||||
You must link with the FLTK library. Most of <tt>FL/glut.H</tt>
|
||||
You must link with the FLTK library. Most of \c FL/glut.H
|
||||
is inline functions. You should take a look at it (and maybe at
|
||||
<tt>test/glpuzzle.cxx</tt> in the FLTK source) if you are having trouble
|
||||
\c test/glpuzzle.cxx in the FLTK source) if you are having trouble
|
||||
porting your GLUT program.
|
||||
|
||||
This has been tested with most of the demo programs that come with
|
||||
@ -32,78 +32,78 @@ The following functions and/or arguments to functions are missing,
|
||||
and you will have to replace them or comment them out for your code
|
||||
to compile:
|
||||
|
||||
\li <tt>glutGet(GLUT_ELAPSED_TIME)</tt>
|
||||
\li <tt>glutGet(GLUT_SCREEN_HEIGHT_MM)</tt>
|
||||
\li <tt>glutGet(GLUT_SCREEN_WIDTH_MM)</tt>
|
||||
\li <tt>glutGet(GLUT_WINDOW_NUM_CHILDREN)</tt>
|
||||
\li <tt>glutInitDisplayMode(GLUT_LUMINANCE)</tt>
|
||||
\li <tt>glutLayerGet(GLUT_HAS_OVERLAY)</tt>
|
||||
\li <tt>glutLayerGet(GLUT_LAYER_IN_USE)</tt>
|
||||
\li <tt>glutPushWindow()</tt>
|
||||
\li <tt>glutSetColor(), glutGetColor(), glutCopyColormap()</tt>
|
||||
\li <tt>glutVideoResize()</tt> missing.
|
||||
\li <tt>glutWarpPointer()</tt>
|
||||
\li <tt>glutWindowStatusFunc()</tt>
|
||||
\li \p glutGet(GLUT_ELAPSED_TIME)
|
||||
\li \p glutGet(GLUT_SCREEN_HEIGHT_MM)
|
||||
\li \p glutGet(GLUT_SCREEN_WIDTH_MM)
|
||||
\li \p glutGet(GLUT_WINDOW_NUM_CHILDREN)
|
||||
\li \p glutInitDisplayMode(GLUT_LUMINANCE)
|
||||
\li \p glutLayerGet(GLUT_HAS_OVERLAY)
|
||||
\li \p glutLayerGet(GLUT_LAYER_IN_USE)
|
||||
\li \p glutPushWindow()
|
||||
\li \p glutSetColor(), \p glutGetColor(), \p glutCopyColormap()
|
||||
\li \p glutVideoResize() missing.
|
||||
\li \p glutWarpPointer()
|
||||
\li \p glutWindowStatusFunc()
|
||||
\li Spaceball, buttonbox, dials, and tablet functions
|
||||
|
||||
Most of the symbols/enumerations have different values than GLUT uses.
|
||||
This will break code that relies on the actual values. The only
|
||||
symbols guaranteed to have the same values are true/false pairs like <tt>
|
||||
GLUT_DOWN</tt> and <tt>GLUT_UP</tt>, mouse buttons <tt>
|
||||
GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON, GLUT_RIGHT_BUTTON</tt>, and <tt>
|
||||
GLUT_KEY_F1</tt> thru <tt>F12</tt>.
|
||||
symbols guaranteed to have the same values are true/false pairs like
|
||||
GLUT_DOWN and GLUT_UP, mouse buttons
|
||||
GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON, GLUT_RIGHT_BUTTON, and
|
||||
GLUT_KEY_F1 thru GLUT_KEY_F12.
|
||||
|
||||
The strings passed as menu labels are not copied.
|
||||
|
||||
<tt>glutPostRedisplay()</tt> does not work if called from inside a
|
||||
display function. You must use <tt>glutIdleFunc()</tt> if you want
|
||||
\p glutPostRedisplay() does not work if called from inside a
|
||||
display function. You must use \p glutIdleFunc() if you want
|
||||
your display to update continuously.
|
||||
|
||||
<tt>glutSwapBuffers()</tt> does not work from inside a display
|
||||
\p glutSwapBuffers() does not work from inside a display
|
||||
function. This is on purpose, because FLTK swaps the buffers for you.
|
||||
|
||||
<tt>glutUseLayer()</tt> does not work well, and should only be used
|
||||
\p glutUseLayer() does not work well, and should only be used
|
||||
to initialize transformations inside a resize callback. You should
|
||||
redraw overlays by using <tt>glutOverlayDisplayFunc()</tt>.
|
||||
redraw overlays by using \p glutOverlayDisplayFunc().
|
||||
|
||||
Overlays are cleared before the overlay display function is called. <tt>
|
||||
glutLayerGet(GLUT_OVERLAY_DAMAGED)</tt> always returns true for
|
||||
Overlays are cleared before the overlay display function is called.
|
||||
\p glutLayerGet(GLUT_OVERLAY_DAMAGED) always returns true for
|
||||
compatibility with some GLUT overlay programs. You must rewrite your
|
||||
code so that <tt>gl_color()</tt> is used to choose colors in an
|
||||
code so that \p gl_color() is used to choose colors in an
|
||||
overlay, or you will get random overlay colors.
|
||||
|
||||
<tt>glutSetCursor(GLUT_CURSOR_FULL_CROSSHAIR)</tt> just results in a
|
||||
\p glutSetCursor(GLUT_CURSOR_FULL_CROSSHAIR) just results in a
|
||||
small crosshair.
|
||||
|
||||
The fonts used by <tt>glutBitmapCharacter() and glutBitmapWidth()</tt>
|
||||
The fonts used by \p glutBitmapCharacter() and \p glutBitmapWidth()
|
||||
may be different.
|
||||
|
||||
<tt>glutInit(argc,argv)</tt> will consume different switches than
|
||||
GLUT does. It accepts the switches recognized by <A href="Fl.html#Fl.args">
|
||||
<tt>Fl::args()</tt></A>, and will accept any abbreviation of these
|
||||
\p glutInit(argc,argv) will consume different switches than
|
||||
GLUT does. It accepts the switches recognized by
|
||||
Fl::args(),
|
||||
and will accept any abbreviation of these
|
||||
switches (such as "-di" for "-display").
|
||||
|
||||
\section glut_mixing Mixing GLUT and FLTK Code
|
||||
|
||||
You can make your GLUT window a child of a <tt>Fl_Window</tt> with the
|
||||
You can make your GLUT window a child of a Fl_Window with the
|
||||
following scheme. The biggest trick is that GLUT insists on
|
||||
<tt>show()</tt>'ing the window at the point it is created, which means the
|
||||
<tt>Fl_Window</tt> parent window must already be shown.
|
||||
a call to \p show() the window at the point it is created, which means the
|
||||
Fl_Window parent window must already be shown.
|
||||
|
||||
\li Don't call <tt>glutInit()</tt>.
|
||||
\li Create your <tt>Fl_Window</tt>, and any FLTK widgets. Leave a
|
||||
\li Don't call \p glutInit().
|
||||
\li Create your Fl_Window, and any FLTK widgets. Leave a
|
||||
blank area in the window for your GLUT window.
|
||||
\li <tt>show()</tt> the <tt>Fl_Window</tt>. Perhaps call <tt>
|
||||
show(argc,argv)</tt>.
|
||||
\li \p show() the Fl_Window. Perhaps call \p show(argc,argv).
|
||||
\li Call <tt>window->begin()</tt> so that the GLUT window will be
|
||||
automatically added to it.
|
||||
\li Use <tt>glutInitWindowSize()</tt> and <tt>glutInitWindowPosition()</tt>
|
||||
\li Use \p glutInitWindowSize() and \p glutInitWindowPosition()
|
||||
to set the location in the parent window to put the GLUT window.
|
||||
\li Put your GLUT code next. It probably does not need many changes.
|
||||
Call <tt>window->end()</tt> immediately after the
|
||||
<tt>glutCreateWindow()</tt>!
|
||||
\li You can call either <tt>glutMainLoop()</tt>, <tt>Fl::run()</tt>,
|
||||
or loop calling <tt>Fl::wait()</tt> to run the program.
|
||||
\p glutCreateWindow()!
|
||||
\li You can call either \p glutMainLoop(), Fl::run(),
|
||||
or loop calling Fl::wait() to run the program.
|
||||
|
||||
<A NAME="Fl_Glut_Window"></A> <!-- For old HTML links only ! -->
|
||||
\section glut_Fl_Glut_Window class Fl_Glut_Window
|
||||
@ -129,24 +129,24 @@ to manipulate instances directly rather than use GLUT window id's.
|
||||
These may be created without opening the display, and thus can fit
|
||||
better into FLTK's method of creating windows.
|
||||
|
||||
The current GLUT window is available in the global variable <tt>
|
||||
glut_window</tt>. </P>
|
||||
The current GLUT window is available in the global variable
|
||||
\p glut_window.
|
||||
|
||||
<tt>new Fl_Glut_Window(...)</tt> is the same as <tt>
|
||||
glutCreateWindow()</tt> except it does not <tt>show()</tt> the window
|
||||
or make the window current. </P>
|
||||
<tt>new Fl_Glut_Window(...)</tt> is the same as
|
||||
\p glutCreateWindow() except it does not \p show() the window
|
||||
or make the window current.
|
||||
|
||||
<tt>window->make_current()</tt> is the same as <tt>glutSetWindow(number)</tt>.
|
||||
If the window has not had <tt>show()</tt> called on it yet, some functions
|
||||
<tt>window->make_current()</tt> is the same as \p glutSetWindow(number).
|
||||
If the window has not had \p show() called on it yet, some functions
|
||||
that assumme an OpenGL context will not work.
|
||||
If you do <tt>show()</tt> the window, call <tt>make_current()</tt>
|
||||
again to set the context. </P>
|
||||
If you do \p show() the window, call \p make_current()
|
||||
again to set the context.
|
||||
|
||||
<tt>~Fl_Glut_Window()</tt> is the same as <tt>glutDestroyWindow()</tt>.
|
||||
<tt>~Fl_Glut_Window()</tt> is the same as \p glutDestroyWindow().
|
||||
|
||||
\subsection glut_members Members
|
||||
|
||||
The <tt>Fl_Glut_Window</tt> class contains several public members that can
|
||||
The Fl_Glut_Window class contains several public members that can
|
||||
be altered directly:
|
||||
|
||||
<CENTER><TABLE WIDTH="80%" BORDER="1" ALT="Fl_Glut_Window public members.">
|
||||
@ -207,11 +207,12 @@ be altered directly:
|
||||
|
||||
\subsection glut_methods Methods
|
||||
|
||||
\li <A href=#Fl_Glut_Window.Fl_Glut_Window>Fl_Glut_Window</A>
|
||||
\li <A href=#Fl_Glut_Window.~Fl_Glut_Window>~Fl_Glut_Window</A>
|
||||
\li <A href=#Fl_Glut_Window.make_current>make_current</A>
|
||||
\li \ref glut_fl_glut_window_constructor "Fl_Glut_Window()"
|
||||
\li \ref glut_fl_glut_window_destructor "~Fl_Glut_Window()"
|
||||
\li \ref glut_make_current "make_current()"
|
||||
|
||||
<A name="Fl_Glut_Window.Fl_Glut_Window"></A> <!-- For old HTML links only ! -->
|
||||
\anchor glut_fl_glut_window_constructor
|
||||
Fl_Glut_Window::Fl_Glut_Window(int x, int y, int w, int h, const char
|
||||
*title = 0) <br>
|
||||
Fl_Glut_Window::Fl_Glut_Window(int w, int h, const char *title = 0)
|
||||
@ -223,12 +224,14 @@ will create the window with a preset size, but the window manager will
|
||||
choose the position according to it's own whims.
|
||||
|
||||
<A name="Fl_Glut_Window.~Fl_Glut_Window"> </A> <!-- For old HTML links only ! -->
|
||||
\anchor glut_fl_glut_window_destructor
|
||||
virtual Fl_Glut_Window::~Fl_Glut_Window()
|
||||
|
||||
\par
|
||||
Destroys the GLUT window.
|
||||
|
||||
<A name="Fl_Glut_Window.make_current"> </A> <!-- For old HTML links only ! -->
|
||||
\anchor glut_make_current
|
||||
void Fl_Glut_Window::make_current()
|
||||
|
||||
\par
|
||||
|
||||
Loading…
Reference in New Issue
Block a user