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/Fl_Gl_Window.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/Fl_Gl_Window.html')
| -rw-r--r-- | documentation/Fl_Gl_Window.html | 142 |
1 files changed, 71 insertions, 71 deletions
diff --git a/documentation/Fl_Gl_Window.html b/documentation/Fl_Gl_Window.html index 21276d2e0..fd5957e57 100644 --- a/documentation/Fl_Gl_Window.html +++ b/documentation/Fl_Gl_Window.html @@ -17,15 +17,15 @@ </PRE> </UL> <H3>Description</H3> - The <TT>Fl_Gl_Window</TT> widget sets things up so OpenGL works, and -also keeps an OpenGL "context" for that window, so that changes to the + The <TT>Fl_Gl_Window</TT> widget sets things up so OpenGL works, and +also keeps an OpenGL "context" for that window, so that changes to the lighting and projection may be reused between redraws. Fl_Gl_Window also flushes the OpenGL streams and swaps buffers after <TT>draw()</TT> - returns. -<P>OpenGL hardware typically provides some overlay bit planes, which -are very useful for drawing UI controls atop your 3D graphics. If the -overlay hardware is not provided, FLTK tries to simulate the overlay, -This works pretty well if your graphics are double buffered, but not + returns. +<P>OpenGL hardware typically provides some overlay bit planes, which +are very useful for drawing UI controls atop your 3D graphics. If the +overlay hardware is not provided, FLTK tries to simulate the overlay, +This works pretty well if your graphics are double buffered, but not very well for single-buffered. </P> <H3>Methods</H3> <CENTER> @@ -64,32 +64,32 @@ very well for single-buffered. </P> </TD></TR> </TABLE> </CENTER> -<H4><A name=Fl_Gl_Window.Fl_Gl_Window>Fl_Gl_Window::Fl_Gl_Window(int x, +<H4><A name=Fl_Gl_Window.Fl_Gl_Window>Fl_Gl_Window::Fl_Gl_Window(int x, int y, int w, int h, const char *label = 0)</A></H4> - Creates a new <TT>Fl_Gl_Window</TT> widget using the given position, -size, and label string. The default boxtype is <TT>FL_NO_BOX</TT>. The -default mode is <TT>FL_RGB|FL_DOUBLE|FL_DEPTH</TT>. -<H4><A name=Fl_Gl_Window.~Fl_Gl_Window>virtual + Creates a new <TT>Fl_Gl_Window</TT> widget using the given position, +size, and label string. The default boxtype is <TT>FL_NO_BOX</TT>. The +default mode is <TT>FL_RGB|FL_DOUBLE|FL_DEPTH</TT>. +<H4><A name=Fl_Gl_Window.~Fl_Gl_Window>virtual Fl_Gl_Window::~Fl_Gl_Window()</A></H4> - The destructor removes the widget and destroys the OpenGL context -associated with it. + The destructor removes the widget and destroys the OpenGL context +associated with it. <H4><A name=Fl_Gl_Window.draw>virtual void Fl_Gl_Window::draw(void)</A></H4> -<TT>Fl_Gl_Window::draw()</TT> is a pure virtual method. You must +<TT>Fl_Gl_Window::draw()</TT> is a pure virtual method. You must subclass <TT>Fl_Gl_Window</TT> and provide an implementation for <TT> -draw()</TT>. You may also provide an implementation of draw_overlay() -if you want to draw into the overlay planes. You can avoid +draw()</TT>. You may also provide an implementation of draw_overlay() +if you want to draw into the overlay planes. You can avoid reinitializing the viewport and lights and other things by checking <TT> -valid()</TT> at the start of <TT>draw()</TT> and only doing the -initialization if it is false. -<P>The <TT>draw()</TT> method can <I>only</I> use OpenGL calls. Do not +valid()</TT> at the start of <TT>draw()</TT> and only doing the +initialization if it is false. +<P>The <TT>draw()</TT> method can <I>only</I> use OpenGL calls. Do not attempt to call X, any of the functions in <FL/fl_draw.H>, or <TT>glX</TT> directly. Do not call <TT>gl_start()</TT> or <TT>gl_finish()</TT>. </P> -<P>If double-buffering is enabled in the window, the back and front +<P>If double-buffering is enabled in the window, the back and front buffers are swapped after this function is completed. </P> <H4><A name=Fl_Gl_Window.mode>const int Fl_Gl_Window::mode() const <BR> int Fl_Gl_Window::mode(int m)</A></H4> - Set or change the OpenGL capabilites of the window. The value can be -any of the following OR'd together: + Set or change the OpenGL capabilites of the window. The value can be +any of the following OR'd together: <UL> <LI><TT>FL_RGB</TT> - RGB color (not indexed) </LI> <LI><TT>FL_RGB8</TT> - RGB color with at least 8 bits of each color </LI> @@ -102,22 +102,22 @@ any of the following OR'd together: <LI><TT>FL_STENCIL</TT> - stencil buffer </LI> <LI><TT>FL_MULTISAMPLE</TT> - multisample antialiasing </LI> </UL> -<TT>FL_RGB</TT> and <TT>FL_SINGLE</TT> have a value of zero, so they -are "on" unless you give <TT>FL_INDEX</TT> or <TT>FL_DOUBLE</TT>. +<TT>FL_RGB</TT> and <TT>FL_SINGLE</TT> have a value of zero, so they +are "on" unless you give <TT>FL_INDEX</TT> or <TT>FL_DOUBLE</TT>. <P>If the desired combination cannot be done, FLTK will try turning off <TT> FL_MULTISAMPLE</TT>. If this also fails the <TT>show()</TT> will call <TT> Fl::error()</TT> and not show the window. </P> -<P>You can change the mode while the window is displayed. This is most -useful for turning double-buffering on and off. Under X this will -cause the old X window to be destroyed and a new one to be created. If -this is a top-level window this will unfortunately also cause the +<P>You can change the mode while the window is displayed. This is most +useful for turning double-buffering on and off. Under X this will +cause the old X window to be destroyed and a new one to be created. If +this is a top-level window this will unfortunately also cause the window to blink, raise to the top, and be de-iconized, and the <TT>xid()</TT> - will change, possibly breaking other code. It is best to make the GL + will change, possibly breaking other code. It is best to make the GL window a child of another window if you wish to do this! </P> <H4><A name=Fl_Gl_Window.can_do>static int Fl_Gl_Window::can_do(int) <BR> int Fl_Gl_Window::can_do() const</A></H4> - Returns non-zero if the hardware supports the given or current OpenGL -mode. + Returns non-zero if the hardware supports the given or current OpenGL +mode. <h4><a name=Fl_Gl_Window.context>void* Fl_Gl_Window::context() const; <br>void Fl_Gl_Window::context(void*, int destroy_flag = false);</a></h4> @@ -136,11 +136,11 @@ href=#Fl_Gl_Window.mode><tt>mode()</tt></a> is changed, or the next time <H4><A name=Fl_Gl_Window.valid>char Fl_Gl_Window::valid() const <BR> void Fl_Gl_Window::valid(char i)</A></H4> -<TT>Fl_Gl_Window::valid()</TT> is turned off when FLTK creates a new +<TT>Fl_Gl_Window::valid()</TT> is turned off when FLTK creates a new context for this window or when the window resizes, and is turned on <I> after</I> <TT>draw()</TT> is called. You can use this inside your <TT> -draw()</TT> method to avoid unneccessarily initializing the OpenGL -context. Just do this: +draw()</TT> method to avoid unneccessarily initializing the OpenGL +context. Just do this: <UL><PRE> void mywindow::draw() { if (!valid()) { @@ -153,59 +153,59 @@ void mywindow::draw() { } </PRE></UL> -You can turn <TT>valid()</TT> on by calling <TT>valid(1)</TT>. You +You can turn <TT>valid()</TT> on by calling <TT>valid(1)</TT>. You should only do this after fixing the transformation inside a <TT>draw()</TT> or after <TT>make_current()</TT>. This is done automatically after <TT> -draw()</TT> returns. +draw()</TT> returns. <H4><A name=Fl_Gl_Window.invalidate>void Fl_Gl_Window::invalidate()</A></H4> - The <TT>invalidate()</TT> method turns off <TT>valid()</TT> and is -equivalent to calling <TT>value(0)</TT>. + The <TT>invalidate()</TT> method turns off <TT>valid()</TT> and is +equivalent to calling <TT>value(0)</TT>. <H4><A name=Fl_Gl_Window.ortho>void Fl_Gl_Window::ortho()</A></H4> - Set the projection so 0,0 is in the lower left of the window and each + Set the projection so 0,0 is in the lower left of the window and each pixel is 1 unit wide/tall. If you are drawing 2D images, your <TT> -draw()</TT> method may want to call this if <TT>valid()</TT> is false. +draw()</TT> method may want to call this if <TT>valid()</TT> is false. <H4><A name=Fl_Gl_Window.make_current>void Fl_Gl_Window::make_current()</A> </H4> - The <TT>make_current()</TT> method selects the OpenGL context for the -widget. It is called automatically prior to the <TT>draw()</TT> method -being called and can also be used to implement feedback and/or -selection within the <TT>handle()</TT> method. -<H4><A name=Fl_Gl_Window.make_overlay_current>void + The <TT>make_current()</TT> method selects the OpenGL context for the +widget. It is called automatically prior to the <TT>draw()</TT> method +being called and can also be used to implement feedback and/or +selection within the <TT>handle()</TT> method. +<H4><A name=Fl_Gl_Window.make_overlay_current>void Fl_Gl_Window::make_overlay_current()</A></H4> - The <TT>make_overlay_current()</TT> method selects the OpenGL context + The <TT>make_overlay_current()</TT> method selects the OpenGL context for the widget's overlay. It is called automatically prior to the <TT> -draw_overlay()</TT> method being called and can also be used to +draw_overlay()</TT> method being called and can also be used to implement feedback and/or selection within the <TT>handle()</TT> - method. + method. <H4><A name=Fl_Gl_Window.swap_buffers>void Fl_Gl_Window::swap_buffers()</A> </H4> - The <TT>swap_buffers()</TT> method swaps the back and front buffers. -It is called automatically after the <TT>draw()</TT> method is called. + The <TT>swap_buffers()</TT> method swaps the back and front buffers. +It is called automatically after the <TT>draw()</TT> method is called. <H4><A name=Fl_Gl_Window.hide>void Fl_Gl_Window::hide()</A></H4> - Hides the window and destroys the OpenGL context. -<H4><A name=Fl_Gl_Window.can_do_overlay>int + Hides the window and destroys the OpenGL context. +<H4><A name=Fl_Gl_Window.can_do_overlay>int Fl_Gl_Window::can_do_overlay()</A></H4> - Returns true if the hardware overlay is possible. If this is false, -FLTK will try to simulate the overlay, with significant loss of update -speed. Calling this will cause FLTK to open the display. -<H4><A name=Fl_Gl_Window.redraw_overlay>void + Returns true if the hardware overlay is possible. If this is false, +FLTK will try to simulate the overlay, with significant loss of update +speed. Calling this will cause FLTK to open the display. +<H4><A name=Fl_Gl_Window.redraw_overlay>void Fl_Gl_Window::redraw_overlay()</A></H4> - This method causes <TT>draw_overlay</TT> to be called at a later time. - Initially the overlay is clear, if you want the window to display -something in the overlay when it first appears, you must call this -immediately after you <TT>show()</TT> your window. -<H4><A name=Fl_Gl_Window.draw_overlay>virtual void + This method causes <TT>draw_overlay</TT> to be called at a later time. + Initially the overlay is clear, if you want the window to display +something in the overlay when it first appears, you must call this +immediately after you <TT>show()</TT> your window. +<H4><A name=Fl_Gl_Window.draw_overlay>virtual void Fl_Gl_Window::draw_overlay()</A></H4> - You must implement this virtual function if you want to draw into the -overlay. The overlay is cleared before this is called. You should + You must implement this virtual function if you want to draw into the +overlay. The overlay is cleared before this is called. You should draw anything that is not clear using OpenGL. You must use <TT> -gl_color(i)</TT> to choose colors (it allocates them from the colormap -using system-specific calls), and remember that you are in an indexed -OpenGL mode and drawing anything other than flat-shaded will probably -not work. +gl_color(i)</TT> to choose colors (it allocates them from the colormap +using system-specific calls), and remember that you are in an indexed +OpenGL mode and drawing anything other than flat-shaded will probably +not work. <P>Both this function and <TT>Fl_Gl_Window::draw()</TT> should check <TT> -Fl_Gl_Window::valid()</TT> and set the same transformation. If you -don't your code may not work on other systems. Depending on the OS, -and on whether overlays are real or simulated, the OpenGL context may +Fl_Gl_Window::valid()</TT> and set the same transformation. If you +don't your code may not work on other systems. Depending on the OS, +and on whether overlays are real or simulated, the OpenGL context may be the same or different between the overlay and main window. </P> </BODY></HTML> |
