diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2001-11-29 19:24:00 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2001-11-29 19:24:00 +0000 |
| commit | 09daf20b81cdae78772f07c0af22a571d7cc73eb (patch) | |
| tree | 1641f788cafe20b505355b0479ba0d528297eb30 /documentation/glut.html | |
| parent | b105ab8b7fb6281635076559aae96f2b3b12fc51 (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.html | 96 |
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> -<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 +<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>. -<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 "-di" for "-display"). </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->begin()</TT> so that the GLUT window will be +<LI>Call <TT>window->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->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->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> |
