~ubuntu-branches/ubuntu/karmic/gtkglextmm/karmic

« back to all changes in this revision

Viewing changes to docs/reference/html/simple_8cc-example.html

  • Committer: Bazaar Package Importer
  • Author(s): David Morris
  • Date: 2008-02-07 20:19:40 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080207201940-5dx3bhhd8jlyzodn
Tags: 1.2.0-0ubuntu1
* Upgraded to version 1.2.0
* Restored into Hardy (LP: #190175)
* Changed package name to libgtkglextmm-x11-1.2 to match SONAME
* Removed unrequired packaging files from debian/
* Upgrade debian/copyright to point at GPL2 rather than GPL
* Added Silicon Graphics Inc's copyright on files to debian/copyright
* Added the licence for examples/trackball.c examples/trackball.h to
  debian/copyright

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
 
<title>gtkglextmm: Example Documentation</title>
 
3
<title>gtkglextmm: simple.cc</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
5
</head><body>
6
 
<!-- Generated by Doxygen 1.3.4 -->
7
 
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="examples.html">Examples</a></div>
8
 
<h1>simple.cc</h1>Simple gtkglextmm example. <div class="fragment"><pre><span class="comment">// -*- C++ -*-</span>
 
6
<!-- Generated by Doxygen 1.4.4 -->
 
7
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="examples.html">Examples</a></div>
 
8
<h1>simple.cc</h1>Simple gtkglextmm example.<p>
 
9
<div class="fragment"><pre class="fragment"><span class="comment">// -*- C++ -*-</span>
9
10
<span class="comment">/*</span>
10
11
<span class="comment"> * simple.cc:</span>
11
12
<span class="comment"> * Simple gtkglextmm example.</span>
33
34
<span class="comment">// OpenGL frame buffer configuration utilities.</span>
34
35
<span class="comment">//</span>
35
36
<span class="comment"></span>
36
 
<span class="keyword">struct </span><a name="_a67"></a><a class="code" href="classGLConfigUtil.html">GLConfigUtil</a>
 
37
<span class="keyword">struct </span>GLConfigUtil
37
38
{
38
39
  <span class="keyword">static</span> <span class="keywordtype">void</span> print_gl_attrib(<span class="keyword">const</span> Glib::RefPtr&lt;const Gdk::GL::Config&gt;&amp; glconfig,
39
40
                              <span class="keyword">const</span> <span class="keywordtype">char</span>* attrib_str,
100
101
 
101
102
  std::cout &lt;&lt; std::endl;
102
103
 
103
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::USE_GL"</span>,           Gdk::GL::USE_GL,           <span class="keyword">true</span>);
104
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::BUFFER_SIZE"</span>,      Gdk::GL::BUFFER_SIZE,      <span class="keyword">false</span>);
105
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::LEVEL"</span>,            Gdk::GL::LEVEL,            <span class="keyword">false</span>);
106
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::RGBA"</span>,             Gdk::GL::RGBA,             <span class="keyword">true</span>);
107
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::DOUBLEBUFFER"</span>,     Gdk::GL::DOUBLEBUFFER,     <span class="keyword">true</span>);
108
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::STEREO"</span>,           Gdk::GL::STEREO,           <span class="keyword">true</span>);
109
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::AUX_BUFFERS"</span>,      Gdk::GL::AUX_BUFFERS,      <span class="keyword">false</span>);
110
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::RED_SIZE"</span>,         Gdk::GL::RED_SIZE,         <span class="keyword">false</span>);
111
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::GREEN_SIZE"</span>,       Gdk::GL::GREEN_SIZE,       <span class="keyword">false</span>);
112
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::BLUE_SIZE"</span>,        Gdk::GL::BLUE_SIZE,        <span class="keyword">false</span>);
113
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::ALPHA_SIZE"</span>,       Gdk::GL::ALPHA_SIZE,       <span class="keyword">false</span>);
114
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::DEPTH_SIZE"</span>,       Gdk::GL::DEPTH_SIZE,       <span class="keyword">false</span>);
115
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::STENCIL_SIZE"</span>,     Gdk::GL::STENCIL_SIZE,     <span class="keyword">false</span>);
116
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::ACCUM_RED_SIZE"</span>,   Gdk::GL::ACCUM_RED_SIZE,   <span class="keyword">false</span>);
117
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::ACCUM_GREEN_SIZE"</span>, Gdk::GL::ACCUM_GREEN_SIZE, <span class="keyword">false</span>);
118
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::ACCUM_BLUE_SIZE"</span>,  Gdk::GL::ACCUM_BLUE_SIZE,  <span class="keyword">false</span>);
119
 
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::ACCUM_ALPHA_SIZE"</span>, Gdk::GL::ACCUM_ALPHA_SIZE, <span class="keyword">false</span>);
 
104
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::USE_GL"</span>,           <a name="a193"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a15">Gdk::GL::USE_GL</a>,           <span class="keyword">true</span>);
 
105
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::BUFFER_SIZE"</span>,      <a name="a194"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a16">Gdk::GL::BUFFER_SIZE</a>,      <span class="keyword">false</span>);
 
106
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::LEVEL"</span>,            <a name="a195"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a17">Gdk::GL::LEVEL</a>,            <span class="keyword">false</span>);
 
107
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::RGBA"</span>,             <a name="a196"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a18">Gdk::GL::RGBA</a>,             <span class="keyword">true</span>);
 
108
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::DOUBLEBUFFER"</span>,     <a name="a197"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a19">Gdk::GL::DOUBLEBUFFER</a>,     <span class="keyword">true</span>);
 
109
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::STEREO"</span>,           <a name="a198"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a20">Gdk::GL::STEREO</a>,           <span class="keyword">true</span>);
 
110
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::AUX_BUFFERS"</span>,      <a name="a199"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a21">Gdk::GL::AUX_BUFFERS</a>,      <span class="keyword">false</span>);
 
111
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::RED_SIZE"</span>,         <a name="a200"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a22">Gdk::GL::RED_SIZE</a>,         <span class="keyword">false</span>);
 
112
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::GREEN_SIZE"</span>,       <a name="a201"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a23">Gdk::GL::GREEN_SIZE</a>,       <span class="keyword">false</span>);
 
113
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::BLUE_SIZE"</span>,        <a name="a202"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a24">Gdk::GL::BLUE_SIZE</a>,        <span class="keyword">false</span>);
 
114
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::ALPHA_SIZE"</span>,       <a name="a203"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a25">Gdk::GL::ALPHA_SIZE</a>,       <span class="keyword">false</span>);
 
115
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::DEPTH_SIZE"</span>,       <a name="a204"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a26">Gdk::GL::DEPTH_SIZE</a>,       <span class="keyword">false</span>);
 
116
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::STENCIL_SIZE"</span>,     <a name="a205"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a27">Gdk::GL::STENCIL_SIZE</a>,     <span class="keyword">false</span>);
 
117
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::ACCUM_RED_SIZE"</span>,   <a name="a206"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a28">Gdk::GL::ACCUM_RED_SIZE</a>,   <span class="keyword">false</span>);
 
118
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::ACCUM_GREEN_SIZE"</span>, <a name="a207"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a29">Gdk::GL::ACCUM_GREEN_SIZE</a>, <span class="keyword">false</span>);
 
119
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::ACCUM_BLUE_SIZE"</span>,  <a name="a208"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a30">Gdk::GL::ACCUM_BLUE_SIZE</a>,  <span class="keyword">false</span>);
 
120
  print_gl_attrib(glconfig, <span class="stringliteral">"Gdk::GL::ACCUM_ALPHA_SIZE"</span>, <a name="a209"></a><a class="code" href="group__gdkmm__glEnums.html#gga36a31">Gdk::GL::ACCUM_ALPHA_SIZE</a>, <span class="keyword">false</span>);
120
121
 
121
122
  std::cout &lt;&lt; std::endl;
122
123
}
126
127
<span class="comment">// Simple OpenGL scene.</span>
127
128
<span class="comment">//</span>
128
129
<span class="comment"></span>
129
 
<span class="keyword">class </span><a name="_a68"></a><a class="code" href="classSimpleGLScene.html">SimpleGLScene</a> : <span class="keyword">public</span> Gtk::DrawingArea,
130
 
                      <span class="keyword">public</span> Gtk::GL::Widget
 
130
<span class="keyword">class </span>SimpleGLScene : <span class="keyword">public</span> Gtk::DrawingArea,
 
131
                      <span class="keyword">public</span> Gtk::GL::Widget&lt;SimpleGLScene&gt;
131
132
{
132
133
<span class="keyword">public</span>:
133
 
  <a class="code" href="classSimpleGLScene.html">SimpleGLScene</a>();
134
 
  <span class="keyword">virtual</span> ~<a class="code" href="classSimpleGLScene.html">SimpleGLScene</a>();
 
134
  SimpleGLScene();
 
135
  <span class="keyword">virtual</span> ~SimpleGLScene();
135
136
 
136
137
<span class="keyword">protected</span>:
137
138
  <span class="keyword">virtual</span> <span class="keywordtype">void</span> on_realize();
141
142
};
142
143
 
143
144
SimpleGLScene::SimpleGLScene()
144
 
  : Gtk::GL::Widget(static_cast&lt;Gtk::Widget&amp;&gt;(*this))
145
145
{
146
146
  <span class="comment">//</span>
147
147
  <span class="comment">// Configure OpenGL-capable visual.</span>
150
150
  Glib::RefPtr&lt;Gdk::GL::Config&gt; glconfig;
151
151
 
152
152
  <span class="comment">// Try double-buffered visual</span>
153
 
  glconfig = <a name="a69"></a><a class="code" href="classGdk_1_1GL_1_1Config.html#e0">Gdk::GL::Config::create</a>(Gdk::GL::MODE_RGB    |
154
 
                                     Gdk::GL::MODE_DEPTH  |
155
 
                                     Gdk::GL::MODE_DOUBLE);
156
 
  <span class="keywordflow">if</span> (glconfig.is_null())
 
153
  glconfig = <a name="a210"></a><a class="code" href="classGdk_1_1GL_1_1Config.html#e0">Gdk::GL::Config::create</a>(<a name="a211"></a><a class="code" href="group__gdkmm__glEnums.html#gga35a0">Gdk::GL::MODE_RGB</a>    |
 
154
                                     <a name="a212"></a><a class="code" href="group__gdkmm__glEnums.html#gga35a7">Gdk::GL::MODE_DEPTH</a>  |
 
155
                                     <a name="a213"></a><a class="code" href="group__gdkmm__glEnums.html#gga35a4">Gdk::GL::MODE_DOUBLE</a>);
 
156
  <span class="keywordflow">if</span> (!glconfig)
157
157
    {
158
158
      std::cerr &lt;&lt; <span class="stringliteral">"*** Cannot find the double-buffered visual.\n"</span>
159
159
                &lt;&lt; <span class="stringliteral">"*** Trying single-buffered visual.\n"</span>;
160
160
 
161
161
      <span class="comment">// Try single-buffered visual</span>
162
 
      glconfig = <a class="code" href="classGdk_1_1GL_1_1Config.html#e0">Gdk::GL::Config::create</a>(Gdk::GL::MODE_RGB   |
163
 
                                         Gdk::GL::MODE_DEPTH);
164
 
      <span class="keywordflow">if</span> (glconfig.is_null())
 
162
      glconfig = <a class="code" href="classGdk_1_1GL_1_1Config.html#e0">Gdk::GL::Config::create</a>(<a class="code" href="group__gdkmm__glEnums.html#gga35a0">Gdk::GL::MODE_RGB</a>   |
 
163
                                         <a class="code" href="group__gdkmm__glEnums.html#gga35a7">Gdk::GL::MODE_DEPTH</a>);
 
164
      <span class="keywordflow">if</span> (!glconfig)
165
165
        {
166
166
          std::cerr &lt;&lt; <span class="stringliteral">"*** Cannot find any OpenGL-capable visual.\n"</span>;
167
167
          std::exit(1);
296
296
<span class="comment">// The application class.</span>
297
297
<span class="comment">//</span>
298
298
<span class="comment"></span>
299
 
<span class="keyword">class </span><a name="_a70"></a><a class="code" href="classSimple.html">Simple</a> : <span class="keyword">public</span> Gtk::Window
 
299
<span class="keyword">class </span>Simple : <span class="keyword">public</span> Gtk::Window
300
300
{
301
301
<span class="keyword">public</span>:
302
 
  <a class="code" href="classSimple.html">Simple</a>();
303
 
  <span class="keyword">virtual</span> ~<a class="code" href="classSimple.html">Simple</a>();
 
302
  Simple();
 
303
  <span class="keyword">virtual</span> ~Simple();
304
304
 
305
305
<span class="keyword">protected</span>:
306
306
  <span class="comment">// signal handlers:</span>
309
309
<span class="keyword">protected</span>:
310
310
  <span class="comment">// member widgets:</span>
311
311
  Gtk::VBox m_VBox;
312
 
  <a class="code" href="classSimpleGLScene.html">SimpleGLScene</a> m_SimpleGLScene;
 
312
  SimpleGLScene m_SimpleGLScene;
313
313
  Gtk::Button m_ButtonQuit;
314
314
};
315
315
 
316
316
Simple::Simple()
317
 
  : m_VBox(false, 0), m_ButtonQuit("Quit")
 
317
  : m_VBox(false, 0), m_ButtonQuit(<span class="stringliteral">"Quit"</span>)
318
318
{
319
319
  <span class="comment">//</span>
320
320
  <span class="comment">// Top-level window.</span>
340
340
  <span class="comment">//</span>
341
341
 
342
342
  m_ButtonQuit.signal_clicked().connect(
343
 
    SigC::slot(*<span class="keyword">this</span>, &amp;Simple::on_button_quit_clicked));
 
343
    sigc::mem_fun(*<span class="keyword">this</span>, &amp;Simple::on_button_quit_clicked));
344
344
 
345
345
  m_VBox.pack_start(m_ButtonQuit, Gtk::PACK_SHRINK, 0);
346
346
 
372
372
  <span class="comment">// Init gtkglextmm.</span>
373
373
  <span class="comment">//</span>
374
374
 
375
 
  <a name="a71"></a><a class="code" href="namespaceGtk_1_1GL.html#a2">Gtk::GL::init</a>(argc, argv);
 
375
  <a name="a214"></a><a class="code" href="namespaceGtk_1_1GL.html#a2">Gtk::GL::init</a>(argc, argv);
376
376
 
377
377
  <span class="comment">//</span>
378
378
  <span class="comment">// Query OpenGL extension version.</span>
379
379
  <span class="comment">//</span>
380
380
 
381
381
  <span class="keywordtype">int</span> major, minor;
382
 
  <a name="a72"></a><a class="code" href="namespaceGdk_1_1GL.html#a114">Gdk::GL::query_version</a>(major, minor);
 
382
  <a name="a215"></a><a class="code" href="namespaceGdk_1_1GL.html#a116">Gdk::GL::query_version</a>(major, minor);
383
383
  std::cout &lt;&lt; <span class="stringliteral">"OpenGL extension version - "</span>
384
384
            &lt;&lt; major &lt;&lt; <span class="stringliteral">"."</span> &lt;&lt; minor &lt;&lt; std::endl;
385
385
 
387
387
  <span class="comment">// Instantiate and run the application.</span>
388
388
  <span class="comment">//</span>
389
389
 
390
 
  <a class="code" href="classSimple.html">Simple</a> simple;
 
390
  Simple simple;
391
391
 
392
392
  kit.run(simple);
393
393
 
394
394
  <span class="keywordflow">return</span> 0;
395
395
}
396
 
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Thu Nov 20 22:46:32 2003 for gtkglextmm by
 
396
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Feb 27 18:46:53 2006 for gtkglextmm by&nbsp;
397
397
<a href="http://www.doxygen.org/index.html">
398
 
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
399
 
</a>1.3.4 </small></address>
 
398
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
400
399
</body>
401
400
</html>