summaryrefslogtreecommitdiff
path: root/documentation/Fl_Gl_Window.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/Fl_Gl_Window.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/Fl_Gl_Window.html')
-rw-r--r--documentation/Fl_Gl_Window.html142
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 &quot;context&quot; 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 &quot;context&quot; 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 &lt;FL/fl_draw.H&gt;, 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 &quot;on&quot; 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 &quot;on&quot; 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>