summaryrefslogtreecommitdiff
path: root/documentation/glut.html
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2001-11-29 19:24:00 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2001-11-29 19:24:00 +0000
commit09daf20b81cdae78772f07c0af22a571d7cc73eb (patch)
tree1641f788cafe20b505355b0479ba0d528297eb30 /documentation/glut.html
parentb105ab8b7fb6281635076559aae96f2b3b12fc51 (diff)
Documentation updates galore (up to chapter 7, still need to do chapter
8 and 9, tweek the appendices, and recapture the screenshots...) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1786 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'documentation/glut.html')
-rw-r--r--documentation/glut.html96
1 files changed, 48 insertions, 48 deletions
diff --git a/documentation/glut.html b/documentation/glut.html
index c26ee7352..93d7b30e8 100644
--- a/documentation/glut.html
+++ b/documentation/glut.html
@@ -1,31 +1,31 @@
<HTML><BODY>
<H1 ALIGN=RIGHT><A NAME=glut>D - GLUT Compatibility</A></H1>
- This appendix describes the GLUT compatibility header file supplied
-with FLTK.
+ This appendix describes the GLUT compatibility header file supplied
+with FLTK.
<H2>Using the GLUT Compatibility Header File</H2>
You should be able to compile existing GLUT source code by including <TT>
-&lt;FL/glut.H&gt;</TT> instead of <TT>&lt;GL/glut.h&gt;</TT>. This can be done by
-editing the source, by changing the <TT>-I</TT> switches to the
+&lt;FL/glut.H&gt;</TT> instead of <TT>&lt;GL/glut.h&gt;</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>.
-<P><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++
+FL/glut.H</TT>.
+<P><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. </P>
-<P>You must link with the FLTK library. If you call any GLUT drawing
+<P>You must link with the FLTK library. If you call any GLUT drawing
functions that FLTK does not emulate (<TT>glutExtensionsSupported()</TT>
, <TT>glutWire*()</TT>, <TT>glutSolid*()</TT>, and <TT>glutStroke*()</TT>
-), you will also have to link with the GLUT library (<I>after</I> the
+), you will also have to link with the GLUT library (<I>after</I> the
FLTK library!) </P>
-<P>Most of <TT>FL/glut.H</TT> is inline functions. You should take a
-look at it (and maybe at <TT>test/glpuzzle.cxx</TT> in the FLTK source) if
+<P>Most of <TT>FL/glut.H</TT> 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 porting your GLUT program. </P>
-<P>This has been tested with most of the demo programs that come with
+<P>This has been tested with most of the demo programs that come with
the GLUT 3.3 distribution. </P>
<H2>Known Problems</H2>
- 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:
+ 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:
<UL>
<LI><TT>glutLayerGet(GLUT_LAYER_IN_USE)</TT></LI>
<LI><TT>glutLayerGet(GLUT_HAS_OVERLAY)</TT></LI>
@@ -43,53 +43,53 @@ compile:
<LI><TT>glutGet(GLUT_ELAPSED_TIME)</TT></LI>
<LI><TT>glutVideoResize()</TT> missing. </LI>
</UL>
- Most of the symbols/enumerations have different values than GLUT uses.
- This will break code that relies on the actual values. The only
+ 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>.
+GLUT_KEY_F1</TT> thru <TT>F12</TT>.
<P>The strings passed as menu labels are not copied. </P>
-<P><TT>glutPostRedisplay()</TT> does not work if called from inside a
-display function. You must use <TT>glutIdleFunc()</TT> if you want
+<P><TT>glutPostRedisplay()</TT> does not work if called from inside a
+display function. You must use <TT>glutIdleFunc()</TT> if you want
your display to update continuously. </P>
-<P><TT>glutSwapBuffers()</TT> does not work from inside a display
+<P><TT>glutSwapBuffers()</TT> does not work from inside a display
function. This is on purpose, because FLTK swaps the buffers for you. </P>
-<P><TT>glutUseLayer()</TT> does not work well, and should only be used
-to initialize transformations inside a resize callback. You should
+<P><TT>glutUseLayer()</TT> 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>. </P>
<P>Overlays are cleared before the overlay display function is called. <TT>
-glutLayerGet(GLUT_OVERLAY_DAMAGED)</TT> 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
+glutLayerGet(GLUT_OVERLAY_DAMAGED)</TT> 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
overlay, or you will get random overlay colors. </P>
-<P><TT>glutSetCursor(GLUT_CURSOR_FULL_CROSSHAIR)</TT> just results in a
+<P><TT>glutSetCursor(GLUT_CURSOR_FULL_CROSSHAIR)</TT> just results in a
small crosshair. </P>
<P>The fonts used by <TT>glutBitmapCharacter() and glutBitmapWidth()</TT>
may be different. </P>
-<P><TT>glutInit(argc,argv)</TT> will consume different switches than
+<P><TT>glutInit(argc,argv)</TT> will consume different switches than
GLUT does. It accepts the switches recognized by <A href=functions.html#args>
-<TT>Fl::args()</TT></A>, and will accept any abbreviation of these
+<TT>Fl::args()</TT></A>, and will accept any abbreviation of these
switches (such as &quot;-di&quot; for &quot;-display&quot;). </P>
<H2>Mixing GLUT and FLTK Code</H2>
- 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 <TT>Fl_Window</TT> 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.
+Fl_Window</TT> parent window must already be shown.
<UL>
<LI>Don't call <TT>glutInit()</TT>. </LI>
-<LI>Create your <TT>Fl_Window</TT>, and any FLTK widgets. Leave a
+<LI>Create your <TT>Fl_Window</TT>, and any FLTK widgets. Leave a
blank area in the window for your GLUT window. </LI>
<LI><TT>show()</TT> the <TT>Fl_Window</TT>. Perhaps call <TT>
show(argc,argv)</TT>. </LI>
-<LI>Call <TT>window-&gt;begin()</TT> so that the GLUT window will be
+<LI>Call <TT>window-&gt;begin()</TT> so that the GLUT window will be
automatically added to it. </LI>
<LI>Use <TT>glutInitWindowSize()</TT> and <TT>glutInitWindowPosition()</TT>
to set the location in the parent window to put the GLUT window. </LI>
-<LI>Put your GLUT code next. It probably does not need many changes.
+<LI>Put your GLUT code next. It probably does not need many changes.
Call <TT>window-&gt;end()</TT> immediately after the <TT>
glutCreateWindow()</TT>! </LI>
-<LI>You can call either <TT>glutMainLoop()</TT>, <TT>Fl::run()</TT>, or
+<LI>You can call either <TT>glutMainLoop()</TT>, <TT>Fl::run()</TT>, or
loop calling <TT>Fl::wait()</TT> to run the program. </LI>
</UL>
<HR break>
@@ -110,18 +110,18 @@ loop calling <TT>Fl::wait()</TT> to run the program. </LI>
</PRE>
</UL>
<H3>Description</H3>
- Each GLUT window is an instance of this class. You may find it useful
-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.
+ Each GLUT window is an instance of this class. You may find it useful
+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.
<P>The current GLUT window is available in the global variable <TT>
glut_window</TT>. </P>
<P><TT>new Fl_Glut_Window(...)</TT> is the same as <TT>
-glutCreateWindow()</TT> except it does not <TT>show()</TT> the window
+glutCreateWindow()</TT> except it does not <TT>show()</TT> the window
or make the window current. </P>
<P><TT>window-&gt;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 that assumme an OpenGL context will
+ 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>
<P><TT>~Fl_Glut_Window()</TT> is the same as <TT>glutDestroyWindow()</TT>
@@ -192,15 +192,15 @@ be altered directly:
<LI><A href=#Fl_Glut_Window.make_current>make_current</A></LI>
</UL>
<H4><A name=Fl_Glut_Window.Fl_Glut_Window>
-Fl_Glut_Window::Fl_Glut_Window(int x, int y, int w, int h, const char
+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)</A>
</H4>
- The first constructor takes 4 int arguments to create the window with
-a preset position and size. The second constructor with 2 arguments
-will create the window with a preset size, but the window manager will
-choose the position according to it's own whims.
-<H4><A name=Fl_Glut_Window.~Fl_Glut_Window>virtual
+ The first constructor takes 4 int arguments to create the window with
+a preset position and size. The second constructor with 2 arguments
+will create the window with a preset size, but the window manager will
+choose the position according to it's own whims.
+<H4><A name=Fl_Glut_Window.~Fl_Glut_Window>virtual
Fl_Glut_Window::~Fl_Glut_Window()</A></H4>
Destroys the GLUT window.
<H4><A name="Fl_Glut_Window.make_current">void Fl_Glut_Window::make_current()</A></H4>