All >files >calling >GLUT >procedures >must >be > compiled >with >C++>. > 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. > If >you > call >any >GLUT >drawing > functions >that >FLTK >does > not >emulate >(>glutExtensionsSupported()> , > glutWire*()>, >glutSolid*()>, >and > glutStroke*()> ), >you >will >also >have >to >link > with >the >GLUT >library >(>after> the > FLTK > library!) >
Most >of >FL/glut.H> is >inline >functions. > You >should >take >a > look >at >it >(and >maybe >at > 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 > the >GLUT >3.3 > distribution. >
The >strings >passed >as >menu >labels >are >not > copied. >
glutPostRedisplay()> does >not >work >if >called > from >inside >a > display >function. > You >must >use > glutIdleFunc()> if >you >want > your >display >to > update >continuously. >
glutSwapBuffers()> does >not >work >from >inside > a >display > function. > This >is >on >purpose, >because > FLTK >swaps >the >buffers >for >you. >
glutUseLayer()> does >not >work >well, >and > should >only >be >used > to >initialize >transformations > inside >a >resize >callback. > You >should > redraw > overlays >by >using >glutOverlayDisplayFunc()>. >
Overlays >are >cleared >before >the >overlay >display > function >is >called. > glutLayerGet(GLUT_OVERLAY_DAMAGED)> always >returns >true >for > compatibility >with >some > GLUT >overlay >programs. > You >must >rewrite >your > code >so >that >gl_color()> is >used >to > choose >colors >in >an > overlay, >or >you >will >get > random >overlay >colors. >
glutSetCursor(GLUT_CURSOR_FULL_CROSSHAIR)> just > results >in >a > small >crosshair. >
The >fonts >used >by >glutBitmapCharacter() >and > glutBitmapWidth()> may >be >different. >
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"). >
>Fl_Gl_Window> > | > +---->Fl_Glut_Window> >
>#include <FL/glut.H> >
The >current >GLUT >window >is >available >in >the > global >variable > glut_window>. >
new >Fl_Glut_Window(...)> is >the >same >as > glutCreateWindow()> except >it >does >not >show()> the >window > or >make >the >window >current. >
window->make_current()> is >the >same >as > glutSetWindow(number)>. > If >the >window >has >not > had >show()> called >on >it >yet, >some > functions >that >assumme >an >OpenGL >context >will > not > work. > If >you >do >show()> the >window, >call > make_current()> again >to >set >the >context. >
~Fl_Glut_Window()> is >the >same >as > glutDestroyWindow()> . >
member> | description> |
---|---|
display> | A >pointer >to >the >function >to > call >to >draw >the >normal >planes.> |
entry> | A >pointer >to >the >function >to > call >when >the >mouse >moves >into > or >out >of > the >window.> |
keyboard> | A >pointer >to >the >function >to > call >when >a >regular >key >is >pressed.> |
menu[3]> | The >menu >to >post >when >one > of >the >mouse >buttons >is >pressed.> |
mouse> | A >pointer >to >the >function >to > call >when >a >button >is >pressed >or > released.> |
motion> | A >pointer >to >the >function >to > call >when >the >mouse >is >moved >with > a >button > down.> |
overlaydisplay> | A >pointer >to >the >function > to >call >to >draw >the >overlay >planes.> |
passivemotion> | A >pointer >to >the >function > to >call >when >the >mouse >is >moved >with > no > buttons >down.> |
reshape> | A >pointer >to >the >function >to > call >when >the >window >is >resized.> |
special> | A >pointer >to >the >function >to > call >when >a >special >key >is >pressed.> |
visibility> | A >pointer >to >the >function > to >call >when >the >window >is >iconified > or > restored >(made >visible.)> |