Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wisp
GitHub Repository: wisp/impinj-reader-app
Path: blob/master/Resources/taoframework-2.1.0/bin/Tao.FreeGlut.xml
178 views
1
<?xml version="1.0"?>
2
<doc>
3
<assembly>
4
<name>Tao.FreeGlut</name>
5
</assembly>
6
<members>
7
<member name="T:Tao.FreeGlut.Glut">
8
<summary>
9
FreeGLUT (OpenGL Utility Toolkit) binding for .NET, implementing FreeGlut 2.4.0.
10
</summary>
11
</member>
12
<member name="F:Tao.FreeGlut.Glut.FREEGLUT_NATIVE_LIBRARY">
13
<summary>
14
Specifies FREEGLUT's native library archive.
15
</summary>
16
<remarks>
17
Specifies freeglut.dll everywhere; will be mapped via .config for mono.
18
</remarks>
19
</member>
20
<member name="F:Tao.FreeGlut.Glut.CALLING_CONVENTION">
21
<summary>
22
Specifies the calling convention.
23
</summary>
24
<remarks>
25
Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.Winapi"/>.
26
</remarks>
27
</member>
28
<member name="F:Tao.FreeGlut.Glut.FREEGLUT">
29
<summary>
30
FreeGLUT API marker.
31
</summary>
32
</member>
33
<member name="F:Tao.FreeGlut.Glut.FREEGLUT_VERSION_2_0">
34
<summary>
35
FreeGLUT API version marker.
36
</summary>
37
</member>
38
<member name="F:Tao.FreeGlut.Glut.GLUT_API_VERSION">
39
<summary>
40
GLUT API revision.
41
</summary>
42
<remarks>
43
<para>
44
GLUT_API_VERSION is updated to reflect incompatible GLUT API changes
45
(interface changes, semantic changes, deletions, or additions).
46
</para>
47
<para>
48
GLUT_API_VERSION=1 First public release of GLUT. 11/29/94
49
</para>
50
<para>
51
GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, extension.
52
Supports new input devices like tablet, dial and button box, and Spaceball.
53
Easy to query OpenGL extensions.
54
</para>
55
<para>
56
GLUT_API_VERSION=3 glutMenuStatus added.
57
</para>
58
<para>
59
GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, glutBitmapLength,
60
glutStrokeLength, glutWindowStatusFunc, dynamic video resize subAPI,
61
glutPostWindowRedisplay, glutKeyboardUpFunc, glutSpecialUpFunc,
62
glutIgnoreKeyRepeat, glutSetKeyRepeat, glutJoystickFunc,
63
glutForceJoystickFunc (NOT FINALIZED!).
64
</para>
65
</remarks>
66
</member>
67
<member name="F:Tao.FreeGlut.Glut.GLUT_XLIB_IMPLEMENTATION">
68
<summary>
69
70
</summary>
71
</member>
72
<member name="F:Tao.FreeGlut.Glut.GLUT_RGB">
73
<summary>
74
An alias for <see cref="F:Tao.FreeGlut.Glut.GLUT_RGBA"/>.
75
</summary>
76
</member>
77
<member name="F:Tao.FreeGlut.Glut.GLUT_RGBA">
78
<summary>
79
Bit mask to select an RGBA mode window. This is the default if neither
80
<see cref="F:Tao.FreeGlut.Glut.GLUT_RGB"/>, <i>GLUT_RGBA</i>, nor <see cref="F:Tao.FreeGlut.Glut.GLUT_INDEX"/> are
81
specified.
82
</summary>
83
</member>
84
<member name="F:Tao.FreeGlut.Glut.GLUT_INDEX">
85
<summary>
86
Bit mask to select a color index mode window. This overrides
87
<see cref="F:Tao.FreeGlut.Glut.GLUT_RGB"/> or <see cref="F:Tao.FreeGlut.Glut.GLUT_RGBA"/> if they are also
88
specified.
89
</summary>
90
</member>
91
<member name="F:Tao.FreeGlut.Glut.GLUT_SINGLE">
92
<summary>
93
Bit mask to select a single buffered window. This is the default if neither
94
<see cref="F:Tao.FreeGlut.Glut.GLUT_DOUBLE"/> or <i>GLUT_SINGLE</i> are specified.
95
</summary>
96
</member>
97
<member name="F:Tao.FreeGlut.Glut.GLUT_DOUBLE">
98
<summary>
99
Bit mask to select a double buffered window. This overrides
100
<see cref="F:Tao.FreeGlut.Glut.GLUT_SINGLE"/> if it is also specified.
101
</summary>
102
</member>
103
<member name="F:Tao.FreeGlut.Glut.GLUT_ACCUM">
104
<summary>
105
Bit mask to select a window with an accumulation buffer.
106
</summary>
107
</member>
108
<member name="F:Tao.FreeGlut.Glut.GLUT_ALPHA">
109
<summary>
110
Bit mask to select a window with an alpha component to the color buffer(s).
111
</summary>
112
</member>
113
<member name="F:Tao.FreeGlut.Glut.GLUT_DEPTH">
114
<summary>
115
Bit mask to select a window with a depth buffer.
116
</summary>
117
</member>
118
<member name="F:Tao.FreeGlut.Glut.GLUT_STENCIL">
119
<summary>
120
Bit mask to select a window with a stencil buffer.
121
</summary>
122
</member>
123
<member name="F:Tao.FreeGlut.Glut.GLUT_MULTISAMPLE">
124
<summary>
125
Bit mask to select a window with multisampling support. If multisampling is
126
not available, a non-multisampling window will automatically be chosen. Note:
127
both the OpenGL client-side and server-side implementations must support the
128
GLX_SAMPLE_SGIS extension for multisampling to be available.
129
</summary>
130
</member>
131
<member name="F:Tao.FreeGlut.Glut.GLUT_STEREO">
132
<summary>
133
Bit mask to select a stereo window.
134
</summary>
135
</member>
136
<member name="F:Tao.FreeGlut.Glut.GLUT_LUMINANCE">
137
<summary>
138
Bit mask to select a window with a "luminance" color model. This model
139
provides the functionality of OpenGL's RGBA color model, but the green and
140
blue components are not maintained in the frame buffer. Instead each pixel's
141
red component is converted to an index between zero and
142
<c>Glut.glutGet(Glut.GLUT_WINDOW_COLORMAP_SIZE) - 1</c> and looked up in a
143
per-window color map to determine the color of pixels within the window. The
144
initial colormap of <see cref="F:Tao.FreeGlut.Glut.GLUT_LUMINANCE"/> windows is initialized to
145
be a linear gray ramp, but can be modified with GLUT's colormap routines.
146
</summary>
147
</member>
148
<member name="F:Tao.FreeGlut.Glut.GLUT_LEFT_BUTTON">
149
<summary>
150
Left mouse button.
151
</summary>
152
</member>
153
<member name="F:Tao.FreeGlut.Glut.GLUT_MIDDLE_BUTTON">
154
<summary>
155
Middle mouse button.
156
</summary>
157
</member>
158
<member name="F:Tao.FreeGlut.Glut.GLUT_RIGHT_BUTTON">
159
<summary>
160
Right mouse button.
161
</summary>
162
</member>
163
<member name="F:Tao.FreeGlut.Glut.GLUT_DOWN">
164
<summary>
165
Mouse button down.
166
</summary>
167
</member>
168
<member name="F:Tao.FreeGlut.Glut.GLUT_UP">
169
<summary>
170
Mouse button up.
171
</summary>
172
</member>
173
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F1">
174
<summary>
175
F1 function key.
176
</summary>
177
</member>
178
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F2">
179
<summary>
180
F2 function key.
181
</summary>
182
</member>
183
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F3">
184
<summary>
185
F3 function key.
186
</summary>
187
</member>
188
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F4">
189
<summary>
190
F4 function key.
191
</summary>
192
</member>
193
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F5">
194
<summary>
195
F5 function key.
196
</summary>
197
</member>
198
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F6">
199
<summary>
200
F6 function key.
201
</summary>
202
</member>
203
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F7">
204
<summary>
205
F7 function key.
206
</summary>
207
</member>
208
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F8">
209
<summary>
210
F8 function key.
211
</summary>
212
</member>
213
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F9">
214
<summary>
215
F9 function key.
216
</summary>
217
</member>
218
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F10">
219
<summary>
220
F10 function key.
221
</summary>
222
</member>
223
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F11">
224
<summary>
225
F11 function key.
226
</summary>
227
</member>
228
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_F12">
229
<summary>
230
F12 function key.
231
</summary>
232
</member>
233
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_LEFT">
234
<summary>
235
Left directional key.
236
</summary>
237
</member>
238
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_UP">
239
<summary>
240
Up directional key.
241
</summary>
242
</member>
243
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_RIGHT">
244
<summary>
245
Right directional key.
246
</summary>
247
</member>
248
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_DOWN">
249
<summary>
250
Down directional key.
251
</summary>
252
</member>
253
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_PAGE_UP">
254
<summary>
255
Page Up directional key.
256
</summary>
257
</member>
258
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_PAGE_DOWN">
259
<summary>
260
Page Down directional key.
261
</summary>
262
</member>
263
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_HOME">
264
<summary>
265
Home directional key.
266
</summary>
267
</member>
268
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_END">
269
<summary>
270
End directional key.
271
</summary>
272
</member>
273
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_INSERT">
274
<summary>
275
Insert directional key.
276
</summary>
277
</member>
278
<member name="F:Tao.FreeGlut.Glut.GLUT_LEFT">
279
<summary>
280
Mouse pointer has left the window.
281
</summary>
282
</member>
283
<member name="F:Tao.FreeGlut.Glut.GLUT_ENTERED">
284
<summary>
285
Mouse pointer has entered the window.
286
</summary>
287
</member>
288
<member name="F:Tao.FreeGlut.Glut.GLUT_MENU_NOT_IN_USE">
289
<summary>
290
Pop-up menus are not in use by the user.
291
</summary>
292
</member>
293
<member name="F:Tao.FreeGlut.Glut.GLUT_MENU_IN_USE">
294
<summary>
295
Pop-up menus are in use by the user.
296
</summary>
297
</member>
298
<member name="F:Tao.FreeGlut.Glut.GLUT_NOT_VISIBLE">
299
<summary>
300
The window is not visible. No part of the window is visible. All further
301
rendering to the window is discarded until the window's visibility changes.
302
</summary>
303
</member>
304
<member name="F:Tao.FreeGlut.Glut.GLUT_VISIBLE">
305
<summary>
306
The window is visible. Does not distinguish a window being totally versus
307
partially visible.
308
</summary>
309
</member>
310
<member name="F:Tao.FreeGlut.Glut.GLUT_HIDDEN">
311
<summary>
312
The window is not shown or iconified.
313
</summary>
314
</member>
315
<member name="F:Tao.FreeGlut.Glut.GLUT_FULLY_RETAINED">
316
<summary>
317
No pixels belonging to the window are covered by other windows.
318
</summary>
319
</member>
320
<member name="F:Tao.FreeGlut.Glut.GLUT_PARTIALLY_RETAINED">
321
<summary>
322
Some but not all pixels belonging to the window are covered by other windows.
323
</summary>
324
</member>
325
<member name="F:Tao.FreeGlut.Glut.GLUT_FULLY_COVERED">
326
<summary>
327
The window is shown but no part of the window is visible.
328
</summary>
329
</member>
330
<member name="F:Tao.FreeGlut.Glut.GLUT_RED">
331
<summary>
332
Red color component.
333
</summary>
334
</member>
335
<member name="F:Tao.FreeGlut.Glut.GLUT_GREEN">
336
<summary>
337
Green color component.
338
</summary>
339
</member>
340
<member name="F:Tao.FreeGlut.Glut.GLUT_BLUE">
341
<summary>
342
Blue color component.
343
</summary>
344
</member>
345
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_X">
346
<summary>
347
X location in pixels (relative to the screen origin) of the current window.
348
</summary>
349
</member>
350
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_Y">
351
<summary>
352
Y location in pixels (relative to the screen origin) of the current window.
353
</summary>
354
</member>
355
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_WIDTH">
356
<summary>
357
Width in pixels of the current window.
358
</summary>
359
</member>
360
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_HEIGHT">
361
<summary>
362
Height in pixels of the current window.
363
</summary>
364
</member>
365
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_BUFFER_SIZE">
366
<summary>
367
Total number of bits for current window's color buffer. For an RGBA window,
368
this is the sum of <see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_RED_SIZE"/>,
369
<see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_GREEN_SIZE"/>, <see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_BLUE_SIZE"/>,
370
and <see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ALPHA_SIZE"/>. For color index windows, this is
371
the size of the color indexes.
372
</summary>
373
</member>
374
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_STENCIL_SIZE">
375
<summary>
376
Number of bits in the current window's stencil buffer.
377
</summary>
378
</member>
379
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_DEPTH_SIZE">
380
<summary>
381
Number of bits in the current window's depth buffer.
382
</summary>
383
</member>
384
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_RED_SIZE">
385
<summary>
386
Number of bits of red stored the current window's color buffer. Zero if the
387
window is color index.
388
</summary>
389
</member>
390
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_GREEN_SIZE">
391
<summary>
392
Number of bits of green stored the current window's color buffer. Zero if the
393
window is color index.
394
</summary>
395
</member>
396
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_BLUE_SIZE">
397
<summary>
398
Number of bits of blue stored the current window's color buffer. Zero if the
399
window is color index.
400
</summary>
401
</member>
402
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ALPHA_SIZE">
403
<summary>
404
Number of bits of alpha stored the current window's color buffer. Zero if the
405
window is color index.
406
</summary>
407
</member>
408
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ACCUM_RED_SIZE">
409
<summary>
410
Number of bits of red stored in the current window's accumulation buffer.
411
Zero if the window is color index.
412
</summary>
413
</member>
414
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ACCUM_GREEN_SIZE">
415
<summary>
416
Number of bits of green stored in the current window's accumulation buffer.
417
Zero if the window is color index.
418
</summary>
419
</member>
420
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ACCUM_BLUE_SIZE">
421
<summary>
422
Number of bits of blue stored in the current window's accumulation buffer.
423
Zero if the window is color index.
424
</summary>
425
</member>
426
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ACCUM_ALPHA_SIZE">
427
<summary>
428
Number of bits of alpha stored in the current window's accumulation buffer.
429
Zero if the window is color index.
430
</summary>
431
</member>
432
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_DOUBLEBUFFER">
433
<summary>
434
One if the current window is double buffered, zero otherwise.
435
</summary>
436
</member>
437
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_RGBA">
438
<summary>
439
One if the current window is RGBA mode, zero otherwise (i.e., color index).
440
</summary>
441
</member>
442
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_PARENT">
443
<summary>
444
The window number of the current window's parent; zero if the window is a
445
top-level window.
446
</summary>
447
</member>
448
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_NUM_CHILDREN">
449
<summary>
450
The number of subwindows the current window has (not counting children of
451
children).
452
</summary>
453
</member>
454
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_COLORMAP_SIZE">
455
<summary>
456
Size of current window's color index colormap; zero for RGBA color model
457
windows.
458
</summary>
459
</member>
460
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_NUM_SAMPLES">
461
<summary>
462
Number of samples for multisampling for the current window.
463
</summary>
464
</member>
465
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_STEREO">
466
<summary>
467
One if the current window is stereo, zero otherwise.
468
</summary>
469
</member>
470
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_CURSOR">
471
<summary>
472
Current cursor for the current window.
473
</summary>
474
</member>
475
<member name="F:Tao.FreeGlut.Glut.GLUT_SCREEN_WIDTH">
476
<summary>
477
Width of the screen in pixels. Zero indicates the width is unknown or not
478
available.
479
</summary>
480
</member>
481
<member name="F:Tao.FreeGlut.Glut.GLUT_SCREEN_HEIGHT">
482
<summary>
483
Height of the screen in pixels. Zero indicates the height is unknown or not
484
available.
485
</summary>
486
</member>
487
<member name="F:Tao.FreeGlut.Glut.GLUT_SCREEN_WIDTH_MM">
488
<summary>
489
Width of the screen in millimeters. Zero indicates the width is unknown or
490
not available.
491
</summary>
492
</member>
493
<member name="F:Tao.FreeGlut.Glut.GLUT_SCREEN_HEIGHT_MM">
494
<summary>
495
Height of the screen in millimeters. Zero indicates the height is unknown or
496
not available.
497
</summary>
498
</member>
499
<member name="F:Tao.FreeGlut.Glut.GLUT_MENU_NUM_ITEMS">
500
<summary>
501
Number of menu items in the current menu.
502
</summary>
503
</member>
504
<member name="F:Tao.FreeGlut.Glut.GLUT_DISPLAY_MODE_POSSIBLE">
505
<summary>
506
Whether the current display mode is supported or not.
507
</summary>
508
</member>
509
<member name="F:Tao.FreeGlut.Glut.GLUT_INIT_WINDOW_X">
510
<summary>
511
The X value of the initial window position.
512
</summary>
513
</member>
514
<member name="F:Tao.FreeGlut.Glut.GLUT_INIT_WINDOW_Y">
515
<summary>
516
The Y value of the initial window position.
517
</summary>
518
</member>
519
<member name="F:Tao.FreeGlut.Glut.GLUT_INIT_WINDOW_WIDTH">
520
<summary>
521
The width value of the initial window size.
522
</summary>
523
</member>
524
<member name="F:Tao.FreeGlut.Glut.GLUT_INIT_WINDOW_HEIGHT">
525
<summary>
526
The height value of the initial window size.
527
</summary>
528
</member>
529
<member name="F:Tao.FreeGlut.Glut.GLUT_INIT_DISPLAY_MODE">
530
<summary>
531
The initial display mode bit mask.
532
</summary>
533
</member>
534
<member name="F:Tao.FreeGlut.Glut.GLUT_ELAPSED_TIME">
535
<summary>
536
Number of milliseconds since <see cref="M:Tao.FreeGlut.Glut.glutInit"/> called (or first call to
537
<c>glutGet(GLUT_ELAPSED_TIME)</c>).
538
</summary>
539
</member>
540
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_FORMAT_ID">
541
<summary>
542
The window system dependent format ID for the current layer of the current
543
window. On X11 GLUT implementations, this is the X visual ID. On Win32 GLUT
544
implementations, this is the Win32 Pixel Format Descriptor number. This value
545
is returned for debugging, benchmarking, and testing ease.
546
</summary>
547
</member>
548
<member name="F:Tao.FreeGlut.Glut.GLUT_INIT_STATE">
549
<summary>
550
Unknown.
551
</summary>
552
</member>
553
<member name="F:Tao.FreeGlut.Glut.GLUT_HAS_KEYBOARD">
554
<summary>
555
Non-zero if a keyboard is available; zero if not available. For most GLUT
556
implementations, a keyboard can be assumed.
557
</summary>
558
</member>
559
<member name="F:Tao.FreeGlut.Glut.GLUT_HAS_MOUSE">
560
<summary>
561
Non-zero if a mouse is available; zero if not available. For most GLUT
562
implementations, a keyboard can be assumed.
563
</summary>
564
</member>
565
<member name="F:Tao.FreeGlut.Glut.GLUT_HAS_SPACEBALL">
566
<summary>
567
Non-zero if a Spaceball is available; zero if not available.
568
</summary>
569
</member>
570
<member name="F:Tao.FreeGlut.Glut.GLUT_HAS_DIAL_AND_BUTTON_BOX">
571
<summary>
572
Non-zero if a dial and button box is available; zero if not available.
573
</summary>
574
</member>
575
<member name="F:Tao.FreeGlut.Glut.GLUT_HAS_TABLET">
576
<summary>
577
Non-zero if a tablet is available; zero if not available.
578
</summary>
579
</member>
580
<member name="F:Tao.FreeGlut.Glut.GLUT_NUM_MOUSE_BUTTONS">
581
<summary>
582
Number of buttons supported by the mouse. If no mouse is supported, zero is
583
returned.
584
</summary>
585
</member>
586
<member name="F:Tao.FreeGlut.Glut.GLUT_NUM_SPACEBALL_BUTTONS">
587
<summary>
588
Number of buttons supported by the Spaceball. If no Spaceball is
589
supported, zero is returned.
590
</summary>
591
</member>
592
<member name="F:Tao.FreeGlut.Glut.GLUT_NUM_BUTTON_BOX_BUTTONS">
593
<summary>
594
Number of buttons supported by the dial and button box device. If no dials
595
and button box device is supported, zero is returned.
596
</summary>
597
</member>
598
<member name="F:Tao.FreeGlut.Glut.GLUT_NUM_DIALS">
599
<summary>
600
Number of dials supported by the dial and button box device. If no dials and
601
button box device is supported, zero is returned.
602
</summary>
603
</member>
604
<member name="F:Tao.FreeGlut.Glut.GLUT_NUM_TABLET_BUTTONS">
605
<summary>
606
Number of buttons supported by the tablet. If no tablet is supported, zero is
607
returned.
608
</summary>
609
</member>
610
<member name="F:Tao.FreeGlut.Glut.GLUT_DEVICE_IGNORE_KEY_REPEAT">
611
<summary>
612
Returns true if the current window's auto repeated keys are ignored. This
613
state is controlled by <see cref="M:Tao.FreeGlut.Glut.glutIgnoreKeyRepeat(System.Int32)"/>.
614
</summary>
615
</member>
616
<member name="F:Tao.FreeGlut.Glut.GLUT_DEVICE_KEY_REPEAT">
617
<summary>
618
The window system's global key repeat state. Returns either
619
<see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_REPEAT_OFF"/>, <see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_REPEAT_ON"/>, or
620
<see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_REPEAT_DEFAULT"/>. This will not necessarily return the
621
value last passed to <see cref="M:Tao.FreeGlut.Glut.glutSetKeyRepeat(System.Int32)"/>.
622
</summary>
623
</member>
624
<member name="F:Tao.FreeGlut.Glut.GLUT_HAS_JOYSTICK">
625
<summary>
626
Non-zero if a joystick is available; zero if not available.
627
</summary>
628
</member>
629
<member name="F:Tao.FreeGlut.Glut.GLUT_OWNS_JOYSTICK">
630
<summary>
631
Unknown. Unable to locate definitive documentation on this constant.
632
</summary>
633
<remarks>
634
Unofficially, this doesn't appear to be implemented.
635
</remarks>
636
</member>
637
<member name="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_BUTTONS">
638
<summary>
639
Number of buttons supported by the joystick. If no joystick is supported,
640
zero is returned.
641
</summary>
642
</member>
643
<member name="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_AXES">
644
<summary>
645
Number of axes supported by the joystick. If no joystick is supposrted, zero
646
is returned.
647
</summary>
648
</member>
649
<member name="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_POLL_RATE">
650
<summary>
651
Returns the current window's joystick poll rate as set by
652
<see cref="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)"/>. If no joystick is supported, the poll rate
653
will always be zero. The joystick poll rate also returns zero if the poll
654
rate last specified to <see cref="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)"/> is negative or a NULL
655
callback was registered.
656
</summary>
657
</member>
658
<member name="F:Tao.FreeGlut.Glut.GLUT_OVERLAY_POSSIBLE">
659
<summary>
660
Whether an overlay could be established for the current window given the
661
current initial display mode. If false, <see cref="M:Tao.FreeGlut.Glut.glutEstablishOverlay"/>
662
will fail with a fatal error if called.
663
</summary>
664
</member>
665
<member name="F:Tao.FreeGlut.Glut.GLUT_LAYER_IN_USE">
666
<summary>
667
Either <see cref="F:Tao.FreeGlut.Glut.GLUT_NORMAL"/> or <see cref="F:Tao.FreeGlut.Glut.GLUT_OVERLAY"/> depending on
668
whether the normal plane or overlay is the layer in use.
669
</summary>
670
</member>
671
<member name="F:Tao.FreeGlut.Glut.GLUT_HAS_OVERLAY">
672
<summary>
673
If the current window has an overlay established.
674
</summary>
675
</member>
676
<member name="F:Tao.FreeGlut.Glut.GLUT_TRANSPARENT_INDEX">
677
<summary>
678
The transparent color index of the overlay of the current window; negative
679
one is returned if no overlay is in use.
680
</summary>
681
</member>
682
<member name="F:Tao.FreeGlut.Glut.GLUT_NORMAL_DAMAGED">
683
<summary>
684
True if the normal plane of the current window has damaged (by window system
685
activity) since the last display callback was triggered. Calling
686
<see cref="M:Tao.FreeGlut.Glut.glutPostRedisplay"/> will not set this true.
687
</summary>
688
</member>
689
<member name="F:Tao.FreeGlut.Glut.GLUT_OVERLAY_DAMAGED">
690
<summary>
691
True if the overlay plane of the current window has damaged (by window system
692
activity) since the last display callback was triggered. Calling
693
<see cref="M:Tao.FreeGlut.Glut.glutPostRedisplay"/> or <see cref="M:Tao.FreeGlut.Glut.glutPostOverlayRedisplay"/>
694
will not set this true. Negative one is returned if no overlay is in use.
695
</summary>
696
</member>
697
<member name="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_POSSIBLE">
698
<summary>
699
Non-zero if video resizing is supported by the underlying system; zero if not
700
supported. If this is zero, the other video resize GLUT calls do nothing when
701
called.
702
</summary>
703
</member>
704
<member name="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_IN_USE">
705
<summary>
706
Unknown. Unable to locate definitive documentation on this constant.
707
</summary>
708
</member>
709
<member name="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_X_DELTA">
710
<summary>
711
Unknown. Unable to locate definitive documentation on this constant.
712
</summary>
713
</member>
714
<member name="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_Y_DELTA">
715
<summary>
716
Unknown. Unable to locate definitive documentation on this constant.
717
</summary>
718
</member>
719
<member name="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_WIDTH_DELTA">
720
<summary>
721
Unknown. Unable to locate definitive documentation on this constant.
722
</summary>
723
</member>
724
<member name="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_HEIGHT_DELTA">
725
<summary>
726
Unknown. Unable to locate definitive documentation on this constant.
727
</summary>
728
</member>
729
<member name="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_X">
730
<summary>
731
Unknown. Unable to locate definitive documentation on this constant.
732
</summary>
733
</member>
734
<member name="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_Y">
735
<summary>
736
Unknown. Unable to locate definitive documentation on this constant.
737
</summary>
738
</member>
739
<member name="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_WIDTH">
740
<summary>
741
Unknown. Unable to locate definitive documentation on this constant.
742
</summary>
743
</member>
744
<member name="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_HEIGHT">
745
<summary>
746
Unknown. Unable to locate definitive documentation on this constant.
747
</summary>
748
</member>
749
<member name="F:Tao.FreeGlut.Glut.GLUT_NORMAL">
750
<summary>
751
The normal plane.
752
</summary>
753
</member>
754
<member name="F:Tao.FreeGlut.Glut.GLUT_OVERLAY">
755
<summary>
756
The overlay plane.
757
</summary>
758
</member>
759
<member name="F:Tao.FreeGlut.Glut.GLUT_ACTIVE_SHIFT">
760
<summary>
761
Set if the Shift modifier or Caps Lock is active.
762
</summary>
763
</member>
764
<member name="F:Tao.FreeGlut.Glut.GLUT_ACTIVE_CTRL">
765
<summary>
766
Set if the Ctrl modifier is active.
767
</summary>
768
</member>
769
<member name="F:Tao.FreeGlut.Glut.GLUT_ACTIVE_ALT">
770
<summary>
771
Set if the Alt modifier is active.
772
</summary>
773
</member>
774
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_RIGHT_ARROW">
775
<summary>
776
Arrow pointing up and to the right.
777
</summary>
778
</member>
779
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_LEFT_ARROW">
780
<summary>
781
Arrow pointing up and to the left.
782
</summary>
783
</member>
784
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_INFO">
785
<summary>
786
Pointing hand.
787
</summary>
788
</member>
789
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_DESTROY">
790
<summary>
791
Skull and cross bones.
792
</summary>
793
</member>
794
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_HELP">
795
<summary>
796
Question mark.
797
</summary>
798
</member>
799
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_CYCLE">
800
<summary>
801
Arrows rotating in a circle.
802
</summary>
803
</member>
804
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_SPRAY">
805
<summary>
806
Spray can.
807
</summary>
808
</member>
809
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_WAIT">
810
<summary>
811
Wrist watch.
812
</summary>
813
</member>
814
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_TEXT">
815
<summary>
816
Insertion point cursor for text.
817
</summary>
818
</member>
819
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_CROSSHAIR">
820
<summary>
821
Simple cross-hair.
822
</summary>
823
</member>
824
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_UP_DOWN">
825
<summary>
826
Bi-directional pointing up and down.
827
</summary>
828
</member>
829
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_LEFT_RIGHT">
830
<summary>
831
Bi-directional pointing left and right.
832
</summary>
833
</member>
834
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_TOP_SIDE">
835
<summary>
836
Arrow pointing to top side.
837
</summary>
838
</member>
839
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_BOTTOM_SIDE">
840
<summary>
841
Arrow pointing to bottom side.
842
</summary>
843
</member>
844
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_LEFT_SIDE">
845
<summary>
846
Arrow pointing to left side.
847
</summary>
848
</member>
849
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_RIGHT_SIDE">
850
<summary>
851
Arrow pointing to right side.
852
</summary>
853
</member>
854
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_TOP_LEFT_CORNER">
855
<summary>
856
Arrow pointing to top-left corner.
857
</summary>
858
</member>
859
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_TOP_RIGHT_CORNER">
860
<summary>
861
Arrow pointing to top-right corner.
862
</summary>
863
</member>
864
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_BOTTOM_RIGHT_CORNER">
865
<summary>
866
Arrow pointing to bottom-right corner.
867
</summary>
868
</member>
869
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_BOTTOM_LEFT_CORNER">
870
<summary>
871
Arrow pointing to bottom-left corner.
872
</summary>
873
</member>
874
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_INHERIT">
875
<summary>
876
Use parent's cursor.
877
</summary>
878
</member>
879
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_NONE">
880
<summary>
881
Invisible cursor.
882
</summary>
883
</member>
884
<member name="F:Tao.FreeGlut.Glut.GLUT_CURSOR_FULL_CROSSHAIR">
885
<summary>
886
Full-screen cross-hair cursor (if possible, otherwise
887
<see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_CROSSHAIR"/>.
888
</summary>
889
</member>
890
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_REPEAT_OFF">
891
<summary>
892
Disable key repeat for the window system on a global basis.
893
</summary>
894
</member>
895
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_REPEAT_ON">
896
<summary>
897
Enable key repeat for the window system on a global basis.
898
</summary>
899
</member>
900
<member name="F:Tao.FreeGlut.Glut.GLUT_KEY_REPEAT_DEFAULT">
901
<summary>
902
Reset the key repeat mode for the window system to its default state.
903
</summary>
904
</member>
905
<member name="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_BUTTON_A">
906
<summary>
907
Unknown. Unable to locate definitive documentation on this constant.
908
</summary>
909
</member>
910
<member name="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_BUTTON_B">
911
<summary>
912
Unknown. Unable to locate definitive documentation on this constant.
913
</summary>
914
</member>
915
<member name="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_BUTTON_C">
916
<summary>
917
Unknown. Unable to locate definitive documentation on this constant.
918
</summary>
919
</member>
920
<member name="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_BUTTON_D">
921
<summary>
922
Unknown. Unable to locate definitive documentation on this constant.
923
</summary>
924
</member>
925
<member name="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_ACTIVE">
926
<summary>
927
Non-zero if GLUT's game mode is active; zero if not active. Game mode is not
928
active initially. Game mode becomes active when
929
<see cref="M:Tao.FreeGlut.Glut.glutEnterGameMode"/> is called. Game mode becomes inactive when
930
<see cref="M:Tao.FreeGlut.Glut.glutLeaveGameMode"/> is called.
931
</summary>
932
</member>
933
<member name="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_POSSIBLE">
934
<summary>
935
Non-zero if the game mode string last specified to
936
<see cref="M:Tao.FreeGlut.Glut.glutGameModeString(System.String)"/> is a possible game mode configuration; zero
937
otherwise. Being "possible" does not guarantee that if game mode is entered
938
with <see cref="M:Tao.FreeGlut.Glut.glutEnterGameMode"/> that the display settings will actually
939
changed. <see cref="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_DISPLAY_CHANGED"/> should be called once
940
game mode is entered to determine if the display mode is actually changed.
941
</summary>
942
</member>
943
<member name="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_WIDTH">
944
<summary>
945
Width in pixels of the screen when game mode is activated.
946
</summary>
947
</member>
948
<member name="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_HEIGHT">
949
<summary>
950
Height in pixels of the screen when game mode is activated.
951
</summary>
952
</member>
953
<member name="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_PIXEL_DEPTH">
954
<summary>
955
Pixel depth of the screen when game mode is activiated.
956
</summary>
957
</member>
958
<member name="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_REFRESH_RATE">
959
<summary>
960
Screen refresh rate in cyles per second (hertz) when game mode is activated.
961
Zero is returned if the refresh rate is unknown or cannot be queried.
962
</summary>
963
</member>
964
<member name="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_DISPLAY_CHANGED">
965
<summary>
966
Non-zero if entering game mode actually changed the display settings. If the
967
game mode string is not possible or the display mode could not be changed for
968
any other reason, zero is returned.
969
</summary>
970
</member>
971
<member name="F:Tao.FreeGlut.Glut.GLUT_ACTION_EXIT">
972
<summary>
973
Close window on window close button click.
974
</summary>
975
</member>
976
<member name="F:Tao.FreeGlut.Glut.GLUT_ACTION_GLUTMAINLOOP_RETURNS">
977
<summary>
978
Return from main loop on window close button click.
979
</summary>
980
</member>
981
<member name="F:Tao.FreeGlut.Glut.GLUT_ACTION_CONTINUE_EXECUTION">
982
<summary>
983
Continue execution on window close button click.
984
</summary>
985
</member>
986
<member name="F:Tao.FreeGlut.Glut.GLUT_CREATE_NEW_CONTEXT">
987
<summary>
988
Create a new context when user opens a new window.
989
</summary>
990
</member>
991
<member name="F:Tao.FreeGlut.Glut.GLUT_USE_CURRENT_CONTEXT">
992
<summary>
993
Use current context when user opens a new window.
994
</summary>
995
</member>
996
<member name="F:Tao.FreeGlut.Glut.GLUT_FORCE_INDIRECT_CONTEXT">
997
<summary>
998
Direct/Indirect rendering context options (has meaning only in Unix/X11)
999
</summary>
1000
</member>
1001
<member name="F:Tao.FreeGlut.Glut.GLUT_ALLOW_DIRECT_CONTEXT">
1002
<summary>
1003
Direct/Indirect rendering context options (has meaning only in Unix/X11)
1004
</summary>
1005
</member>
1006
<member name="F:Tao.FreeGlut.Glut.GLUT_TRY_DIRECT_CONTEXT">
1007
<summary>
1008
Direct/Indirect rendering context options (has meaning only in Unix/X11)
1009
</summary>
1010
</member>
1011
<member name="F:Tao.FreeGlut.Glut.GLUT_FORCE_DIRECT_CONTEXT">
1012
<summary>
1013
Direct/Indirect rendering context options (has meaning only in Unix/X11)
1014
</summary>
1015
</member>
1016
<member name="F:Tao.FreeGlut.Glut.GLUT_ACTION_ON_WINDOW_CLOSE">
1017
<summary>
1018
Gets current action for window-close.
1019
</summary>
1020
</member>
1021
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_BORDER_WIDTH">
1022
<summary>
1023
Gets the window border width.
1024
</summary>
1025
</member>
1026
<member name="F:Tao.FreeGlut.Glut.GLUT_WINDOW_HEADER_HEIGHT">
1027
<summary>
1028
Gets window header height.
1029
</summary>
1030
</member>
1031
<member name="F:Tao.FreeGlut.Glut.GLUT_VERSION">
1032
<summary>
1033
Gets GLUT version.
1034
</summary>
1035
</member>
1036
<member name="F:Tao.FreeGlut.Glut.GLUT_RENDERING_CONTEXT">
1037
<summary>
1038
Gets GLUT's rendering context.
1039
</summary>
1040
</member>
1041
<member name="F:Tao.FreeGlut.Glut.GLUT_DIRECT_RENDERING">
1042
<summary>
1043
1044
</summary>
1045
</member>
1046
<member name="F:Tao.FreeGlut.Glut.GLUT_AUX1">
1047
<summary>
1048
1049
</summary>
1050
</member>
1051
<member name="F:Tao.FreeGlut.Glut.GLUT_AUX2">
1052
<summary>
1053
1054
</summary>
1055
</member>
1056
<member name="F:Tao.FreeGlut.Glut.GLUT_AUX3">
1057
<summary>
1058
1059
</summary>
1060
</member>
1061
<member name="F:Tao.FreeGlut.Glut.GLUT_AUX4">
1062
<summary>
1063
1064
</summary>
1065
</member>
1066
<member name="F:Tao.FreeGlut.Glut.GLUT_STROKE_ROMAN">
1067
<summary>
1068
A proportionally spaced Roman Simplex font for ASCII characters 32 through
1069
127. The maximum top character in the font is 119.05 units; the bottom
1070
descends 33.33 units.
1071
</summary>
1072
</member>
1073
<member name="F:Tao.FreeGlut.Glut.GLUT_STROKE_MONO_ROMAN">
1074
<summary>
1075
A mono-spaced spaced Roman Simplex font (same characters as
1076
<see cref="F:Tao.FreeGlut.Glut.GLUT_STROKE_ROMAN"/>) for ASCII characters 32 through 127. The
1077
maximum top character in the font is 119.05 units; the bottom descends 33.33
1078
units. Each character is 104.76 units wide.
1079
</summary>
1080
</member>
1081
<member name="F:Tao.FreeGlut.Glut.GLUT_BITMAP_9_BY_15">
1082
<summary>
1083
A fixed width font with every character fitting in an 9 by 15 pixel rectangle.
1084
</summary>
1085
</member>
1086
<member name="F:Tao.FreeGlut.Glut.GLUT_BITMAP_8_BY_13">
1087
<summary>
1088
A fixed width font with every character fitting in an 8 by 13 pixel rectangle.
1089
</summary>
1090
</member>
1091
<member name="F:Tao.FreeGlut.Glut.GLUT_BITMAP_TIMES_ROMAN_10">
1092
<summary>
1093
A 10-point proportional spaced Times Roman font.
1094
</summary>
1095
</member>
1096
<member name="F:Tao.FreeGlut.Glut.GLUT_BITMAP_TIMES_ROMAN_24">
1097
<summary>
1098
A 24-point proportional spaced Times Roman font.
1099
</summary>
1100
</member>
1101
<member name="F:Tao.FreeGlut.Glut.GLUT_BITMAP_HELVETICA_10">
1102
<summary>
1103
A 10-point proportional spaced Helvetica font.
1104
</summary>
1105
</member>
1106
<member name="F:Tao.FreeGlut.Glut.GLUT_BITMAP_HELVETICA_12">
1107
<summary>
1108
A 12-point proportional spaced Helvetica font.
1109
</summary>
1110
</member>
1111
<member name="F:Tao.FreeGlut.Glut.GLUT_BITMAP_HELVETICA_18">
1112
<summary>
1113
A 18-point proportional spaced Helvetica font.
1114
</summary>
1115
</member>
1116
<member name="M:Tao.FreeGlut.Glut.#cctor">
1117
<summary>
1118
Static Glut constructor.
1119
</summary>
1120
<remarks>
1121
Sets up GLUT font addresses.
1122
</remarks>
1123
</member>
1124
<member name="M:Tao.FreeGlut.Glut.__glutCreateMenu(Tao.FreeGlut.Glut.CreateMenuCallback)">
1125
<summary>
1126
Called from <see cref="M:Tao.FreeGlut.Glut.glutCreateMenu(Tao.FreeGlut.Glut.CreateMenuCallback)"/>.
1127
</summary>
1128
<remarks>
1129
<b>This method is not CLS-compliant due to naming conventions.</b>
1130
</remarks>
1131
</member>
1132
<member name="M:Tao.FreeGlut.Glut.__glutDisplayFunc(Tao.FreeGlut.Glut.DisplayCallback)">
1133
<summary>
1134
Called from <see cref="M:Tao.FreeGlut.Glut.glutDisplayFunc(Tao.FreeGlut.Glut.DisplayCallback)"/>.
1135
</summary>
1136
<remarks>
1137
<b>This method is not CLS-compliant due to naming conventions.</b>
1138
</remarks>
1139
</member>
1140
<member name="M:Tao.FreeGlut.Glut.__glutReshapeFunc(Tao.FreeGlut.Glut.ReshapeCallback)">
1141
<summary>
1142
Called from <see cref="M:Tao.FreeGlut.Glut.glutReshapeFunc(Tao.FreeGlut.Glut.ReshapeCallback)"/>.
1143
</summary>
1144
<remarks>
1145
<b>This method is not CLS-compliant due to naming conventions.</b>
1146
</remarks>
1147
</member>
1148
<member name="M:Tao.FreeGlut.Glut.__glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)">
1149
<summary>
1150
Called from <see cref="M:Tao.FreeGlut.Glut.glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)"/>.
1151
</summary>
1152
<remarks>
1153
<b>This method is not CLS-compliant due to naming conventions.</b>
1154
</remarks>
1155
</member>
1156
<member name="M:Tao.FreeGlut.Glut.__glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)">
1157
<summary>
1158
Called from <see cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>.
1159
</summary>
1160
<remarks>
1161
<b>This method is not CLS-compliant due to naming conventions.</b>
1162
</remarks>
1163
</member>
1164
<member name="M:Tao.FreeGlut.Glut.__glutMotionFunc(Tao.FreeGlut.Glut.MotionCallback)">
1165
<summary>
1166
Called from <see cref="M:Tao.FreeGlut.Glut.glutMotionFunc(Tao.FreeGlut.Glut.MotionCallback)"/>.
1167
</summary>
1168
<remarks>
1169
<b>This method is not CLS-compliant due to naming conventions.</b>
1170
</remarks>
1171
</member>
1172
<member name="M:Tao.FreeGlut.Glut.__glutPassiveMotionFunc(Tao.FreeGlut.Glut.PassiveMotionCallback)">
1173
<summary>
1174
Called from <see cref="M:Tao.FreeGlut.Glut.glutPassiveMotionFunc(Tao.FreeGlut.Glut.PassiveMotionCallback)"/>.
1175
</summary>
1176
<remarks>
1177
<b>This method is not CLS-compliant due to naming conventions.</b>
1178
</remarks>
1179
</member>
1180
<member name="M:Tao.FreeGlut.Glut.__glutEntryFunc(Tao.FreeGlut.Glut.EntryCallback)">
1181
<summary>
1182
Called from <see cref="M:Tao.FreeGlut.Glut.glutEntryFunc(Tao.FreeGlut.Glut.EntryCallback)"/>.
1183
</summary>
1184
<remarks>
1185
<b>This method is not CLS-compliant due to naming conventions.</b>
1186
</remarks>
1187
</member>
1188
<member name="M:Tao.FreeGlut.Glut.__glutVisibilityFunc(Tao.FreeGlut.Glut.VisibilityCallback)">
1189
<summary>
1190
Called from <see cref="M:Tao.FreeGlut.Glut.glutVisibilityFunc(Tao.FreeGlut.Glut.VisibilityCallback)"/>.
1191
</summary>
1192
<remarks>
1193
<b>This method is not CLS-compliant due to naming conventions.</b>
1194
</remarks>
1195
</member>
1196
<member name="M:Tao.FreeGlut.Glut.__glutIdleFunc(Tao.FreeGlut.Glut.IdleCallback)">
1197
<summary>
1198
Called from <see cref="M:Tao.FreeGlut.Glut.glutIdleFunc(Tao.FreeGlut.Glut.IdleCallback)"/>.
1199
</summary>
1200
<remarks>
1201
<b>This method is not CLS-compliant due to naming conventions.</b>
1202
</remarks>
1203
</member>
1204
<member name="M:Tao.FreeGlut.Glut.__glutTimerFunc(System.Int32,Tao.FreeGlut.Glut.TimerCallback,System.Int32)">
1205
<summary>
1206
Called from <see cref="M:Tao.FreeGlut.Glut.glutTimerFunc(System.Int32,Tao.FreeGlut.Glut.TimerCallback,System.Int32)"/>.
1207
</summary>
1208
<remarks>
1209
<b>This method is not CLS-compliant due to naming conventions.</b>
1210
</remarks>
1211
</member>
1212
<member name="M:Tao.FreeGlut.Glut.__glutMenuStateFunc(Tao.FreeGlut.Glut.MenuStateCallback)">
1213
<summary>
1214
Called from <see cref="M:Tao.FreeGlut.Glut.glutMenuStateFunc(Tao.FreeGlut.Glut.MenuStateCallback)"/>.
1215
</summary>
1216
<remarks>
1217
<b>This method is not CLS-compliant due to naming conventions.</b>
1218
</remarks>
1219
</member>
1220
<member name="M:Tao.FreeGlut.Glut.__glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)">
1221
<summary>
1222
Called from <see cref="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)"/>.
1223
</summary>
1224
<remarks>
1225
<b>This method is not CLS-compliant due to naming conventions.</b>
1226
</remarks>
1227
</member>
1228
<member name="M:Tao.FreeGlut.Glut.__glutSpaceballMotionFunc(Tao.FreeGlut.Glut.SpaceballMotionCallback)">
1229
<summary>
1230
Called from <see cref="M:Tao.FreeGlut.Glut.glutSpaceballMotionFunc(Tao.FreeGlut.Glut.SpaceballMotionCallback)"/>.
1231
</summary>
1232
<remarks>
1233
<b>This method is not CLS-compliant due to naming conventions.</b>
1234
</remarks>
1235
</member>
1236
<member name="M:Tao.FreeGlut.Glut.__glutSpaceballRotateFunc(Tao.FreeGlut.Glut.SpaceballRotateCallback)">
1237
<summary>
1238
Called from <see cref="M:Tao.FreeGlut.Glut.glutSpaceballRotateFunc(Tao.FreeGlut.Glut.SpaceballRotateCallback)"/>.
1239
</summary>
1240
<remarks>
1241
<b>This method is not CLS-compliant due to naming conventions.</b>
1242
</remarks>
1243
</member>
1244
<member name="M:Tao.FreeGlut.Glut.__glutSpaceballButtonFunc(Tao.FreeGlut.Glut.SpaceballButtonCallback)">
1245
<summary>
1246
Called from <see cref="M:Tao.FreeGlut.Glut.glutSpaceballButtonFunc(Tao.FreeGlut.Glut.SpaceballButtonCallback)"/>.
1247
</summary>
1248
<remarks>
1249
<b>This method is not CLS-compliant due to naming conventions.</b>
1250
</remarks>
1251
</member>
1252
<member name="M:Tao.FreeGlut.Glut.__glutButtonBoxFunc(Tao.FreeGlut.Glut.ButtonBoxCallback)">
1253
<summary>
1254
Called from <see cref="M:Tao.FreeGlut.Glut.glutButtonBoxFunc(Tao.FreeGlut.Glut.ButtonBoxCallback)"/>.
1255
</summary>
1256
<remarks>
1257
<b>This method is not CLS-compliant due to naming conventions.</b>
1258
</remarks>
1259
</member>
1260
<member name="M:Tao.FreeGlut.Glut.__glutDialsFunc(Tao.FreeGlut.Glut.DialsCallback)">
1261
<summary>
1262
Called from <see cref="M:Tao.FreeGlut.Glut.glutDialsFunc(Tao.FreeGlut.Glut.DialsCallback)"/>.
1263
</summary>
1264
<remarks>
1265
<b>This method is not CLS-compliant due to naming conventions.</b>
1266
</remarks>
1267
</member>
1268
<member name="M:Tao.FreeGlut.Glut.__glutTabletMotionFunc(Tao.FreeGlut.Glut.TabletMotionCallback)">
1269
<summary>
1270
Called from <see cref="M:Tao.FreeGlut.Glut.glutTabletMotionFunc(Tao.FreeGlut.Glut.TabletMotionCallback)"/>.
1271
</summary>
1272
<remarks>
1273
<b>This method is not CLS-compliant due to naming conventions.</b>
1274
</remarks>
1275
</member>
1276
<member name="M:Tao.FreeGlut.Glut.__glutTabletButtonFunc(Tao.FreeGlut.Glut.TabletButtonCallback)">
1277
<summary>
1278
Called from <see cref="M:Tao.FreeGlut.Glut.glutTabletButtonFunc(Tao.FreeGlut.Glut.TabletButtonCallback)"/>.
1279
</summary>
1280
<remarks>
1281
<b>This method is not CLS-compliant due to naming conventions.</b>
1282
</remarks>
1283
</member>
1284
<member name="M:Tao.FreeGlut.Glut.__glutMenuStatusFunc(Tao.FreeGlut.Glut.MenuStatusCallback)">
1285
<summary>
1286
Called from <see cref="M:Tao.FreeGlut.Glut.glutMenuStatusFunc(Tao.FreeGlut.Glut.MenuStatusCallback)"/>.
1287
</summary>
1288
<remarks>
1289
<b>This method is not CLS-compliant due to naming conventions.</b>
1290
</remarks>
1291
</member>
1292
<member name="M:Tao.FreeGlut.Glut.__glutOverlayDisplayFunc(Tao.FreeGlut.Glut.OverlayDisplayCallback)">
1293
<summary>
1294
Called from <see cref="M:Tao.FreeGlut.Glut.glutOverlayDisplayFunc(Tao.FreeGlut.Glut.OverlayDisplayCallback)"/>.
1295
</summary>
1296
<remarks>
1297
<b>This method is not CLS-compliant due to naming conventions.</b>
1298
</remarks>
1299
</member>
1300
<member name="M:Tao.FreeGlut.Glut.__glutWindowStatusFunc(Tao.FreeGlut.Glut.WindowStatusCallback)">
1301
<summary>
1302
Called from <see cref="M:Tao.FreeGlut.Glut.glutWindowStatusFunc(Tao.FreeGlut.Glut.WindowStatusCallback)"/>.
1303
</summary>
1304
<remarks>
1305
<b>This method is not CLS-compliant due to naming conventions.</b>
1306
</remarks>
1307
</member>
1308
<member name="M:Tao.FreeGlut.Glut.__glutKeyboardUpFunc(Tao.FreeGlut.Glut.KeyboardUpCallback)">
1309
<summary>
1310
Called from <see cref="M:Tao.FreeGlut.Glut.glutKeyboardUpFunc(Tao.FreeGlut.Glut.KeyboardUpCallback)"/>.
1311
</summary>
1312
<remarks>
1313
<b>This method is not CLS-compliant due to naming conventions.</b>
1314
</remarks>
1315
</member>
1316
<member name="M:Tao.FreeGlut.Glut.__glutSpecialUpFunc(Tao.FreeGlut.Glut.SpecialUpCallback)">
1317
<summary>
1318
Called from <see cref="M:Tao.FreeGlut.Glut.glutSpecialUpFunc(Tao.FreeGlut.Glut.SpecialUpCallback)"/>.
1319
</summary>
1320
<remarks>
1321
<b>This method is not CLS-compliant due to naming conventions.</b>
1322
</remarks>
1323
</member>
1324
<member name="M:Tao.FreeGlut.Glut.__glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)">
1325
<summary>
1326
Called from <see cref="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)"/>.
1327
</summary>
1328
<remarks>
1329
<b>This method is not CLS-compliant due to naming conventions.</b>
1330
</remarks>
1331
</member>
1332
<member name="M:Tao.FreeGlut.Glut.__glutMouseWheelFunc(Tao.FreeGlut.Glut.MouseWheelCallback)">
1333
<summary>
1334
Called from <see cref="M:Tao.FreeGlut.Glut.glutMouseWheelFunc(Tao.FreeGlut.Glut.MouseWheelCallback)"/>.
1335
</summary>
1336
<remarks>
1337
<b>This method is not CLS-compliant due to naming conventions and it's called
1338
from a non-standard method!</b>
1339
</remarks>
1340
</member>
1341
<member name="M:Tao.FreeGlut.Glut.__glutCloseFunc(Tao.FreeGlut.Glut.CloseCallback)">
1342
<summary>
1343
Called from <see cref="M:Tao.FreeGlut.Glut.glutCloseFunc(Tao.FreeGlut.Glut.CloseCallback)"/>.
1344
</summary>
1345
<remarks>
1346
<b>This method is not CLS-compliant due to naming conventions and it's called
1347
from a non-standard method!</b>
1348
</remarks>
1349
</member>
1350
<member name="M:Tao.FreeGlut.Glut.__glutWMCloseFunc(Tao.FreeGlut.Glut.WindowCloseCallback)">
1351
<summary>
1352
Called from <see cref="M:Tao.FreeGlut.Glut.glutWMCloseFunc(Tao.FreeGlut.Glut.WindowCloseCallback)"/>.
1353
</summary>
1354
<remarks>
1355
<b>This method is not CLS-compliant due to naming conventions and it's called
1356
from a non-standard method!</b>
1357
</remarks>
1358
</member>
1359
<member name="M:Tao.FreeGlut.Glut.__glutMenuDestroyFunc(Tao.FreeGlut.Glut.MenuDestroyCallback)">
1360
<summary>
1361
Called from <see cref="M:Tao.FreeGlut.Glut.glutMenuDestroyFunc(Tao.FreeGlut.Glut.MenuDestroyCallback)"/>.
1362
</summary>
1363
<remarks>
1364
<b>This method is not CLS-compliant due to naming conventions and it's called
1365
from a non-standard method!</b>
1366
</remarks>
1367
</member>
1368
<member name="M:Tao.FreeGlut.Glut.glutInit">
1369
<summary>
1370
Initializes the GLUT library.
1371
</summary>
1372
<remarks>
1373
<para>
1374
This is a non-standard version of <b>glutInit</b> that passes the appropriate
1375
commandline arguments automatically.
1376
</para>
1377
<para>
1378
<b>glutInit</b> will initialize the GLUT library and negotiate a session with
1379
the window system. During this process, <b>glutInit</b> may cause the
1380
termination of the GLUT program with an error message to the user if GLUT
1381
cannot be properly initialized. Examples of this situation include the
1382
failure to connect to the window system, the lack of window system support for
1383
OpenGL, and invalid command line options.
1384
</para>
1385
<para>
1386
<b>glutInit</b> also processes command line options, but the specific options
1387
parsed are window system dependent.
1388
</para>
1389
<para>
1390
<b>X IMPLEMENTATION NOTES</b>
1391
</para>
1392
<para>
1393
The X Window System specific options parsed by <b>glutInit</b> are as follows:
1394
</para>
1395
<para>
1396
<list type="table">
1397
<listheader>
1398
<term>Value</term>
1399
<description>Description</description>
1400
</listheader>
1401
<item>
1402
<term>-display DISPLAY</term>
1403
<description>
1404
Specify the X server to connect to. If not specified, the value
1405
of the DISPLAY environment variable is used.
1406
</description>
1407
</item>
1408
<item>
1409
<term>-geometry WxH+X+Y</term>
1410
<description>
1411
Determines where window's should be created on the screen. The
1412
parameter following -geometry should be formatted as a standard X
1413
geometry specification. The effect of using this option is to
1414
change the GLUT initial size and initial position the same as if
1415
<see cref="M:Tao.FreeGlut.Glut.glutInitWindowSize(System.Int32,System.Int32)"/> or
1416
<see cref="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)"/> were called directly.
1417
</description>
1418
</item>
1419
<item>
1420
<term>-iconic</term>
1421
<description>
1422
Requests all top-level windows be created in an iconic state.
1423
</description>
1424
</item>
1425
<item>
1426
<term>-indirect</term>
1427
<description>
1428
Force the use of indirect OpenGL rendering contexts.
1429
</description>
1430
</item>
1431
<item>
1432
<term>-direct</term>
1433
<description>
1434
<para>
1435
Force the use of direct OpenGL rendering contexts (not all GLX
1436
implementations support direct rendering contexts). A fatal
1437
error is generated if direct rendering is not supported by the
1438
OpenGL implementation.
1439
</para>
1440
<para>
1441
If neither -indirect or -direct are used to force a particular
1442
behavior, GLUT will attempt to use direct rendering if
1443
possible and otherwise fallback to indirect rendering.
1444
</para>
1445
</description>
1446
</item>
1447
<item>
1448
<term>-gldebug</term>
1449
<description>
1450
After processing callbacks and/or events, check if there are any
1451
OpenGL errors by calling <see cref="M:Tao.OpenGl.Gl.glGetError"/>. If an
1452
error is reported, print out a warning by looking up the error
1453
code with /*see cref="Glu.gluErrorString" /&gt;*/. Using this option is
1454
helpful in detecting OpenGL run-time errors.
1455
</description>
1456
</item>
1457
<item>
1458
<term>-sync</term>
1459
<description>
1460
Enable synchronous X protocol transactions. This option makes it
1461
easier to track down potential X protocol errors.
1462
</description>
1463
</item>
1464
</list>
1465
</para>
1466
</remarks>
1467
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
1468
<seealso cref="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)"/>
1469
<seealso cref="M:Tao.FreeGlut.Glut.glutInitWindowSize(System.Int32,System.Int32)"/>
1470
<seealso cref="M:Tao.FreeGlut.Glut.glutMainLoop"/>
1471
</member>
1472
<member name="M:Tao.FreeGlut.Glut.glutInit(System.Int32@,System.Text.StringBuilder[])">
1473
<summary>
1474
Initializes the GLUT library.
1475
</summary>
1476
<param name="argcp">
1477
A pointer to the program’s unmodified argc variable from main. Upon return,
1478
the value pointed to by <i>argcp</i> will be updated, because <b>glutInit</b>
1479
extracts any command line options intended for the GLUT library.
1480
</param>
1481
<param name="argv">
1482
The program’s unmodified <i>argv</i> variable from main. Like <i>argcp</i>,
1483
the data for <i>argv</i> will be updated because <b>glutInit</b> extracts any
1484
command line options understood by the GLUT library.
1485
</param>
1486
<remarks>
1487
<para>
1488
<b>glutInit</b> will initialize the GLUT library and negotiate a session with
1489
the window system. During this process, <b>glutInit</b> may cause the
1490
termination of the GLUT program with an error message to the user if GLUT
1491
cannot be properly initialized. Examples of this situation include the
1492
failure to connect to the window system, the lack of window system support for
1493
OpenGL, and invalid command line options.
1494
</para>
1495
<para>
1496
<b>glutInit</b> also processes command line options, but the specific options
1497
parsed are window system dependent.
1498
</para>
1499
<para>
1500
<b>X IMPLEMENTATION NOTES</b>
1501
</para>
1502
<para>
1503
The X Window System specific options parsed by <b>glutInit</b> are as follows:
1504
</para>
1505
<para>
1506
<list type="table">
1507
<listheader>
1508
<term>Value</term>
1509
<description>Description</description>
1510
</listheader>
1511
<item>
1512
<term>-display DISPLAY</term>
1513
<description>
1514
Specify the X server to connect to. If not specified, the value
1515
of the DISPLAY environment variable is used.
1516
</description>
1517
</item>
1518
<item>
1519
<term>-geometry WxH+X+Y</term>
1520
<description>
1521
Determines where window's should be created on the screen. The
1522
parameter following -geometry should be formatted as a standard X
1523
geometry specification. The effect of using this option is to
1524
change the GLUT initial size and initial position the same as if
1525
<see cref="M:Tao.FreeGlut.Glut.glutInitWindowSize(System.Int32,System.Int32)"/> or
1526
<see cref="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)"/> were called directly.
1527
</description>
1528
</item>
1529
<item>
1530
<term>-iconic</term>
1531
<description>
1532
Requests all top-level windows be created in an iconic state.
1533
</description>
1534
</item>
1535
<item>
1536
<term>-indirect</term>
1537
<description>
1538
Force the use of indirect OpenGL rendering contexts.
1539
</description>
1540
</item>
1541
<item>
1542
<term>-direct</term>
1543
<description>
1544
<para>
1545
Force the use of direct OpenGL rendering contexts (not all GLX
1546
implementations support direct rendering contexts). A fatal
1547
error is generated if direct rendering is not supported by the
1548
OpenGL implementation.
1549
</para>
1550
<para>
1551
If neither -indirect or -direct are used to force a particular
1552
behavior, GLUT will attempt to use direct rendering if
1553
possible and otherwise fallback to indirect rendering.
1554
</para>
1555
</description>
1556
</item>
1557
<item>
1558
<term>-gldebug</term>
1559
<description>
1560
After processing callbacks and/or events, check if there are any
1561
OpenGL errors by calling <see cref="M:Tao.OpenGl.Gl.glGetError"/>. If an
1562
error is reported, print out a warning by looking up the error
1563
code with /*see cref="Glu.gluErrorString" /&gt;*/. Using this option is
1564
helpful in detecting OpenGL run-time errors.
1565
</description>
1566
</item>
1567
<item>
1568
<term>-sync</term>
1569
<description>
1570
Enable synchronous X protocol transactions. This option makes it
1571
easier to track down potential X protocol errors.
1572
</description>
1573
</item>
1574
</list>
1575
</para>
1576
</remarks>
1577
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
1578
<seealso cref="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)"/>
1579
<seealso cref="M:Tao.FreeGlut.Glut.glutInitWindowSize(System.Int32,System.Int32)"/>
1580
<seealso cref="M:Tao.FreeGlut.Glut.glutMainLoop"/>
1581
</member>
1582
<member name="M:Tao.FreeGlut.Glut.glutInitDisplayMode(System.Int32)">
1583
<summary>
1584
Sets the initial display mode.
1585
</summary>
1586
<param name="mode">
1587
<para>
1588
Display mode, normally the bitwise OR-ing of GLUT display mode bit masks. See
1589
values below:
1590
</para>
1591
<para>
1592
<list type="table">
1593
<listheader>
1594
<term>Value</term>
1595
<description>Description</description>
1596
</listheader>
1597
<item>
1598
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_RGBA"/></term>
1599
<description>
1600
Bit mask to select an RGBA mode window. This is the default if
1601
neither <see cref="F:Tao.FreeGlut.Glut.GLUT_RGBA"/> nor <see cref="F:Tao.FreeGlut.Glut.GLUT_INDEX"/>
1602
are specified.
1603
</description>
1604
</item>
1605
<item>
1606
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_RGB"/></term>
1607
<description>An alias for <see cref="F:Tao.FreeGlut.Glut.GLUT_RGBA"/>.</description>
1608
</item>
1609
<item>
1610
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_INDEX"/></term>
1611
<description>
1612
Bit mask to select a color index mode window. This overrides
1613
<see cref="F:Tao.FreeGlut.Glut.GLUT_RGBA"/> if it is also specified.
1614
</description>
1615
</item>
1616
<item>
1617
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_SINGLE"/></term>
1618
<description>
1619
Bit mask to select a single buffered window. This is the default
1620
if neither <see cref="F:Tao.FreeGlut.Glut.GLUT_DOUBLE"/> or
1621
<see cref="F:Tao.FreeGlut.Glut.GLUT_SINGLE"/> are specified.
1622
</description>
1623
</item>
1624
<item>
1625
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_DOUBLE"/></term>
1626
<description>
1627
Bit mask to select a double buffered window. This overrides
1628
<see cref="F:Tao.FreeGlut.Glut.GLUT_SINGLE"/> if it is also specified.
1629
</description>
1630
</item>
1631
<item>
1632
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_ACCUM"/></term>
1633
<description>
1634
Bit mask to select a window with an accumulation buffer.
1635
</description>
1636
</item>
1637
<item>
1638
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_ALPHA"/></term>
1639
<description>
1640
Bit mask to select a window with an alpha component to the color
1641
buffer(s).
1642
</description>
1643
</item>
1644
<item>
1645
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_DEPTH"/></term>
1646
<description>
1647
Bit mask to select a window with a depth buffer.
1648
</description>
1649
</item>
1650
<item>
1651
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_STENCIL"/></term>
1652
<description>
1653
Bit mask to select a window with a stencil buffer.
1654
</description>
1655
</item>
1656
<item>
1657
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_MULTISAMPLE"/></term>
1658
<description>
1659
Bit mask to select a window with multisampling support. If
1660
multisampling is not available, a non-multisampling window will
1661
automatically be chosen. Note: both the OpenGL client-side and
1662
server-side implementations must support the GLX_SAMPLE_SGIS
1663
extension for multisampling to be available.
1664
</description>
1665
</item>
1666
<item>
1667
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_STEREO"/></term>
1668
<description>
1669
Bit mask to select a stereo window.
1670
</description>
1671
</item>
1672
<item>
1673
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_LUMINANCE"/></term>
1674
<description>
1675
Bit mask to select a window with a "luminance" color model. This
1676
model provides the functionality of OpenGL's RGBA color model, but
1677
the green and blue components are not maintained in the frame
1678
buffer. Instead each pixel's red component is converted to an
1679
index between zero and
1680
<c>Glut.glutGet(Glut.GLUT_WINDOW_COLORMAP_SIZE) - 1</c> and looked
1681
up in a per-window color map to determine the color of pixels
1682
within the window. The initial colormap of
1683
<see cref="F:Tao.FreeGlut.Glut.GLUT_LUMINANCE"/> windows is initialized to be a
1684
linear gray ramp, but can be modified with GLUT's colormap
1685
routines.
1686
</description>
1687
</item>
1688
</list>
1689
</para>
1690
</param>
1691
<remarks>
1692
<para>
1693
The initial display mode is used when creating top-level windows, subwindows,
1694
and overlays to determine the OpenGL display mode for the to-be-created
1695
window or overlay.
1696
</para>
1697
<para>
1698
Note that <see cref="F:Tao.FreeGlut.Glut.GLUT_RGBA"/> selects the RGBA color model, but it does
1699
not request any bits of alpha (sometimes called an alpha buffer or destination
1700
alpha) be allocated. To request alpha, specify <see cref="F:Tao.FreeGlut.Glut.GLUT_ALPHA"/>.
1701
The same applies to <see cref="F:Tao.FreeGlut.Glut.GLUT_LUMINANCE"/>.
1702
</para>
1703
<para>
1704
<b>NOTE</b>
1705
</para>
1706
<para>
1707
<see cref="F:Tao.FreeGlut.Glut.GLUT_LUMINANCE"/> is not supported on most OpenGL platforms.
1708
</para>
1709
</remarks>
1710
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
1711
<seealso cref="M:Tao.FreeGlut.Glut.glutInit"/>
1712
<seealso cref="M:Tao.FreeGlut.Glut.glutInitDisplayString(System.String)"/>
1713
</member>
1714
<member name="M:Tao.FreeGlut.Glut.glutInitDisplayString(System.String)">
1715
<summary>
1716
Sets the initial display mode via a string.
1717
</summary>
1718
<param name="str">
1719
Display mode description string, see below.
1720
</param>
1721
<remarks>
1722
<para>
1723
The initial display mode description string is used when creating
1724
top-level windows, subwindows, and overlays to determine the OpenGL display
1725
mode for the to-be-created window or overlay.
1726
</para>
1727
<para>
1728
The string is a list of zero or more capability descriptions separated by
1729
spaces and tabs. Each capability description is a capability name that is
1730
optionally followed by a comparator and a numeric value. For example,
1731
"double" and "depth&gt;=12" are both valid criteria.
1732
</para>
1733
<para>
1734
The capability descriptions are translated into a set of criteria used to
1735
select the appropriate frame buffer configuration.
1736
</para>
1737
<para>
1738
The criteria are matched in strict left to right order of precdence. That is,
1739
the first specified criteria (leftmost) takes precedence over the later
1740
criteria for non-exact criteria (greater than, less than, etc. comparators).
1741
Exact criteria (equal, not equal compartors) must match exactly so precedence
1742
is not relevant.
1743
</para>
1744
<para>
1745
The numeric value is an integer that is parsed according to ANSI C's
1746
<c>strtol(str, strptr, 0)</c> behavior. This means that decimal, octal
1747
(leading 0), and hexidecimal values (leading 0x) are accepted.
1748
</para>
1749
<para>
1750
The valid compartors are:
1751
</para>
1752
<para>
1753
<list type="table">
1754
<listheader>
1755
<term>Value</term>
1756
<description>Description</description>
1757
</listheader>
1758
<item>
1759
<term>=</term>
1760
<description>Equal.</description>
1761
</item>
1762
<item>
1763
<term>!=</term>
1764
<description>Not equal.</description>
1765
</item>
1766
<item>
1767
<term>&lt;</term>
1768
<description>
1769
Less than and preferring larger difference (the least is best).
1770
</description>
1771
</item>
1772
<item>
1773
<term>&gt;</term>
1774
<description>
1775
Greeater than and preferring larger differences (the most is
1776
best).
1777
</description>
1778
</item>
1779
<item>
1780
<term>&lt;=</term>
1781
<description>
1782
Less than or equal and preferring larger difference (the least is
1783
best).
1784
</description>
1785
</item>
1786
<item>
1787
<term>&gt;=</term>
1788
<description>
1789
Greater than or equal and preferring more instead of less. This
1790
comparator is useful for allocating resources like color precsion
1791
or depth buffer precision where the maximum precison is
1792
generally preferred. Contrast with the tilde (~) comprator.
1793
</description>
1794
</item>
1795
<item>
1796
<term>~</term>
1797
<description>
1798
Greater than or equal but preferring less instead of more. This
1799
compartor is useful for allocating resources such as stencil bits
1800
or auxillary color buffers where you would rather not over
1801
allocate.
1802
</description>
1803
</item>
1804
</list>
1805
</para>
1806
<para>
1807
When the compartor and numeric value are not specified, each capability name
1808
has a different default (one default is to require a compartor and numeric
1809
value).
1810
</para>
1811
<para>
1812
The valid capability names are:
1813
</para>
1814
<para>
1815
<list type="table">
1816
<listheader>
1817
<term>Value</term>
1818
<description>Description</description>
1819
</listheader>
1820
<item>
1821
<term>alpha</term>
1822
<description>
1823
<para>
1824
Alpha color buffer precision in bits.
1825
</para>
1826
<para>
1827
Default is "&gt;=1".
1828
</para>
1829
</description>
1830
</item>
1831
<item>
1832
<term>acca</term>
1833
<description>
1834
<para>
1835
Red, green, blue, and alpha accumulation buffer precision in
1836
bits.
1837
</para>
1838
<para>
1839
Default is "&gt;=1" for red, green, blue, and alpha
1840
capabilities.
1841
</para>
1842
</description>
1843
</item>
1844
<item>
1845
<term>acc</term>
1846
<description>
1847
<para>
1848
Red, green, and green accumulation buffer precision in bits
1849
and zero bits of alpha accumulation buffer precision.
1850
</para>
1851
<para>
1852
Default is "&gt;=1" for red, green, and blue capabilities,
1853
and "~0" for the alpha capability.
1854
</para>
1855
</description>
1856
</item>
1857
<item>
1858
<term>blue</term>
1859
<description>
1860
<para>
1861
Blue color buffer precision in bits.
1862
</para>
1863
<para>
1864
Default is "&gt;=1".
1865
</para>
1866
</description>
1867
</item>
1868
<item>
1869
<term>buffer</term>
1870
<description>
1871
<para>
1872
Number of bits in the color index color buffer.
1873
</para>
1874
<para>
1875
Default is "&gt;=1".
1876
</para>
1877
</description>
1878
</item>
1879
<item>
1880
<term>conformant</term>
1881
<description>
1882
<para>
1883
bool indicating if the frame buffer configuration is
1884
conformant or not. Conformance information is based on
1885
GLX's EXT_visual_rating extension if supported. If the
1886
extension is not supported, all visuals are assumed
1887
conformat.
1888
</para>
1889
<para>
1890
Default is "=1".
1891
</para>
1892
</description>
1893
</item>
1894
<item>
1895
<term>depth</term>
1896
<description>
1897
<para>
1898
Number of bits of precsion in the depth buffer.
1899
</para>
1900
<para>
1901
Default is "&gt;=12".
1902
</para>
1903
</description>
1904
</item>
1905
<item>
1906
<term>double</term>
1907
<description>
1908
<para>
1909
bool indicating if the color buffer is double buffered.
1910
</para>
1911
<para>
1912
Default is "=1".
1913
</para>
1914
</description>
1915
</item>
1916
<item>
1917
<term>green</term>
1918
<description>
1919
<para>
1920
Green color buffer precision in bits.
1921
</para>
1922
<para>
1923
Default is "&gt;=1".
1924
</para>
1925
</description>
1926
</item>
1927
<item>
1928
<term>index</term>
1929
<description>
1930
<para>
1931
bool if the color model is color index or not. True is
1932
color index.
1933
</para>
1934
<para>
1935
Default is "&gt;=1".
1936
</para>
1937
</description>
1938
</item>
1939
<item>
1940
<term>num</term>
1941
<description>
1942
A special capability name indicating where the value represents
1943
the Nth frame buffer configuration matching the description
1944
string. When not specified, <b>glutInitDisplayString</b> also
1945
returns the first (best matching) configuration. <i>num</i>
1946
requires a compartor and numeric value.
1947
</description>
1948
</item>
1949
<item>
1950
<term>red</term>
1951
<description>
1952
<para>
1953
Red color buffer precision in bits.
1954
</para>
1955
<para>
1956
Default is "&gt;=1".
1957
</para>
1958
</description>
1959
</item>
1960
<item>
1961
<term>rgba</term>
1962
<description>
1963
<para>
1964
Number of bits of red, green, blue, and alpha in the RGBA
1965
color buffer.
1966
</para>
1967
<para>
1968
Default is "&gt;=1" for red, green, blue, and alpha
1969
capabilities, and "=1" for the RGBA color model capability.
1970
</para>
1971
</description>
1972
</item>
1973
<item>
1974
<term>rgb</term>
1975
<description>
1976
<para>
1977
Number of bits of red, green, and blue in the RGBA color
1978
buffer and zero bits of alpha color buffer precision.
1979
</para>
1980
<para>
1981
Default is "&gt;=1" for the red, green, and blue capabilities,
1982
and "~0" for alpha capability, and "=1" for the RGBA color
1983
model capability.
1984
</para>
1985
</description>
1986
</item>
1987
<item>
1988
<term>luminance</term>
1989
<description>
1990
<para>
1991
Number of bits of red in the RGBA and zero bits of green, blue
1992
(alpha not specified) of color buffer precision.
1993
</para>
1994
<para>
1995
Default is "&gt;=1" for the red capabilities, and "=0" for the
1996
green and blue capabilities, and "=1" for the RGBA color model
1997
capability, and, for X11, "=1" for the StaticGray
1998
("xstaticgray") capability.
1999
</para>
2000
<para>
2001
SGI InfiniteReality (and other future machines) support a
2002
16-bit luminance (single channel) display mode (an additional
2003
16-bit alpha channel can also be requested). The red channel
2004
maps to gray scale and green and blue channels are not
2005
available. A 16-bit precision luminance display mode is often
2006
appropriate for medical imaging applications. Do not expect
2007
many machines to support extended precision luminance display
2008
modes.
2009
</para>
2010
</description>
2011
</item>
2012
<item>
2013
<term>stencil</term>
2014
<description>Number of bits in the stencil buffer.</description>
2015
</item>
2016
<item>
2017
<term>single</term>
2018
<description>
2019
<para>
2020
bool indicate the color buffer is single buffered.
2021
</para>
2022
<para>
2023
double buffer capability "=1".
2024
</para>
2025
</description>
2026
</item>
2027
<item>
2028
<term>stereo</term>
2029
<description>
2030
<para>
2031
bool indicating the color buffer is supports OpenGL-style
2032
stereo.
2033
</para>
2034
<para>
2035
Default is "=1".
2036
</para>
2037
</description>
2038
</item>
2039
<item>
2040
<term>samples</term>
2041
<description>
2042
<para>
2043
Indicates the number of multisamples to use based on GLX's
2044
SGIS_multisample extension (for antialiasing).
2045
</para>
2046
<para>
2047
Default is "&lt;=4". This default means that a GLUT
2048
application can request multipsampling if available by simply
2049
specifying "samples".
2050
</para>
2051
</description>
2052
</item>
2053
<item>
2054
<term>slow</term>
2055
<description>
2056
<para>
2057
bool indicating if the frame buffer configuration is slow
2058
or not. Slowness information is based on GLX's
2059
EXT_visual_rating extension if supported. If the extension is
2060
not supported, all visuals are assumed fast. Note that
2061
slowness is a relative designation relative to other frame
2062
buffer configurations available. The intent of the slow
2063
capability is to help programs avoid frame buffer
2064
configurations that are slower (but perhaps higher precision)
2065
for the current machine.
2066
</para>
2067
<para>
2068
Default is "&gt;=0". This default means that slow visuals are
2069
used in preference to fast visuals, but fast visuals will
2070
still be allowed.
2071
</para>
2072
</description>
2073
</item>
2074
<item>
2075
<term>win32pfd</term>
2076
<description>
2077
Only recognized on GLUT implementations for Win32, this
2078
capability name matches the Win32 Pixel Format Descriptor by
2079
number. <i>win32pfd</i> requires a compartor and numeric value.
2080
</description>
2081
</item>
2082
<item>
2083
<term>xvisual</term>
2084
<description>
2085
Only recognized on GLUT implementations for the X Window System,
2086
this capability name matches the X visual ID by number.
2087
xvisual requires a compartor and numeric value.
2088
</description>
2089
</item>
2090
<item>
2091
<term>xstaticgray</term>
2092
<description>
2093
<para>
2094
Only recognized on GLUT implementations for the X Window
2095
System, boolean indicating if the frame buffer configuration's
2096
X visual is of type StaticGray.
2097
</para>
2098
<para>
2099
Default is "=1".
2100
</para>
2101
</description>
2102
</item>
2103
<item>
2104
<term>xgrayscale</term>
2105
<description>
2106
<para>
2107
Only recognized on GLUT implementations for the X Window
2108
System, boolean indicating if the frame buffer configuration's
2109
X visual is of type GrayScale.
2110
</para>
2111
<para>
2112
Default is "=1".
2113
</para>
2114
</description>
2115
</item>
2116
<item>
2117
<term>xstaticcolor</term>
2118
<description>
2119
<para>
2120
Only recognized on GLUT implementations for the X Window
2121
System, boolean indicating if the frame buffer configuration's
2122
X visual is of type StaticColor.
2123
</para>
2124
<para>
2125
Default is "=1".
2126
</para>
2127
</description>
2128
</item>
2129
<item>
2130
<term>xpseudocolor</term>
2131
<description>
2132
<para>
2133
Only recognized on GLUT implementations for the X Window
2134
System, boolean indicating if the frame buffer configuration's
2135
X visual is of type PsuedoColor.
2136
</para>
2137
<para>
2138
Default is "=1".
2139
</para>
2140
</description>
2141
</item>
2142
<item>
2143
<term>xtruecolor</term>
2144
<description>
2145
<para>
2146
Only recognized on GLUT implementations for the X Window
2147
System, boolean indicating if the frame buffer configuration's
2148
X visual is of type TrueColor.
2149
</para>
2150
<para>
2151
Default is "=1".
2152
</para>
2153
</description>
2154
</item>
2155
<item>
2156
<term>xdirectcolor</term>
2157
<description>
2158
<para>
2159
Only recognized on GLUT implementations for the X Window
2160
System, boolean indicating if the frame buffer configuration's
2161
X visual is of type DirectColor.
2162
</para>
2163
<para>
2164
Default is "=1".
2165
</para>
2166
</description>
2167
</item>
2168
</list>
2169
</para>
2170
<para>
2171
Unspecifed capability descriptions will result in unspecified criteria being
2172
generated. These unspecified criteria help <b>glutInitDisplayString</b>
2173
behave sensibly with terse display mode description strings.
2174
</para>
2175
<para>
2176
<b>EXAMPLE</b>
2177
</para>
2178
<para>
2179
Here is an example using <b>glutInitDisplayString</b>:
2180
</para>
2181
<para>
2182
<code>
2183
Glut.glutInitDisplayString("stencil~2 rgb double depth&gt;=16 samples");
2184
</code>
2185
</para>
2186
<para>
2187
The above call requests a window with an RGBA color model (but requesting no
2188
bits of alpha), a depth buffer with at least 16 bits of precsion but
2189
preferring more, mutlisampling if available, and at least 2 bits of stencil
2190
(favoring less stencil to more as long as 2 bits are available).
2191
</para>
2192
</remarks>
2193
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
2194
<seealso cref="M:Tao.FreeGlut.Glut.glutInit"/>
2195
<seealso cref="M:Tao.FreeGlut.Glut.glutInitDisplayMode(System.Int32)"/>
2196
</member>
2197
<member name="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)">
2198
<summary>
2199
Sets the initial window position.
2200
</summary>
2201
<param name="x">
2202
Window X location in pixels.
2203
</param>
2204
<param name="y">
2205
Window Y location in pixels.
2206
</param>
2207
<remarks>
2208
<para>
2209
Windows created by <see cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/> will be requested to be
2210
created with the current initial window position. The initial value of the
2211
initial window position GLUT state is -1 and -1. If either the X or Y
2212
component to the initial window position is negative, the actual window
2213
position is left to the window system to determine.
2214
</para>
2215
<para>
2216
The intent of the initial window position values is to provide a suggestion to
2217
the window system for a window’s initial position. The window system is not
2218
obligated to use this information. Therefore, GLUT programs should not assume
2219
the window was created at the specified position.
2220
</para>
2221
<para>
2222
<b>Example</b>
2223
</para>
2224
<para>
2225
If you would like your GLUT program to default to starting at a given screen
2226
location and at a given size, but you would also like to let the user override
2227
these default via a command line argument (such as -geometry for X11), call
2228
<see cref="M:Tao.FreeGlut.Glut.glutInitWindowSize(System.Int32,System.Int32)"/> and <see cref="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)"/>
2229
before your call to <see cref="M:Tao.FreeGlut.Glut.glutInit"/>. For example:
2230
</para>
2231
<para>
2232
<code>
2233
using Tao.OpenGL;
2234
2235
[STAThread]
2236
public static void Main(string[] args) {
2237
Glut.glutInitWindowSize(500, 300);
2238
Glut.glutInitWindowPosition(100, 100);
2239
Glut.glutInit();
2240
}
2241
</code>
2242
</para>
2243
<para>
2244
However, if you'd like to force your program to start up at a given size and
2245
position, call <see cref="M:Tao.FreeGlut.Glut.glutInitWindowSize(System.Int32,System.Int32)"/> and
2246
<see cref="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)"/> after your call to
2247
<see cref="M:Tao.FreeGlut.Glut.glutInit"/>. For example:
2248
</para>
2249
<para>
2250
<code>
2251
using Tao.OpenGL;
2252
2253
[STAThread]
2254
public static void Main(string[] args) {
2255
Glut.glutInit();
2256
Glut.glutInitWindowSize(500, 300);
2257
Glut.glutInitWindowPosition(100, 100);
2258
}
2259
</code>
2260
</para>
2261
</remarks>
2262
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
2263
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateSubWindow(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/>
2264
<seealso cref="M:Tao.FreeGlut.Glut.glutGet(System.Int32)"/>
2265
<seealso cref="M:Tao.FreeGlut.Glut.glutInit"/>
2266
<seealso cref="M:Tao.FreeGlut.Glut.glutInitWindowSize(System.Int32,System.Int32)"/>
2267
<seealso cref="M:Tao.FreeGlut.Glut.glutReshapeFunc(Tao.FreeGlut.Glut.ReshapeCallback)"/>
2268
<seealso cref="T:Tao.FreeGlut.Glut.ReshapeCallback"/>
2269
</member>
2270
<member name="M:Tao.FreeGlut.Glut.glutInitWindowSize(System.Int32,System.Int32)">
2271
<summary>
2272
Sets the initial window size.
2273
</summary>
2274
<param name="width">
2275
Width in pixels.
2276
</param>
2277
<param name="height">
2278
Height in pixels.
2279
</param>
2280
<remarks>
2281
<para>
2282
Windows created by <see cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/> will be requested to be
2283
created with the current initial window size. The initial value of the
2284
initial window size GLUT state is 300 by 300. The initial window size
2285
components must be greater than zero.
2286
</para>
2287
<para>
2288
The intent of the initial window size values is to provide a suggestion to the
2289
window system for a window’s initial size. The window system is not obligated
2290
to use this information. Therefore, GLUT programs should not assume the
2291
window was created at the specified size. A GLUT program should use the
2292
window’s reshape callback to determine the true size of the window.
2293
</para>
2294
<para>
2295
<b>Example</b>
2296
</para>
2297
<para>
2298
If you would like your GLUT program to default to starting at a given screen
2299
location and at a given size, but you would also like to let the user
2300
override these default via a command line argument (such as -geometry for
2301
X11), call <see cref="M:Tao.FreeGlut.Glut.glutInitWindowSize(System.Int32,System.Int32)"/> and
2302
<see cref="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)"/> before your call to
2303
<see cref="M:Tao.FreeGlut.Glut.glutInit"/>. For example:
2304
</para>
2305
<para>
2306
<code>
2307
using Tao.OpenGL;
2308
2309
[STAThread]
2310
public static void Main(string[] args) {
2311
Glut.glutInitWindowSize(500, 300);
2312
Glut.glutInitWindowPosition(100, 100);
2313
Glut.glutInit();
2314
}
2315
</code>
2316
</para>
2317
<para>
2318
However, if you'd like to force your program to start up at a given size and
2319
position, call <see cref="M:Tao.FreeGlut.Glut.glutInitWindowSize(System.Int32,System.Int32)"/> and
2320
<see cref="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)"/> after your call to
2321
<see cref="M:Tao.FreeGlut.Glut.glutInit"/>. For example:
2322
</para>
2323
<para>
2324
<code>
2325
using Tao.OpenGL;
2326
2327
[STAThread]
2328
public static void Main(string[] args) {
2329
Glut.glutInit();
2330
Glut.glutInitWindowSize(500, 300);
2331
Glut.glutInitWindowPosition(100, 100);
2332
}
2333
</code>
2334
</para>
2335
</remarks>
2336
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
2337
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateSubWindow(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/>
2338
<seealso cref="M:Tao.FreeGlut.Glut.glutGet(System.Int32)"/>
2339
<seealso cref="M:Tao.FreeGlut.Glut.glutInit"/>
2340
<seealso cref="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)"/>
2341
<seealso cref="M:Tao.FreeGlut.Glut.glutReshapeFunc(Tao.FreeGlut.Glut.ReshapeCallback)"/>
2342
<seealso cref="T:Tao.FreeGlut.Glut.ReshapeCallback"/>
2343
</member>
2344
<member name="M:Tao.FreeGlut.Glut.glutMainLoop">
2345
<summary>
2346
Enters the GLUT event processing loop.
2347
</summary>
2348
<remarks>
2349
<b>glutMainLoop</b> enters the GLUT event processing loop. This routine
2350
should be called at most once in a GLUT program. Once called, this
2351
routine will never return. It will call as necessary any callbacks
2352
(delegates) that have been registered.
2353
</remarks>
2354
<seealso cref="M:Tao.FreeGlut.Glut.glutInit"/>
2355
</member>
2356
<member name="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)">
2357
<summary>
2358
Creates a top-level window.
2359
</summary>
2360
<param name="name">
2361
Character string for use as window name.
2362
</param>
2363
<returns>
2364
The value returned is a unique small integer identifier for the window. The
2365
range of allocated identifiers starts at one. This window identifier can be
2366
used when calling <see cref="M:Tao.FreeGlut.Glut.glutSetWindow(System.Int32)"/>.
2367
</returns>
2368
<remarks>
2369
<para>
2370
<b>glutCreateWindow</b> creates a top-level window. The <i>name</i> will be
2371
provided to the window system as the window’s title. The intent is that the
2372
window system will label the window with <i>name</i> as the title.
2373
</para>
2374
<para>
2375
Implicitly, the current window is set to the newly created window.
2376
</para>
2377
<para>
2378
Each created window has a unique associated OpenGL context. State changes to
2379
a window’s associated OpenGL context can be done immediately after the window
2380
is created.
2381
</para>
2382
<para>
2383
The display state of a window is initially for the window to be shown. But
2384
the window’s display state is not actually acted upon until
2385
<see cref="M:Tao.FreeGlut.Glut.glutMainLoop"/> is entered. This means until <b>glutMainLoop</b>
2386
is called, rendering to a created window is ineffective because the window can
2387
not yet be displayed.
2388
</para>
2389
<para>
2390
<b>X IMPLEMENTATION NOTES</b>
2391
</para>
2392
<para>
2393
The proper X Inter-Client Communications Convention Manual (ICCCM) top-level
2394
properties are established. The WM_COMMAND property that lists the
2395
commandline used to invoke the GLUT program is only established for the first
2396
window created.
2397
</para>
2398
</remarks>
2399
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateMenu(Tao.FreeGlut.Glut.CreateMenuCallback)"/>
2400
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateSubWindow(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/>
2401
<seealso cref="M:Tao.FreeGlut.Glut.glutDestroyWindow(System.Int32)"/>
2402
</member>
2403
<member name="M:Tao.FreeGlut.Glut.glutCreateSubWindow(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
2404
<summary>
2405
Creates a subwindow.
2406
</summary>
2407
<param name="win">
2408
Identifier of the subwindow’s parent window.
2409
</param>
2410
<param name="x">
2411
Window X location in pixels relative to parent window’s origin.
2412
</param>
2413
<param name="y">
2414
Window Y location in pixels relative to parent window’s origin.
2415
</param>
2416
<param name="width">
2417
Width in pixels.
2418
</param>
2419
<param name="height">
2420
Height in pixels.
2421
</param>
2422
<returns>
2423
The value returned is a unique small integer identifier for the window. The
2424
range of allocated identifiers starts at one.
2425
</returns>
2426
<remarks>
2427
<para>
2428
<b>glutCreateSubWindow</b> creates a subwindow of the window identified by
2429
<i>win</i> of size <i>width</i> and <i>height</i> at location <i>x</i> and
2430
<i>y</i> within the current window. Implicitly, the current window is set to
2431
the newly created subwindow.
2432
</para>
2433
<para>
2434
Each created window has a unique associated OpenGL context. State changes to
2435
a window’s associated OpenGL context can be done immediately after the window
2436
is created.
2437
</para>
2438
<para>
2439
The display state of a window is initially for the window to be shown. But
2440
the window’s display state is not actually acted upon until
2441
<see cref="M:Tao.FreeGlut.Glut.glutMainLoop"/> is entered. This means until <b>glutMainLoop</b>
2442
is called, rendering to a created window is ineffective. Subwindows can not
2443
be iconified.
2444
</para>
2445
<para>
2446
Subwindows can be nested arbitrarily deep.
2447
</para>
2448
</remarks>
2449
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
2450
<seealso cref="M:Tao.FreeGlut.Glut.glutDestroyWindow(System.Int32)"/>
2451
</member>
2452
<member name="M:Tao.FreeGlut.Glut.glutDestroyWindow(System.Int32)">
2453
<summary>
2454
Destroys the specified window.
2455
</summary>
2456
<param name="win">
2457
Identifier of GLUT window to destroy.
2458
</param>
2459
<remarks>
2460
<b>glutDestroyWindow</b> destroys the window specified by <i>win</i> and the
2461
window’s associated OpenGL context, logical colormap (if the window is color
2462
index), and overlay and related state (if an overlay has been established).
2463
Any subwindows of destroyed windows are also destroyed by
2464
<b>glutDestroyWindow</b>. If <i>win</i> was the current window, the current
2465
window becomes invalid (<see cref="M:Tao.FreeGlut.Glut.glutGetWindow"/> will return zero).
2466
</remarks>
2467
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
2468
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateSubWindow(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/>
2469
<seealso cref="M:Tao.FreeGlut.Glut.glutDestroyMenu(System.Int32)"/>
2470
</member>
2471
<member name="M:Tao.FreeGlut.Glut.glutPostRedisplay">
2472
<summary>
2473
Marks the current window as needing to be redisplayed.
2474
</summary>
2475
<remarks>
2476
<para>
2477
<b>glutPostRedisplay</b> marks the normal plane of current window as needing
2478
to be redisplayed. The next iteration through <see cref="M:Tao.FreeGlut.Glut.glutMainLoop"/>,
2479
the window's display callback will be called to redisplay the window's normal
2480
plane. Multiple calls to <b>glutPostRedisplay</b> before the next display
2481
callback opportunity generates only a single redisplay callback.
2482
<b>glutPostRedisplay</b> may be called within a window's display or overlay
2483
display callback to re-mark that window for redisplay.
2484
</para>
2485
<para>
2486
Logically, normal plane damage notification for a window is treated as a
2487
<b>glutPostRedisplay</b> on the damaged window. Unlike damage reported by the
2488
window system, <b>glutPostRedisplay</b> will not set to <c>true</c> the normal
2489
plane's damaged status (returned by
2490
<c>Glut.glutLayerGet(Glut.GLUT_NORMAL_DAMAGED)</c>.
2491
</para>
2492
<para>
2493
If the window you want to post a redisplay on is not already current (and you
2494
do not require it to be immediately made current), using
2495
<see cref="M:Tao.FreeGlut.Glut.glutPostWindowRedisplay(System.Int32)"/> is more efficient than calling
2496
<see cref="M:Tao.FreeGlut.Glut.glutSetWindow(System.Int32)"/> to the desired window and then calling
2497
<b>glutPostRedisplay</b>.
2498
</para>
2499
</remarks>
2500
<seealso cref="M:Tao.FreeGlut.Glut.glutDisplayFunc(Tao.FreeGlut.Glut.DisplayCallback)"/>
2501
<seealso cref="M:Tao.FreeGlut.Glut.glutPostOverlayRedisplay"/>
2502
<seealso cref="M:Tao.FreeGlut.Glut.glutPostWindowRedisplay(System.Int32)"/>
2503
</member>
2504
<member name="M:Tao.FreeGlut.Glut.glutPostWindowRedisplay(System.Int32)">
2505
<summary>
2506
Marks the specified window as needing to be redisplayed.
2507
</summary>
2508
<param name="win">
2509
Identifier of GLUT window to mark for redisplay.
2510
</param>
2511
<remarks>
2512
<para>
2513
<b>glutPostWindowRedisplay</b> marks the specified window as needing to be
2514
redisplayed. The next iteration through <see cref="M:Tao.FreeGlut.Glut.glutMainLoop"/>, the
2515
window's display callback will be called to redisplay the window's normal
2516
plane.
2517
</para>
2518
<para>
2519
If the window you want to post a redisplay on is not already current (and you
2520
do not require it to be immediately made current), using
2521
<b>glutPostWindowRedisplay</b> is more efficient than calling
2522
<see cref="M:Tao.FreeGlut.Glut.glutSetWindow(System.Int32)"/> to the desired window and then calling
2523
<see cref="M:Tao.FreeGlut.Glut.glutPostRedisplay"/>.
2524
</para>
2525
</remarks>
2526
<seealso cref="M:Tao.FreeGlut.Glut.glutDisplayFunc(Tao.FreeGlut.Glut.DisplayCallback)"/>
2527
<seealso cref="M:Tao.FreeGlut.Glut.glutPostOverlayRedisplay"/>
2528
<seealso cref="M:Tao.FreeGlut.Glut.glutPostRedisplay"/>
2529
</member>
2530
<member name="M:Tao.FreeGlut.Glut.glutSwapBuffers">
2531
<summary>
2532
Swaps the buffers of the current window if double buffered.
2533
</summary>
2534
<remarks>
2535
<para>
2536
Performs a buffer swap on the layer in use for the current window.
2537
Specifically, <b>glutSwapBuffers</b> promotes the contents of the back buffer
2538
of the layer in use of the current window to become the contents of the front
2539
buffer. The contents of the back buffer then become undefined. The update
2540
typically takes place during the vertical retrace of the monitor, rather than
2541
immediately after <b>glutSwapBuffers</b> is called.
2542
</para>
2543
<para>
2544
An implicit <see cref="M:Tao.OpenGl.Gl.glFlush"/> is done by <b>glutSwapBuffers</b> before
2545
it returns. Subsequent OpenGL commands can be issued immediately after
2546
calling <b>glutSwapBuffers</b>, but are not executed until the buffer exchange
2547
is completed.
2548
</para>
2549
<para>
2550
If the layer in use is not double buffered, <b>glutSwapBuffers</b> has no
2551
effect.
2552
</para>
2553
</remarks>
2554
<seealso cref="M:Tao.FreeGlut.Glut.glutDisplayFunc(Tao.FreeGlut.Glut.DisplayCallback)"/>
2555
<seealso cref="M:Tao.FreeGlut.Glut.glutPostRedisplay"/>
2556
</member>
2557
<member name="M:Tao.FreeGlut.Glut.glutGetWindow">
2558
<summary>
2559
Returns the identifier of the current window.
2560
</summary>
2561
<returns>
2562
<b>glutGetWindow</b> returns the identifier of the current window. If no
2563
windows exist or the previously current window was destroyed,
2564
<b>glutGetWindow</b> returns zero.
2565
</returns>
2566
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
2567
<seealso cref="M:Tao.FreeGlut.Glut.glutSetWindow(System.Int32)"/>
2568
</member>
2569
<member name="M:Tao.FreeGlut.Glut.glutSetWindow(System.Int32)">
2570
<summary>
2571
Sets the current window.
2572
</summary>
2573
<param name="win">
2574
Identifier of GLUT window to make the current window.
2575
</param>
2576
<remarks>
2577
<b>glutSetWindow</b> sets the current window. <b>glutSetWindow</b> does not
2578
change the layer in use for the window; this is done using
2579
<see cref="M:Tao.FreeGlut.Glut.glutUseLayer(System.Int32)"/>.
2580
</remarks>
2581
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
2582
<seealso cref="M:Tao.FreeGlut.Glut.glutGetWindow"/>
2583
<seealso cref="M:Tao.FreeGlut.Glut.glutSetMenu(System.Int32)"/>
2584
</member>
2585
<member name="M:Tao.FreeGlut.Glut.glutSetWindowTitle(System.String)">
2586
<summary>
2587
Changes the window title of the current top-level window.
2588
</summary>
2589
<param name="name">
2590
Character string for the window name to be set for the window.
2591
</param>
2592
<remarks>
2593
<b>glutSetWindowTitle</b> should be called only when the current window is a
2594
top-level window. Upon creation of a top-level window, the window title is
2595
determined by the <i>name</i> parameter to <see cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>.
2596
Once created, <b>glutSetWindowTitle</b> can change the window title of
2597
top-level windows. Each call requests the window system change the title
2598
appropriately. Requests are not buffered or coalesced. The policy by which
2599
the window title is displayed is window system dependent.
2600
</remarks>
2601
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
2602
<seealso cref="M:Tao.FreeGlut.Glut.glutSetIconTitle(System.String)"/>
2603
</member>
2604
<member name="M:Tao.FreeGlut.Glut.glutSetIconTitle(System.String)">
2605
<summary>
2606
Changes the icon title of the current top-level window.
2607
</summary>
2608
<param name="name">
2609
Character string for the icon name to be set for the window.
2610
</param>
2611
<remarks>
2612
<b>glutSetIconTitle</b> should be called only when the current window is a
2613
top-level window. Upon creation of a top-level window, the icon name is
2614
determined by the <i>name</i> parameter to <see cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>.
2615
Once created, <b>glutSetIconTitle</b> can change the icon name of top-level
2616
windows. Each call requests the window system change the name appropriately.
2617
Requests are not buffered or coalesced. The policy by which the icon name are
2618
displayed is window system dependent.
2619
</remarks>
2620
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
2621
<seealso cref="M:Tao.FreeGlut.Glut.glutIconifyWindow"/>
2622
<seealso cref="M:Tao.FreeGlut.Glut.glutSetWindowTitle(System.String)"/>
2623
</member>
2624
<member name="M:Tao.FreeGlut.Glut.glutPositionWindow(System.Int32,System.Int32)">
2625
<summary>
2626
Requests a change to the position of the current window.
2627
</summary>
2628
<param name="x">
2629
New X location of window in pixels.
2630
</param>
2631
<param name="y">
2632
New Y location of window in pixels.
2633
</param>
2634
<remarks>
2635
<para>
2636
<b>glutPositionWindow</b> requests a change in the position of the current
2637
window. For top-level windows, the <i>x</i> and <i>y</i> parameters are
2638
pixel offsets from the screen origin. For subwindows, the <i>x</i> and
2639
<i>y</i> parameters are pixel offsets from the window's parent window origin.
2640
</para>
2641
<para>
2642
The requests by <b>glutPositionWindow</b> are not processed immediately. The
2643
request is executed after returning to the main event loop. This allows
2644
multiple <b>glutPositionWindow</b>, <see cref="M:Tao.FreeGlut.Glut.glutReshapeWindow(System.Int32,System.Int32)"/>, and
2645
<see cref="M:Tao.FreeGlut.Glut.glutFullScreen"/> requests to the same window to be coalesced.
2646
</para>
2647
<para>
2648
In the case of top-level windows, a <b>glutPositionWindow</b> call is
2649
considered only a request for positioning the window. The window system is
2650
free to apply its own policies to top-level window placement. The intent is
2651
that top-level windows should be repositioned according to
2652
<b>glutPositionWindow's</b> parameters.
2653
</para>
2654
<para>
2655
<b>glutPositionWindow</b> disables the full screen status of a window if
2656
previously enabled.
2657
</para>
2658
</remarks>
2659
<seealso cref="M:Tao.FreeGlut.Glut.glutInitWindowPosition(System.Int32,System.Int32)"/>
2660
<seealso cref="M:Tao.FreeGlut.Glut.glutReshapeWindow(System.Int32,System.Int32)"/>
2661
</member>
2662
<member name="M:Tao.FreeGlut.Glut.glutReshapeWindow(System.Int32,System.Int32)">
2663
<summary>
2664
Requests a change to the size of the current window.
2665
</summary>
2666
<param name="width">
2667
New width of window in pixels.
2668
</param>
2669
<param name="height">
2670
New height of window in pixels.
2671
</param>
2672
<remarks>
2673
<para>
2674
<b>glutReshapeWindow</b> requests a change in the size of the current window.
2675
The <i>width</i> and <i>height</i> parameters are size extents in pixels. The
2676
<i>width</i> and <i>height</i> must be positive values.
2677
</para>
2678
<para>
2679
The requests by <b>glutReshapeWindow</b> are not processed immediately. The
2680
request is executed after returning to the main event loop. This allows
2681
multiple <b>glutReshapeWindow</b>, <see cref="M:Tao.FreeGlut.Glut.glutPositionWindow(System.Int32,System.Int32)"/>, and
2682
<see cref="M:Tao.FreeGlut.Glut.glutFullScreen"/> requests to the same window to be coalesced.
2683
</para>
2684
<para>
2685
In the case of top-level windows, a <b>glutReshapeWindow</b> call is
2686
considered only a request for sizing the window. The window system is free to
2687
apply its own policies to top-level window sizing. The intent is that
2688
top-level windows should be reshaped according to <b>glutReshapeWindow's</b>
2689
parameters. Whether a reshape actually takes effect and, if so, the reshaped
2690
dimensions are reported to the program by a reshape callback.
2691
</para>
2692
<para>
2693
<b>glutReshapeWindow</b> disables the full screen status of a window if
2694
previously enabled.
2695
</para>
2696
</remarks>
2697
<seealso cref="M:Tao.FreeGlut.Glut.glutPositionWindow(System.Int32,System.Int32)"/>
2698
<seealso cref="M:Tao.FreeGlut.Glut.glutReshapeFunc(Tao.FreeGlut.Glut.ReshapeCallback)"/>
2699
</member>
2700
<member name="M:Tao.FreeGlut.Glut.glutPopWindow">
2701
<summary>
2702
Changes the stacking order of the current window relative to its siblings.
2703
</summary>
2704
<remarks>
2705
<b>glutPopWindow</b> works on both top-level windows and subwindows. The
2706
effect of popping windows does not take place immediately. Instead the pop is
2707
saved for execution upon return to the GLUT event loop. Subsequent pop
2708
requests on a window replace the previously saved request for that window.
2709
The effect of popping top-level windows is subject to the window system's
2710
policy for restacking windows.
2711
</remarks>
2712
<seealso cref="M:Tao.FreeGlut.Glut.glutHideWindow"/>
2713
<seealso cref="M:Tao.FreeGlut.Glut.glutIconifyWindow"/>
2714
<seealso cref="M:Tao.FreeGlut.Glut.glutPushWindow"/>
2715
<seealso cref="M:Tao.FreeGlut.Glut.glutShowWindow"/>
2716
</member>
2717
<member name="M:Tao.FreeGlut.Glut.glutPushWindow">
2718
<summary>
2719
Changes the stacking order of the current window relative to its siblings.
2720
</summary>
2721
<remarks>
2722
<b>glutPushWindow</b> works on both top-level windows and subwindows. The
2723
effect of pushing windows does not take place immediately. Instead the push
2724
is saved for execution upon return to the GLUT event loop. Subsequent push
2725
requests on a window replace the previously saved request for that window.
2726
The effect of pushing top-level windows is subject to the window system's
2727
policy for restacking windows.
2728
</remarks>
2729
<seealso cref="M:Tao.FreeGlut.Glut.glutHideWindow"/>
2730
<seealso cref="M:Tao.FreeGlut.Glut.glutIconifyWindow"/>
2731
<seealso cref="M:Tao.FreeGlut.Glut.glutPopWindow"/>
2732
<seealso cref="M:Tao.FreeGlut.Glut.glutShowWindow"/>
2733
</member>
2734
<member name="M:Tao.FreeGlut.Glut.glutIconifyWindow">
2735
<summary>
2736
Changes the display status of the current window.
2737
</summary>
2738
<remarks>
2739
<b>glutIconifyWindow</b> will iconify a top-level window, but GLUT prohibits
2740
iconification of a subwindow. The effect of iconifying windows does not take
2741
place immediately. Instead the requests are saved for execution upon return
2742
to the GLUT event loop. Subsequent iconification requests on a window replace
2743
the previously saved request for that window. The effect of iconifying
2744
top-level windows is subject to the window system's policy for displaying
2745
windows.
2746
</remarks>
2747
<seealso cref="M:Tao.FreeGlut.Glut.glutHideWindow"/>
2748
<seealso cref="M:Tao.FreeGlut.Glut.glutPopWindow"/>
2749
<seealso cref="M:Tao.FreeGlut.Glut.glutPushWindow"/>
2750
<seealso cref="M:Tao.FreeGlut.Glut.glutShowWindow"/>
2751
</member>
2752
<member name="M:Tao.FreeGlut.Glut.glutShowWindow">
2753
<summary>
2754
Changes the display status of the current window.
2755
</summary>
2756
<remarks>
2757
<b>glutShowWindow</b> will show the current window (though it may still not be
2758
visible if obscured by other shown windows). The effect of showing windows
2759
does not take place immediately. Instead the requests are saved for execution
2760
upon return to the GLUT event loop. Subsequent show requests on a window
2761
replace the previously saved request for that window. The effect of showing
2762
top-level windows is subject to the window system's policy for displaying
2763
windows.
2764
</remarks>
2765
<seealso cref="M:Tao.FreeGlut.Glut.glutHideWindow"/>
2766
<seealso cref="M:Tao.FreeGlut.Glut.glutIconifyWindow"/>
2767
<seealso cref="M:Tao.FreeGlut.Glut.glutPopWindow"/>
2768
<seealso cref="M:Tao.FreeGlut.Glut.glutPushWindow"/>
2769
</member>
2770
<member name="M:Tao.FreeGlut.Glut.glutHideWindow">
2771
<summary>
2772
Changes the display status of the current window.
2773
</summary>
2774
<remarks>
2775
<b>glutHideWindow</b> will hide the current window. The effect of hiding
2776
windows does not take place immediately. Instead the requests are saved for
2777
execution upon return to the GLUT event loop. Subsequent hide requests on a
2778
window replace the previously saved request for that window. The effect of
2779
hiding top-level windows is subject to the window system's policy for
2780
displaying windows.
2781
</remarks>
2782
<seealso cref="M:Tao.FreeGlut.Glut.glutIconifyWindow"/>
2783
<seealso cref="M:Tao.FreeGlut.Glut.glutPopWindow"/>
2784
<seealso cref="M:Tao.FreeGlut.Glut.glutPushWindow"/>
2785
<seealso cref="M:Tao.FreeGlut.Glut.glutShowWindow"/>
2786
</member>
2787
<member name="M:Tao.FreeGlut.Glut.glutFullScreen">
2788
<summary>
2789
Requests that the current window be made full screen.
2790
</summary>
2791
<remarks>
2792
<para>
2793
<b>glutFullScreen</b> requests that the current window be made full screen.
2794
The exact semantics of what full screen means may vary by window system. The
2795
intent is to make the window as large as possible and disable any window
2796
decorations or borders added by the window system. The window width and
2797
height are not guaranteed to be the same as the screen width and height, but
2798
that is the intent of making a window full screen.
2799
</para>
2800
<para>
2801
<b>glutFullScreen</b> is defined to work only on top-level windows.
2802
</para>
2803
<para>
2804
The <b>glutFullScreen</b> requests are not processed immediately. The request
2805
is executed after returning to the main event loop. This allows multiple
2806
<see cref="M:Tao.FreeGlut.Glut.glutReshapeWindow(System.Int32,System.Int32)"/>, <see cref="M:Tao.FreeGlut.Glut.glutPositionWindow(System.Int32,System.Int32)"/>, and
2807
<b>glutFullScreen</b> requests to the same window to be coalesced.
2808
</para>
2809
<para>
2810
Subsequent <b>glutReshapeWindow</b> and <b>glutPositionWindow</b> requests on
2811
the window will disable the full screen status of the window.
2812
</para>
2813
<para>
2814
<b>X IMPLEMENTATION NOTES</b>
2815
</para>
2816
<para>
2817
In the X implementation of GLUT, full screen is implemented by sizing and
2818
positioning the window to cover the entire screen and posting the
2819
_MOTIF_WM_HINTS property on the window requesting absolutely no decorations.
2820
Non-Motif window managers may not respond to _MOTIF_WM_HINTS.
2821
</para>
2822
</remarks>
2823
<seealso cref="M:Tao.FreeGlut.Glut.glutPositionWindow(System.Int32,System.Int32)"/>
2824
<seealso cref="M:Tao.FreeGlut.Glut.glutReshapeWindow(System.Int32,System.Int32)"/>
2825
</member>
2826
<member name="M:Tao.FreeGlut.Glut.glutSetCursor(System.Int32)">
2827
<summary>
2828
Changes the cursor image of the current window.
2829
</summary>
2830
<param name="cursor">
2831
<para>
2832
Name of cursor image to change to. Possible values follow:
2833
</para>
2834
<para>
2835
<list type="table">
2836
<listheader>
2837
<term>Value</term>
2838
<description>Description</description>
2839
</listheader>
2840
<item>
2841
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_RIGHT_ARROW"/></term>
2842
<description>Arrow pointing up and to the right.</description>
2843
</item>
2844
<item>
2845
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_LEFT_ARROW"/></term>
2846
<description>Arrow pointing up and to the left.</description>
2847
</item>
2848
<item>
2849
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_INFO"/></term>
2850
<description>Pointing hand.</description>
2851
</item>
2852
<item>
2853
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_DESTROY"/></term>
2854
<description>Skull and cross bones.</description>
2855
</item>
2856
<item>
2857
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_HELP"/></term>
2858
<description>Question mark.</description>
2859
</item>
2860
<item>
2861
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_CYCLE"/></term>
2862
<description>Arrows rotating in a circle.</description>
2863
</item>
2864
<item>
2865
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_SPRAY"/></term>
2866
<description>Spray can.</description>
2867
</item>
2868
<item>
2869
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_WAIT"/></term>
2870
<description>Wrist watch.</description>
2871
</item>
2872
<item>
2873
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_TEXT"/></term>
2874
<description>Insertion point cursor for text.</description>
2875
</item>
2876
<item>
2877
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_CROSSHAIR"/></term>
2878
<description>Simple cross-hair.</description>
2879
</item>
2880
<item>
2881
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_UP_DOWN"/></term>
2882
<description>Bi-directional pointing up and down.</description>
2883
</item>
2884
<item>
2885
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_LEFT_RIGHT"/></term>
2886
<description>Bi-directional pointing left and right.</description>
2887
</item>
2888
<item>
2889
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_TOP_SIDE"/></term>
2890
<description>Arrow pointing to top side.</description>
2891
</item>
2892
<item>
2893
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_BOTTOM_SIDE"/></term>
2894
<description>Arrow pointing to bottom side.</description>
2895
</item>
2896
<item>
2897
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_LEFT_SIDE"/></term>
2898
<description>Arrow pointing to left side.</description>
2899
</item>
2900
<item>
2901
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_RIGHT_SIDE"/></term>
2902
<description>Arrow pointing to right side.</description>
2903
</item>
2904
<item>
2905
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_TOP_LEFT_CORNER"/></term>
2906
<description>Arrow pointing to top-left corner.</description>
2907
</item>
2908
<item>
2909
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_TOP_RIGHT_CORNER"/></term>
2910
<description>Arrow pointing to top-right corner.</description>
2911
</item>
2912
<item>
2913
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_BOTTOM_RIGHT_CORNER"/></term>
2914
<description>Arrow pointing to bottom-right corner.</description>
2915
</item>
2916
<item>
2917
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_BOTTOM_LEFT_CORNER"/></term>
2918
<description>Arrow pointing to bottom-left corner.</description>
2919
</item>
2920
<item>
2921
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_FULL_CROSSHAIR"/></term>
2922
<description>
2923
Full-screen cross-hair cursor (if possible, otherwise
2924
<see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_CROSSHAIR"/>).
2925
</description>
2926
</item>
2927
<item>
2928
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_NONE"/></term>
2929
<description>Invisible cursor.</description>
2930
</item>
2931
<item>
2932
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_INHERIT"/></term>
2933
<description>Use parent's cursor.</description>
2934
</item>
2935
</list>
2936
</para>
2937
</param>
2938
<remarks>
2939
<para>
2940
<b>glutSetCursor</b> changes the cursor image of the current window. Each
2941
call requests the window system change the cursor appropriately. The cursor
2942
image when a window is created is <see cref="F:Tao.FreeGlut.Glut.GLUT_CURSOR_INHERIT"/>. The
2943
exact cursor images used are implementation dependent. The intent is for the
2944
image to convey the meaning of the cursor name. For a top-level window,
2945
<i>GLUT_CURSOR_INHERIT</i> uses the default window system cursor.
2946
</para>
2947
<para>
2948
<b>X IMPLEMENTATION NOTES</b>
2949
</para>
2950
<para>
2951
GLUT for X uses SGI's _SGI_CROSSHAIR_CURSOR convention to access a full-screen
2952
cross-hair cursor if possible.
2953
</para>
2954
</remarks>
2955
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
2956
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateSubWindow(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)"/>
2957
</member>
2958
<member name="M:Tao.FreeGlut.Glut.glutWarpPointer(System.Int32,System.Int32)">
2959
<summary>
2960
Warps the pointer's location.
2961
</summary>
2962
<param name="x">
2963
X offset relative to the current window's origin (upper left).
2964
</param>
2965
<param name="y">
2966
Y offset relative to the current window's origin (upper left).
2967
</param>
2968
<remarks>
2969
<para>
2970
<b>glutWarpPointer</b> warps the window system's pointer to a new location
2971
relative to the origin of the current window. The new location will be offset
2972
<i>x</i> pixels on the X axis and <i>y</i> pixels on the Y axis. These
2973
parameters may be negative. The warp is done immediately.
2974
</para>
2975
<para>
2976
If the pointer would be warped outside the screen's frame buffer region, the
2977
location will be clamped to the nearest screen edge. The window system is
2978
allowed to further constrain the pointer's location in window system dependent
2979
ways.
2980
</para>
2981
<para>
2982
The following is good advice that applies to <b>glutWarpPointer</b>: "There is
2983
seldom any reason for calling this function. The pointer should normally be
2984
left to the user." (from Xlib's XWarpPointer man page.)
2985
</para>
2986
</remarks>
2987
<seealso cref="M:Tao.FreeGlut.Glut.glutMotionFunc(Tao.FreeGlut.Glut.MotionCallback)"/>
2988
<seealso cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>
2989
</member>
2990
<member name="M:Tao.FreeGlut.Glut.glutEstablishOverlay">
2991
<summary>
2992
Establishes an overlay (if possible) for the current window.
2993
</summary>
2994
<remarks>
2995
<para>
2996
<b>glutEstablishOverlay</b> establishes an overlay (if possible) for the
2997
current window. The requested display mode for the overlay is determined by
2998
the initial display mode. <c>glutLayerGet(GLUT_OVERLAY_POSSIBLE)</c> can be
2999
called to determine if an overlay is possible for the current window with the
3000
current initial display mode. Do not attempt to establish an overlay when
3001
one is not possible; GLUT will terminate the program.
3002
</para>
3003
<para>
3004
If <b>glutEstablishOverlay</b> is called when an overlay already exists, the
3005
existing overlay is first removed, and then a new overlay is established. The
3006
state of the old overlay's OpenGL context is discarded.
3007
</para>
3008
<para>
3009
The initial display state of an overlay is shown, however the overlay is only
3010
actually shown if the overlay's window is shown.
3011
</para>
3012
<para>
3013
Implicitly, the window's layer in use changes to the overlay immediately after
3014
the overlay is established.
3015
</para>
3016
<para>
3017
<b>EXAMPLE</b>
3018
</para>
3019
<para>
3020
Establishing an overlay is a bit involved, but easy once you get the hang of
3021
it. Here is an example:
3022
</para>
3023
<para>
3024
<code>
3025
int overlaySupport;
3026
int transparent, red, white;
3027
3028
Glut.glutInitDisplayMode(Glut.GLUT_SINGLE | Glut.GLUT_INDEX);
3029
overlaySupport = Glut.glutLayerGet(Glut.GLUT_OVERLAY_POSSIBLE);
3030
3031
if(overlaySupport) {
3032
Glut.glutEstablishOverlay();
3033
Glut.glutHideOverlay();
3034
transparent = Glut.glutLayerGet(Glut.GLUT_TRANSPARENT_INDEX);
3035
Gl.glClearIndex(transparent);
3036
red = (transparent + 1) % Glut.glutGet(Glut.GLUT_WINDOW_COLORMAP_SIZE);
3037
white = (transparent + 2) % Glut.glutGet(Glut.GLUT_WINDOW_COLORMAP_SIZE);
3038
Glut.glutSetColor(red, 1.0f, 0.0f, 0.0f);
3039
Glut.glutSetColor(white, 1.0f, 1.0f, 1.0f);
3040
Glut.glutOverlayDisplayFunc(redrawOverlay);
3041
Glut.glutReshapFunc(reshape);
3042
}
3043
else {
3044
System.Console.WriteLine("Sorry, no nifty overlay support!");
3045
}
3046
</code>
3047
</para>
3048
<para>
3049
If you setup an overlay and you install a reshape callback, you need to update
3050
the viewports and possibly projection matrices of both the normal plane and
3051
the overlay. For example, your reshape callback might look like this:
3052
</para>
3053
<para>
3054
<code>
3055
private void Reshape(int w, int h) {
3056
if(overlaySupport) {
3057
Glut.glutUseLayer(Glut.GLUT_OVERLAY);
3058
Gl.glViewport(0, 0, w, h);
3059
Gl.glMatrixMode(Gl.GL_PROJECTION);
3060
Gl.glLoadIdentity();
3061
Glu.gluOrtho2D(0, w, 0, h);
3062
Gl.glScalef(1, -1, 1);
3063
Gl.glTranslatef(0, -h, 0);
3064
Gl.glMatrixMode(Gl.GL_MODELVIEW);
3065
Glut.glutUseLayer(Glut.GLUT_NORMAL);
3066
}
3067
Gl.glViewport(0, 0, w, h);
3068
}
3069
</code>
3070
</para>
3071
<para>
3072
See <see cref="M:Tao.FreeGlut.Glut.glutOverlayDisplayFunc(Tao.FreeGlut.Glut.OverlayDisplayCallback)"/> for an example showing one way to
3073
write your overlay display callback.
3074
</para>
3075
<para>
3076
<b>X IMPLEMENTATION NOTES</b>
3077
</para>
3078
<para>
3079
GLUT for X uses the SERVER_OVERLAY_VISUALS convention to determine if overlay
3080
visuals are available. While the convention allows for opaque overlays (no
3081
transparency) and overlays with the transparency specified as a bitmask, GLUT
3082
overlay management only provides access to transparent pixel overlays.
3083
</para>
3084
<para>
3085
Until RGBA overlays are better understood, GLUT only supports color index
3086
overlays.
3087
</para>
3088
</remarks>
3089
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
3090
<seealso cref="M:Tao.FreeGlut.Glut.glutLayerGet(System.Int32)"/>
3091
<seealso cref="M:Tao.FreeGlut.Glut.glutOverlayDisplayFunc(Tao.FreeGlut.Glut.OverlayDisplayCallback)"/>
3092
<seealso cref="M:Tao.FreeGlut.Glut.glutPostOverlayRedisplay"/>
3093
<seealso cref="M:Tao.FreeGlut.Glut.glutRemoveOverlay"/>
3094
<seealso cref="M:Tao.FreeGlut.Glut.glutShowOverlay"/>
3095
<seealso cref="M:Tao.FreeGlut.Glut.glutUseLayer(System.Int32)"/>
3096
</member>
3097
<member name="M:Tao.FreeGlut.Glut.glutRemoveOverlay">
3098
<summary>
3099
Removes the overlay (if one exists) from the current window.
3100
</summary>
3101
<remarks>
3102
<para>
3103
<b>glutRemoveOverlay</b> removes the overlay (if one exists). It is safe to
3104
call <b>glutRemoveOverlay</b> even if no overlay is currently established --
3105
it does nothing in this case. Implicitly, the window's layer in use changes
3106
to the normal plane immediately once the overlay is removed.
3107
</para>
3108
<para>
3109
If the program intends to re-establish the overlay later, it is typically
3110
faster and less resource intensive to use <see cref="M:Tao.FreeGlut.Glut.glutHideOverlay"/> and
3111
<see cref="M:Tao.FreeGlut.Glut.glutShowOverlay"/> to simply change the display status of the
3112
overlay.
3113
</para>
3114
</remarks>
3115
<seealso cref="M:Tao.FreeGlut.Glut.glutDestroyWindow(System.Int32)"/>
3116
<seealso cref="M:Tao.FreeGlut.Glut.glutEstablishOverlay"/>
3117
</member>
3118
<member name="M:Tao.FreeGlut.Glut.glutUseLayer(System.Int32)">
3119
<summary>
3120
Changes the layer in use for the current window.
3121
</summary>
3122
<param name="layer">
3123
Either <see cref="F:Tao.FreeGlut.Glut.GLUT_NORMAL"/> or <see cref="F:Tao.FreeGlut.Glut.GLUT_OVERLAY"/>, selecting
3124
the normal plane or overlay respectively.
3125
</param>
3126
<remarks>
3127
<para>
3128
<b>glutUseLayer</b> changes the per-window layer in use for the current
3129
window, selecting either the normal plane or overlay. The overlay should only
3130
be specified if an overlay exists, however windows without an overlay may
3131
still call <c>Glut.glutUseLayer(Glut.GLUT_NORMAL)</c>. OpenGL commands for
3132
the window are directed to the current layer in use.
3133
</para>
3134
<para>
3135
To query the layer in use for a window, call
3136
<c>Glut.glutLayerGet(Glut.GLUT_LAYER_IN_USE)</c>.
3137
</para>
3138
</remarks>
3139
<seealso cref="M:Tao.FreeGlut.Glut.glutEstablishOverlay"/>
3140
<seealso cref="M:Tao.FreeGlut.Glut.glutSetWindow(System.Int32)"/>
3141
</member>
3142
<member name="M:Tao.FreeGlut.Glut.glutPostOverlayRedisplay">
3143
<summary>
3144
Marks the overlay of the current window as needing to be redisplayed.
3145
</summary>
3146
<remarks>
3147
<para>
3148
<b>glutPostOverlayRedisplay</b> marks the overlay of current window as needing
3149
to be redisplayed. The next iteration through <see cref="M:Tao.FreeGlut.Glut.glutMainLoop"/>,
3150
the window's overlay display callback (or simply the display callback if no
3151
overlay display callback is registered) will be called to redisplay the
3152
window's overlay plane. Multiple calls to <b>glutPostOverlayRedisplay</b>
3153
before the next display callback opportunity (or overlay display callback
3154
opportunity if one is registered) generate only a single redisplay.
3155
<b>glutPostOverlayRedisplay</b> may be called within a window's display or
3156
overlay display callback to re-mark that window for redisplay.
3157
</para>
3158
<para>
3159
Logically, overlay damage notification for a window is treated as a
3160
<b>glutPostOverlayRedisplay</b> on the damaged window. Unlike damage reported
3161
by the window system, <b>glutPostOverlayRedisplay</b> will not set to
3162
<c>true</c> the overlay's damaged status (returned by
3163
<c>Glut.glutLayerGet(Glut.GLUT_OVERLAY_DAMAGED)</c>.
3164
</para>
3165
<para>
3166
If the window you want to post an overlay redisplay on is not already current
3167
(and you do not require it to be immediately made current), using
3168
<see cref="M:Tao.FreeGlut.Glut.glutPostWindowOverlayRedisplay(System.Int32)"/> is more efficient than calling
3169
<see cref="M:Tao.FreeGlut.Glut.glutSetWindow(System.Int32)"/> to the desired window and then calling
3170
<b>glutPostOverlayRedisplay</b>.
3171
</para>
3172
<para>
3173
<b>EXAMPLE</b>
3174
</para>
3175
<para>
3176
If you are doing an interactive effect like rubberbanding in the overlay, it
3177
is a good idea to structure your rendering to minimize flicker (most overlays
3178
are single-buffered). Only clear the overlay if you know that the window has
3179
been damaged. Otherwise, try to simply erase what you last drew and redraw
3180
it in an updated position. Here is an example overlay display callback used
3181
to implement overlay rubberbanding:
3182
</para>
3183
<para>
3184
<code>
3185
private void redrawOverlay() {
3186
static int prevStretchX, prevStretchY;
3187
3188
if(Glut.glutLayerGet(Glut.GLUT_OVERLAY_DAMAGED)) {
3189
// Damage means we need a full clear.
3190
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
3191
}
3192
else {
3193
// Undraw last rubber-band.
3194
Gl.glBegin(Gl.GL_LINE_LOOP);
3195
Gl.glVertex2i(anchorX, anchorY);
3196
Gl.glVertex2i(anchorX, prevStretchY);
3197
Gl.glVertex2i(prevStretchX, anchorY);
3198
Gl.glEnd();
3199
}
3200
3201
Gl.glIndexi(red);
3202
Gl.glBegin(Gl.GL_LINE_LOOP);
3203
Gl.glVertex2i(anchorX, anchorY);
3204
Gl.glVertex2i(anchorX, stretchY);
3205
Gl.glVertex2i(stretchX, stretchY);
3206
Gl.glVertex2i(stretchX, anchorY);
3207
Gl.glEnd();
3208
3209
prevStretchX = stretchX;
3210
prevStretchY = stretchY;
3211
}
3212
</code>
3213
</para>
3214
<para>
3215
Notice how <c>Glut.glutLayerGet(Glut.GLUT_OVERLAY_DAMAGED)</c> is used to
3216
determine if a clear needs to take place because of damage; if a clear is
3217
unnecessary, it is faster to just draw the last rubberband using the
3218
transparent pixel.
3219
</para>
3220
<para>
3221
When the application is through with the rubberbanding effect, the best way to
3222
get rid of the rubberband is to simply hide the overlay by calling
3223
<see cref="M:Tao.FreeGlut.Glut.glutHideOverlay"/>.
3224
</para>
3225
</remarks>
3226
<seealso cref="M:Tao.FreeGlut.Glut.glutEstablishOverlay"/>
3227
<seealso cref="M:Tao.FreeGlut.Glut.glutHideOverlay"/>
3228
<seealso cref="M:Tao.FreeGlut.Glut.glutLayerGet(System.Int32)"/>
3229
<seealso cref="M:Tao.FreeGlut.Glut.glutMainLoop"/>
3230
<seealso cref="M:Tao.FreeGlut.Glut.glutPostRedisplay"/>
3231
<seealso cref="M:Tao.FreeGlut.Glut.glutPostWindowOverlayRedisplay(System.Int32)"/>
3232
</member>
3233
<member name="M:Tao.FreeGlut.Glut.glutPostWindowOverlayRedisplay(System.Int32)">
3234
<summary>
3235
Marks the overlay of the specified window as needing to be redisplayed.
3236
</summary>
3237
<param name="win">
3238
Identifier of GLUT window for which to post the overlay redisplay.
3239
</param>
3240
<remarks>
3241
<para>
3242
<b>glutPostWindowOverlayRedisplay</b> marks the overlay of specified window as
3243
needing to be redisplayed. The next iteration through
3244
<see cref="M:Tao.FreeGlut.Glut.glutMainLoop"/>, the window's overlay display callback (or simply
3245
the display callback if no overlay display callback is registered) will be
3246
called to redisplay the window's overlay plane. Multiple calls to
3247
<b>glutPostWindowOverlayRedisplay</b> before the next display callback
3248
opportunity (or overlay display callback opportunity if one is registered)
3249
generate only a single redisplay. <b>glutPostWindowOverlayRedisplay</b> may
3250
be called within a window's display or overlay display callback to re-mark
3251
that window for redisplay.
3252
</para>
3253
<para>
3254
Logically, overlay damage notification for a window is treated as a
3255
<b>glutPostWindowOverlayRedisplay</b> on the damaged window. Unlike damage
3256
reported by the window system, <b>glutPostWindowOverlayRedisplay</b> will not
3257
set to <c>true</c> the overlay's damaged status (returned by
3258
<c>Glut.glutLayerGet(Glut.GLUT_OVERLAY_DAMAGED)</c>.
3259
</para>
3260
<para>
3261
If the window you want to post an overlay redisplay on is not already current
3262
(and you do not require it to be immediately made current), using
3263
<b>glutPostWindowOverlayRedisplay</b> is more efficient than calling
3264
<see cref="M:Tao.FreeGlut.Glut.glutSetWindow(System.Int32)"/> to the desired window and then calling
3265
<see cref="M:Tao.FreeGlut.Glut.glutPostOverlayRedisplay"/>.
3266
</para>
3267
</remarks>
3268
<seealso cref="M:Tao.FreeGlut.Glut.glutEstablishOverlay"/>
3269
<seealso cref="M:Tao.FreeGlut.Glut.glutHideOverlay"/>
3270
<seealso cref="M:Tao.FreeGlut.Glut.glutLayerGet(System.Int32)"/>
3271
<seealso cref="M:Tao.FreeGlut.Glut.glutMainLoop"/>
3272
<seealso cref="M:Tao.FreeGlut.Glut.glutPostOverlayRedisplay"/>
3273
<seealso cref="M:Tao.FreeGlut.Glut.glutPostRedisplay"/>
3274
</member>
3275
<member name="M:Tao.FreeGlut.Glut.glutShowOverlay">
3276
<summary>
3277
Shows the overlay of the current window.
3278
</summary>
3279
<remarks>
3280
<b>glutShowOverlay</b> shows the overlay of the current window. The effect of
3281
showing an overlay takes place immediately. Note that <b>glutShowOverlay</b>
3282
will not actually display the overlay unless the window is also shown (and
3283
even a shown window may be obscured by other windows, thereby obscuring the
3284
overlay). It is typically faster and less resource intensive to use these
3285
routines to control the display status of an overlay as opposed to removing
3286
and re-establishing the overlay.
3287
</remarks>
3288
<seealso cref="M:Tao.FreeGlut.Glut.glutEstablishOverlay"/>
3289
<seealso cref="M:Tao.FreeGlut.Glut.glutHideOverlay"/>
3290
<seealso cref="M:Tao.FreeGlut.Glut.glutShowWindow"/>
3291
</member>
3292
<member name="M:Tao.FreeGlut.Glut.glutHideOverlay">
3293
<summary>
3294
Hides the overlay of the current window.
3295
</summary>
3296
<remarks>
3297
<b>glutHideOverlay</b> hides the overlay of the current window. The effect of
3298
hiding an overlay takes place immediately. It is typically faster and less
3299
resource intensive to use these routines to control the display status of an
3300
overlay as opposed to removing and re-establishing the overlay.
3301
</remarks>
3302
<seealso cref="M:Tao.FreeGlut.Glut.glutEstablishOverlay"/>
3303
<seealso cref="M:Tao.FreeGlut.Glut.glutShowOverlay"/>
3304
<seealso cref="M:Tao.FreeGlut.Glut.glutShowWindow"/>
3305
</member>
3306
<member name="M:Tao.FreeGlut.Glut.glutDestroyMenu(System.Int32)">
3307
<summary>
3308
Destroys the specified menu.
3309
</summary>
3310
<param name="menu">
3311
The identifier of the menu to destroy.
3312
</param>
3313
<remarks>
3314
<b>glutDestroyMenu</b> destroys the specified menu by <i>menu</i>. If
3315
<i>menu</i> was the current menu, the current menu becomes invalid and
3316
<see cref="M:Tao.FreeGlut.Glut.glutGetMenu"/> will return zero.
3317
</remarks>
3318
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateMenu(Tao.FreeGlut.Glut.CreateMenuCallback)"/>
3319
<seealso cref="M:Tao.FreeGlut.Glut.glutGetMenu"/>
3320
</member>
3321
<member name="M:Tao.FreeGlut.Glut.glutGetMenu">
3322
<summary>
3323
Returns the identifier of the current menu.
3324
</summary>
3325
<returns>
3326
Returns the identifier of the current menu. If no menus exist or the previous
3327
current menu was destroyed, <b>glutGetMenu</b> returns zero.
3328
</returns>
3329
<remarks>
3330
Returns the identifier of the current menu. If no menus exist or the previous
3331
current menu was destroyed, <b>glutGetMenu</b> returns zero.
3332
</remarks>
3333
<seealso cref="M:Tao.FreeGlut.Glut.glutSetMenu(System.Int32)"/>
3334
</member>
3335
<member name="M:Tao.FreeGlut.Glut.glutSetMenu(System.Int32)">
3336
<summary>
3337
Sets the current menu.
3338
</summary>
3339
<param name="menu">
3340
The identifier of the menu to make the current menu.
3341
</param>
3342
<remarks>
3343
<b>glutSetMenu</b> sets the current menu.
3344
</remarks>
3345
<seealso cref="M:Tao.FreeGlut.Glut.glutGetMenu"/>
3346
</member>
3347
<member name="M:Tao.FreeGlut.Glut.glutAddMenuEntry(System.String,System.Int32)">
3348
<summary>
3349
Adds a menu entry to the bottom of the current menu.
3350
</summary>
3351
<param name="name">
3352
string to display in the menu entry.
3353
</param>
3354
<param name="val">
3355
Value to return to the menu's callback function if the menu entry is selected.
3356
</param>
3357
<remarks>
3358
<b>glutAddMenuEntry</b> adds a menu entry to the bottom of the current menu.
3359
The string <i>name</i> will be displayed for the newly added menu entry. If
3360
the menu entry is selected by the user, the menu's callback will be called
3361
passing <i>val</i> as the callback's parameter.
3362
</remarks>
3363
<seealso cref="M:Tao.FreeGlut.Glut.glutAddSubMenu(System.String,System.Int32)"/>
3364
<seealso cref="M:Tao.FreeGlut.Glut.glutChangeToMenuEntry(System.Int32,System.String,System.Int32)"/>
3365
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateMenu(Tao.FreeGlut.Glut.CreateMenuCallback)"/>
3366
<seealso cref="M:Tao.FreeGlut.Glut.glutRemoveMenuItem(System.Int32)"/>
3367
</member>
3368
<member name="M:Tao.FreeGlut.Glut.glutAddSubMenu(System.String,System.Int32)">
3369
<summary>
3370
Adds a sub-menu trigger to the bottom of the current menu.
3371
</summary>
3372
<param name="name">
3373
string to display in the menu item from which to cascade the sub-menu.
3374
</param>
3375
<param name="menu">
3376
Identifier of the menu to cascade from this sub-menu menu item.
3377
</param>
3378
<remarks>
3379
<b>glutAddSubMenu</b> adds a sub-menu trigger to the bottom of the current
3380
menu. The string <i>name</i> will be displayed for the newly added sub-menu
3381
trigger. If the sub-menu trigger is entered, the sub-menu numbered
3382
<i>menu</i> will be cascaded, allowing sub-menu menu items to be selected.
3383
</remarks>
3384
<seealso cref="M:Tao.FreeGlut.Glut.glutAddMenuEntry(System.String,System.Int32)"/>
3385
<seealso cref="M:Tao.FreeGlut.Glut.glutChangeToSubMenu(System.Int32,System.String,System.Int32)"/>
3386
<seealso cref="M:Tao.FreeGlut.Glut.glutRemoveMenuItem(System.Int32)"/>
3387
</member>
3388
<member name="M:Tao.FreeGlut.Glut.glutChangeToMenuEntry(System.Int32,System.String,System.Int32)">
3389
<summary>
3390
Changes the specified menu item in the current menu into a menu entry.
3391
</summary>
3392
<param name="entry">
3393
Index into the menu items of the current menu (1 is the topmost menu item).
3394
</param>
3395
<param name="name">
3396
string to display in the menu entry.
3397
</param>
3398
<param name="val">
3399
Value to return to the menu's callback function if the menu entry is selected.
3400
</param>
3401
<remarks>
3402
<b>glutChangeToMenuEntry</b> changes the specified menu entry in the current
3403
menu into a menu entry. The <i>entry</i> parameter determines which menu item
3404
should be changed, with one being the topmost item. <i>entry</i> must be
3405
between 1 and <c>Glut.glutGet(Glut.GLUT_MENU_NUM_ITEMS)</c> inclusive. The
3406
menu item to change does not have to be a menu entry already. The string
3407
<i>name</i> will be displayed for the newly changed menu entry. The
3408
<i>val</i> will be returned to the menu's callback if this menu entry is
3409
selected.
3410
</remarks>
3411
<seealso cref="M:Tao.FreeGlut.Glut.glutAddMenuEntry(System.String,System.Int32)"/>
3412
<seealso cref="M:Tao.FreeGlut.Glut.glutChangeToSubMenu(System.Int32,System.String,System.Int32)"/>
3413
<seealso cref="M:Tao.FreeGlut.Glut.glutRemoveMenuItem(System.Int32)"/>
3414
</member>
3415
<member name="M:Tao.FreeGlut.Glut.glutChangeToSubMenu(System.Int32,System.String,System.Int32)">
3416
<summary>
3417
Changes the specified menu item in the current menu into a sub-menu trigger.
3418
</summary>
3419
<param name="entry">
3420
Index into the menu items of the current menu (1 is the topmost menu item).
3421
</param>
3422
<param name="name">
3423
string to display in the menu item to cascade the sub-menu from.
3424
</param>
3425
<param name="menu">
3426
Identifier of the menu to cascade from this sub-menu menu item.
3427
</param>
3428
<remarks>
3429
<b>glutChangeToSubMenu</b> changes the specified menu item in the current menu
3430
into a sub-menu trigger. The <i>entry</i> parameter determines which menu
3431
item should be changed, with one being the topmost item. <i>entry</i> must be
3432
between 1 and <c>Glut.glutGet(Glut.GLUT_MENU_NUM_ITEMS)</c> inclusive. The
3433
menu item to change does not have to be a sub-menu trigger already. The
3434
string <i>name</i> will be displayed for the newly changed sub-menu trigger.
3435
The <i>menu</i> identifier names the sub-menu to cascade from the newly added
3436
sub-menu trigger.
3437
</remarks>
3438
<seealso cref="M:Tao.FreeGlut.Glut.glutAddSubMenu(System.String,System.Int32)"/>
3439
<seealso cref="M:Tao.FreeGlut.Glut.glutChangeToMenuEntry(System.Int32,System.String,System.Int32)"/>
3440
<seealso cref="M:Tao.FreeGlut.Glut.glutRemoveMenuItem(System.Int32)"/>
3441
</member>
3442
<member name="M:Tao.FreeGlut.Glut.glutRemoveMenuItem(System.Int32)">
3443
<summary>
3444
Removes the specified menu item.
3445
</summary>
3446
<param name="entry">
3447
Index into the menu items of the current menu (1 is the topmost menu item).
3448
</param>
3449
<remarks>
3450
<b>glutRemoveMenuItem</b> remove the entry menu item regardless of whether it
3451
is a menu entry or sub-menu trigger. <i>entry</i> must be between 1 and
3452
<c>Glut.glutGet(Glut.GLUT_MENU_NUM_ITEMS)</c> inclusive. Menu items below
3453
the removed menu item are renumbered.
3454
</remarks>
3455
<seealso cref="M:Tao.FreeGlut.Glut.glutAddMenuEntry(System.String,System.Int32)"/>
3456
<seealso cref="M:Tao.FreeGlut.Glut.glutAddSubMenu(System.String,System.Int32)"/>
3457
<seealso cref="M:Tao.FreeGlut.Glut.glutChangeToMenuEntry(System.Int32,System.String,System.Int32)"/>
3458
<seealso cref="M:Tao.FreeGlut.Glut.glutChangeToSubMenu(System.Int32,System.String,System.Int32)"/>
3459
</member>
3460
<member name="M:Tao.FreeGlut.Glut.glutAttachMenu(System.Int32)">
3461
<summary>
3462
Attaches a mouse button for the current window to the identifier of the current
3463
menu.
3464
</summary>
3465
<param name="button">
3466
The button to attach a menu.
3467
</param>
3468
<remarks>
3469
<b>glutAttachMenu</b> attaches a mouse button for the current window to the
3470
identifier of the current menu. By attaching a menu identifier to a button,
3471
the named menu will be popped up when the user presses the specified button.
3472
<i>button</i> should be one of <see cref="F:Tao.FreeGlut.Glut.GLUT_LEFT_BUTTON"/>,
3473
<see cref="F:Tao.FreeGlut.Glut.GLUT_MIDDLE_BUTTON"/>, and <see cref="F:Tao.FreeGlut.Glut.GLUT_RIGHT_BUTTON"/>.
3474
Note that the menu is attached to the button by identifier, not by reference.
3475
</remarks>
3476
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateMenu(Tao.FreeGlut.Glut.CreateMenuCallback)"/>
3477
<seealso cref="M:Tao.FreeGlut.Glut.glutDetachMenu(System.Int32)"/>
3478
<seealso cref="M:Tao.FreeGlut.Glut.glutMenuStatusFunc(Tao.FreeGlut.Glut.MenuStatusCallback)"/>
3479
<seealso cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>
3480
</member>
3481
<member name="M:Tao.FreeGlut.Glut.glutDetachMenu(System.Int32)">
3482
<summary>
3483
Detaches an attached mouse button from the current window.
3484
</summary>
3485
<param name="button">
3486
The button to detach a menu.
3487
</param>
3488
<remarks>
3489
<b>glutDetachMenu</b> detaches an attached mouse button from the current
3490
window. <i>button</i> should be one of <see cref="F:Tao.FreeGlut.Glut.GLUT_LEFT_BUTTON"/>,
3491
<see cref="F:Tao.FreeGlut.Glut.GLUT_MIDDLE_BUTTON"/>, and <see cref="F:Tao.FreeGlut.Glut.GLUT_RIGHT_BUTTON"/>. Note
3492
that the menu is attached to the button by identifier, not by reference.
3493
</remarks>
3494
<seealso cref="M:Tao.FreeGlut.Glut.glutAttachMenu(System.Int32)"/>
3495
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateMenu(Tao.FreeGlut.Glut.CreateMenuCallback)"/>
3496
<seealso cref="M:Tao.FreeGlut.Glut.glutDetachMenu(System.Int32)"/>
3497
<seealso cref="M:Tao.FreeGlut.Glut.glutMenuStatusFunc(Tao.FreeGlut.Glut.MenuStatusCallback)"/>
3498
<seealso cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>
3499
</member>
3500
<member name="M:Tao.FreeGlut.Glut.glutCreateMenu(Tao.FreeGlut.Glut.CreateMenuCallback)">
3501
<summary>
3502
Creates a new pop-up menu.
3503
</summary>
3504
<param name="func">
3505
The callback function for the menu that is called when a menu entry from the
3506
menu is selected. The value passed to the callback is determined by the value
3507
for the selected menu entry. See <see cref="T:Tao.FreeGlut.Glut.CreateMenuCallback"/>.
3508
</param>
3509
<returns>
3510
Returns a unique small integer identifier. The range of allocated identifiers
3511
starts at one. The menu identifier range is separate from the window
3512
identifier range.
3513
</returns>
3514
<remarks>
3515
<para>
3516
<b>glutCreateMenu</b> creates a new pop-up menu and returns a unique small
3517
integer identifier. The range of allocated identifiers starts at one. The
3518
menu identifier range is separate from the window identifier range.
3519
Implicitly, the current menu is set to the newly created menu. This menu
3520
identifier can be used when calling <see cref="M:Tao.FreeGlut.Glut.glutSetMenu(System.Int32)"/>.
3521
</para>
3522
<para>
3523
When the menu callback is called because a menu entry is selected for the
3524
menu, the current menu will be implicitly set to the menu with the selected
3525
entry before the callback is made.
3526
</para>
3527
<para>
3528
<b>EXAMPLE</b>
3529
</para>
3530
<para>
3531
Here is a quick example of how to create a GLUT popup menu with two submenus
3532
and attach it to the right button of the current window:
3533
</para>
3534
<para>
3535
<code>
3536
int submenu1, submenu2;
3537
3538
submenu1 = Glut.glutCreateMenu(selectMessage);
3539
Glut.glutAddMenuEntry("abc", 1);
3540
Glut.glutAddMenuEntry("ABC", 2);
3541
3542
submenu2 = Glut.glutCreateMenu(selectColor);
3543
Glut.glutAddMenuEntry("Green", 1);
3544
Glut.glutAddMenuEntry("Red", 2);
3545
Glut.glutAddMenuEntry("White", 3);
3546
3547
Glut.glutCreateMenu(selectFont);
3548
Glut.glutAddMenuEntry("9 by 15", 0);
3549
Glut.glutAddMenuEntry("Times Roman 10", 1);
3550
Glut.glutAddMenuEntry("Times Roman 24", 2);
3551
Glut.glutAddSubMenu("Messages", submenu1);
3552
Glut.glutAddSubMenu("Color", submenu2);
3553
Glut.glutAttachMenu(Glut.GLUT_RIGHT_BUTTON);
3554
</code>
3555
</para>
3556
<para>
3557
<b>X IMPLEMENTATION NOTES</b>
3558
</para>
3559
<para>
3560
If available, GLUT for X will take advantage of overlay planes for
3561
implementing pop-up menus. The use of overlay planes can eliminate display
3562
callbacks when pop-up menus are deactivated. The SERVER_OVERLAY_VISUALS
3563
convention is used to determine if overlay visuals are available.
3564
</para>
3565
</remarks>
3566
<seealso cref="T:Tao.FreeGlut.Glut.CreateMenuCallback"/>
3567
<seealso cref="M:Tao.FreeGlut.Glut.glutAttachMenu(System.Int32)"/>
3568
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
3569
<seealso cref="M:Tao.FreeGlut.Glut.glutDestroyMenu(System.Int32)"/>
3570
<seealso cref="M:Tao.FreeGlut.Glut.glutSetMenu(System.Int32)"/>
3571
</member>
3572
<member name="M:Tao.FreeGlut.Glut.glutDisplayFunc(Tao.FreeGlut.Glut.DisplayCallback)">
3573
<summary>
3574
Sets the display callback for the current window.
3575
</summary>
3576
<param name="func">
3577
The new display callback function. See <see cref="T:Tao.FreeGlut.Glut.DisplayCallback"/>.
3578
</param>
3579
<remarks>
3580
<para>
3581
<b>glutDisplayFunc</b> sets the display callback for the current window. When
3582
GLUT determines that the normal plane for the window needs to be redisplayed,
3583
the display callback for the window is called. Before the callback, the
3584
current window is set to the window needing to be redisplayed and (if no
3585
overlay display callback is registered) the layer in use is set to the normal
3586
plane. The display callback is called with no parameters. The entire normal
3587
plane region should be redisplayed in response to the callback (this includes
3588
ancillary buffers if your program depends on their state).
3589
</para>
3590
<para>
3591
GLUT determines when the display callback should be triggered based on the
3592
window's redisplay state. The redisplay state for a window can be either set
3593
explicitly by calling <see cref="M:Tao.FreeGlut.Glut.glutPostRedisplay"/> or implicitly as the
3594
result of window damage reported by the window system. Multiple posted
3595
redisplays for a window are coalesced by GLUT to minimize the number of
3596
display callbacks called.
3597
</para>
3598
<para>
3599
When an overlay is established for a window, but there is no overlay display
3600
callback registered, the display callback is used for redisplaying both the
3601
overlay and normal plane (that is, it will be called if either the redisplay
3602
state or overlay redisplay state is set). In this case, the layer in use is
3603
not implicitly changed on entry to the display callback.
3604
</para>
3605
<para>
3606
See <see cref="M:Tao.FreeGlut.Glut.glutOverlayDisplayFunc(Tao.FreeGlut.Glut.OverlayDisplayCallback)"/> to understand how distinct callbacks
3607
for the overlay and normal plane of a window may be established.
3608
</para>
3609
<para>
3610
When a window is created, no display callback exists for the window. It is
3611
the responsibility of the programmer to install a display callback for the
3612
window before the window is shown. A display callback must be registered for
3613
any window that is shown. If a window becomes displayed without a display
3614
callback being registered, a fatal error occurs. Passing <c>null</c> to
3615
<b>glutDisplayFunc</b> is illegal as of GLUT 3.0; there is no way to
3616
"deregister" a display callback (though another callback routine can always be
3617
registered).
3618
</para>
3619
<para>
3620
Upon return from the display callback, the normal damaged state of the window
3621
(returned by calling <c>Glut.glutLayerGet(Glut.GLUT_NORMAL_DAMAGED)</c> is
3622
cleared. If there is no overlay display callback registered the overlay
3623
damaged state of the window (returned by calling
3624
<c>Glut.glutLayerGet(Glut.GLUT_OVERLAY_DAMAGED)</c> is also cleared.
3625
</para>
3626
</remarks>
3627
<seealso cref="T:Tao.FreeGlut.Glut.DisplayCallback"/>
3628
<seealso cref="M:Tao.FreeGlut.Glut.glutLayerGet(System.Int32)"/>
3629
<seealso cref="M:Tao.FreeGlut.Glut.glutOverlayDisplayFunc(Tao.FreeGlut.Glut.OverlayDisplayCallback)"/>
3630
</member>
3631
<member name="M:Tao.FreeGlut.Glut.glutReshapeFunc(Tao.FreeGlut.Glut.ReshapeCallback)">
3632
<summary>
3633
Sets the reshape callback for the current window.
3634
</summary>
3635
<param name="func">
3636
The new reshape callback function. See <see cref="T:Tao.FreeGlut.Glut.ReshapeCallback"/>.
3637
</param>
3638
<remarks>
3639
<para>
3640
<b>glutReshapeFunc</b> sets the reshape callback for the current window. The
3641
reshape callback is triggered when a window is reshaped. A reshape callback
3642
is also triggered immediately before a window's first display callback after a
3643
window is created or whenever an overlay for the window is established. The
3644
<i>width</i> and <i>height</i> parameters of the callback specify the new
3645
window size in pixels. Before the callback, the current window is set to the
3646
window that has been reshaped.
3647
</para>
3648
<para>
3649
If a reshape callback is not registered for a window or <c>null</c> is passed
3650
to <b>glutReshapeFunc</b> (to deregister a previously registered callback),
3651
the default reshape callback is used. This default callback will simply call
3652
<c>Gl.glViewport(0, 0, width, height)</c> on the normal plane (and on the
3653
overlay if one exists).
3654
</para>
3655
<para>
3656
If an overlay is established for the window, a single reshape callback is
3657
generated. It is the callback's responsibility to update both the normal
3658
plane and overlay for the window (changing the layer in use as necessary).
3659
</para>
3660
<para>
3661
When a top-level window is reshaped, subwindows are not reshaped. It is up to
3662
the GLUT program to manage the size and positions of subwindows within a
3663
top-level window. Still, reshape callbacks will be triggered for subwindows
3664
when their size is changed using <see cref="M:Tao.FreeGlut.Glut.glutReshapeWindow(System.Int32,System.Int32)"/>.
3665
</para>
3666
</remarks>
3667
<seealso cref="T:Tao.FreeGlut.Glut.ReshapeCallback"/>
3668
<seealso cref="M:Tao.FreeGlut.Glut.glutReshapeWindow(System.Int32,System.Int32)"/>
3669
</member>
3670
<member name="M:Tao.FreeGlut.Glut.glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)">
3671
<summary>
3672
Sets the keyboard callback for the current window.
3673
</summary>
3674
<param name="func">
3675
The new keyboard callback function. See <see cref="T:Tao.FreeGlut.Glut.KeyboardCallback"/>.
3676
</param>
3677
<remarks>
3678
<para>
3679
<b>glutKeyboardFunc</b> sets the keyboard callback for the current window.
3680
When a user types into the window, each key press generating an ASCII
3681
character will generate a keyboard callback. The <i>key</i> callback
3682
parameter is the generated ASCII character. The state of modifier keys such
3683
as Shift cannot be determined directly; their only effect will be on the
3684
returned ASCII data. The <i>x</i> and <i>y</i> callback parameters indicate
3685
the mouse location in window relative coordinates when the key was pressed.
3686
When a new window is created, no keyboard callback is initially registered,
3687
and ASCII key strokes in the window are ignored. Passing <c>null</c> to
3688
<b>glutKeyboardFunc</b> disables the generation of keyboard callbacks.
3689
</para>
3690
<para>
3691
During a keyboard callback, <see cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/> may be called to
3692
determine the state of modifier keys when the keystroke generating the
3693
callback occurred.
3694
</para>
3695
<para>
3696
Also, see <see cref="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)"/> for a means to detect non-ASCII key
3697
strokes.
3698
</para>
3699
</remarks>
3700
<seealso cref="T:Tao.FreeGlut.Glut.KeyboardCallback"/>
3701
<seealso cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/>
3702
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)"/>
3703
</member>
3704
<member name="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)">
3705
<summary>
3706
Sets the mouse callback for the current window.
3707
</summary>
3708
<param name="func">
3709
The new mouse callback function. See <see cref="T:Tao.FreeGlut.Glut.MouseCallback"/>.
3710
</param>
3711
<remarks>
3712
<para>
3713
<b>glutMouseFunc</b> sets the mouse callback for the current window. When a
3714
user presses and releases mouse buttons in the window, each press and each
3715
release generates a mouse callback. The <i>button</i> parameter is one of
3716
<see cref="F:Tao.FreeGlut.Glut.GLUT_LEFT_BUTTON"/>, <see cref="F:Tao.FreeGlut.Glut.GLUT_MIDDLE_BUTTON"/>, or
3717
<see cref="F:Tao.FreeGlut.Glut.GLUT_RIGHT_BUTTON"/>. For systems with only two mouse buttons, it
3718
may not be possible to generate the <i>GLUT_MIDDLE_BUTTON</i> callback. For
3719
systems with a single mouse button, it may be possible to generate only a
3720
<i>GLUT_LEFT_BUTTON</i> callback. The <i>state</i> parameter is either
3721
<see cref="F:Tao.FreeGlut.Glut.GLUT_UP"/> or <see cref="F:Tao.FreeGlut.Glut.GLUT_DOWN"/> indicating whether the
3722
callback was due to a release or press respectively. The <i>x</i> and
3723
<i>y</i> callback parameters indicate the window relative coordinates when the
3724
mouse button state changed. If a <i>GLUT_DOWN</i> callback for a specific
3725
button is triggered, the program can assume a <i>GLUT_UP</i> callback for the
3726
same button will be generated (assuming the window still has a mouse callback
3727
registered) when the mouse button is released even if the mouse has moved
3728
outside the window.
3729
</para>
3730
<para>
3731
If a menu is attached to a button for a window, mouse callbacks will not be
3732
generated for that button.
3733
</para>
3734
<para>
3735
During a mouse callback, <see cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/> may be called to
3736
determine the state of modifier keys when the mouse event generating the
3737
callback occurred.
3738
</para>
3739
<para>
3740
Passing <c>null</c> to <b>glutMouseFunc</b> disables the generation of mouse
3741
callbacks.
3742
</para>
3743
</remarks>
3744
<seealso cref="T:Tao.FreeGlut.Glut.MouseCallback"/>
3745
<seealso cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/>
3746
</member>
3747
<member name="M:Tao.FreeGlut.Glut.glutMotionFunc(Tao.FreeGlut.Glut.MotionCallback)">
3748
<summary>
3749
Sets the motion callbacks for the current window.
3750
</summary>
3751
<param name="func">
3752
The new motion callback function. See <see cref="T:Tao.FreeGlut.Glut.MotionCallback"/>.
3753
</param>
3754
<remarks>
3755
<para>
3756
<b>glutMotionFunc</b> sets the motion callback for the current window. The
3757
motion callback for a window is called when the mouse moves within the window
3758
while one or more mouse buttons are pressed.
3759
</para>
3760
<para>
3761
The <i>x</i> and <i>y</i> callback parameters indicate the mouse location in
3762
window relative coordinates.
3763
</para>
3764
<para>
3765
Passing <c>null</c> to <b>glutMotionFunc</b> disables the generation of the
3766
motion callback.
3767
</para>
3768
</remarks>
3769
<seealso cref="T:Tao.FreeGlut.Glut.MotionCallback"/>
3770
<seealso cref="M:Tao.FreeGlut.Glut.glutPassiveMotionFunc(Tao.FreeGlut.Glut.PassiveMotionCallback)"/>
3771
</member>
3772
<member name="M:Tao.FreeGlut.Glut.glutPassiveMotionFunc(Tao.FreeGlut.Glut.PassiveMotionCallback)">
3773
<summary>
3774
Sets the passive motion callbacks for the current window.
3775
</summary>
3776
<param name="func">
3777
The new passive motion callback function. See
3778
<see cref="T:Tao.FreeGlut.Glut.PassiveMotionCallback"/>.
3779
</param>
3780
<remarks>
3781
<para>
3782
<b>glutPassiveMotionFunc</b> sets the passive motion callback for the current
3783
window. The passive motion callback for a window is called when the mouse
3784
moves within the window while no mouse buttons are pressed.
3785
</para>
3786
<para>
3787
The <i>x</i> and <i>y</i> callback parameters indicate the mouse location in
3788
window relative coordinates.
3789
</para>
3790
<para>
3791
Passing <c>null</c> to <b>glutPassiveMotionFunc</b> disables the generation of
3792
the passive motion callback.
3793
</para>
3794
</remarks>
3795
<seealso cref="T:Tao.FreeGlut.Glut.PassiveMotionCallback"/>
3796
<seealso cref="M:Tao.FreeGlut.Glut.glutMotionFunc(Tao.FreeGlut.Glut.MotionCallback)"/>
3797
</member>
3798
<member name="M:Tao.FreeGlut.Glut.glutEntryFunc(Tao.FreeGlut.Glut.EntryCallback)">
3799
<summary>
3800
Sets the mouse enter/leave callback for the current window.
3801
</summary>
3802
<param name="func">
3803
The new entry callback function. See <see cref="T:Tao.FreeGlut.Glut.EntryCallback"/>.
3804
</param>
3805
<remarks>
3806
<para>
3807
<b>glutEntryFunc</b> sets the mouse enter/leave callback for the current
3808
window. The state callback parameter is either <see cref="F:Tao.FreeGlut.Glut.GLUT_LEFT"/> or
3809
<see cref="F:Tao.FreeGlut.Glut.GLUT_ENTERED"/> depending on if the mouse pointer has last left or
3810
entered the window.
3811
</para>
3812
<para>
3813
Passing <c>null</c> to <b>glutEntryFunc</b> disables the generation of the
3814
mouse enter/leave callback.
3815
</para>
3816
<para>
3817
Some window systems may not generate accurate enter/leave callbacks.
3818
</para>
3819
</remarks>
3820
<seealso cref="T:Tao.FreeGlut.Glut.EntryCallback"/>
3821
</member>
3822
<member name="M:Tao.FreeGlut.Glut.glutVisibilityFunc(Tao.FreeGlut.Glut.VisibilityCallback)">
3823
<summary>
3824
Sets the visibility callback for the current window.
3825
</summary>
3826
<param name="func">
3827
The new visibility callback function. See <see cref="T:Tao.FreeGlut.Glut.VisibilityCallback"/>.
3828
</param>
3829
<remarks>
3830
<para>
3831
<b>glutVisibilityFunc</b> sets the visibility callback for the current window.
3832
The visibility callback for a window is called when the visibility of a
3833
window changes. The state callback parameter is either
3834
<see cref="F:Tao.FreeGlut.Glut.GLUT_NOT_VISIBLE"/> or <see cref="F:Tao.FreeGlut.Glut.GLUT_VISIBLE"/> depending on
3835
the current visibility of the window. <i>GLUT_VISIBLE</i> does not
3836
distinguish a window being totally versus partially visible.
3837
<i>GLUT_NOT_VISIBLE</i> means no part of the window is visible, i.e., until
3838
the window's visibility changes, all further rendering to the window is
3839
discarded.
3840
</para>
3841
<para>
3842
GLUT considers a window visible if any pixel of the window is visible or any
3843
pixel of any descendant window is visible on the screen.
3844
</para>
3845
<para>
3846
Passing <c>null</c> to <b>glutVisibilityFunc</b> disables the generation of
3847
the visibility callback.
3848
</para>
3849
<para>
3850
If the visibility callback for a window is disabled and later re-enabled, the
3851
visibility status of the window is undefined; any change in window visibility
3852
will be reported, that is if you disable a visibility callback and re-enable
3853
the callback, you are guaranteed the next visibility change will be reported.
3854
</para>
3855
</remarks>
3856
<seealso cref="T:Tao.FreeGlut.Glut.VisibilityCallback"/>
3857
</member>
3858
<member name="M:Tao.FreeGlut.Glut.glutIdleFunc(Tao.FreeGlut.Glut.IdleCallback)">
3859
<summary>
3860
Sets the global idle callback.
3861
</summary>
3862
<param name="func">
3863
The new idle callback function. See <see cref="T:Tao.FreeGlut.Glut.IdleCallback"/>.
3864
</param>
3865
<remarks>
3866
<para>
3867
<b>glutIdleFunc</b> sets the global idle callback to be func so a GLUT program
3868
can perform background processing tasks or continuous animation when window
3869
system events are not being received. If enabled, the idle callback is
3870
continuously called when events are not being received. The callback routine
3871
has no parameters. The current window and current menu will not be changed
3872
before the idle callback. Programs with multiple windows and/or menus should
3873
explicitly set the current window and/or current menu and not rely on its
3874
current setting.
3875
</para>
3876
<para>
3877
The amount of computation and rendering done in an idle callback should be
3878
minimized to avoid affecting the program's interactive response. In general,
3879
not more than a single frame of rendering should be done in an idle callback.
3880
</para>
3881
<para>
3882
Passing <c>null</c> to <b>glutIdleFunc</b> disables the generation of the idle
3883
callback.
3884
</para>
3885
</remarks>
3886
<seealso cref="T:Tao.FreeGlut.Glut.IdleCallback"/>
3887
</member>
3888
<member name="M:Tao.FreeGlut.Glut.glutTimerFunc(System.Int32,Tao.FreeGlut.Glut.TimerCallback,System.Int32)">
3889
<summary>
3890
Registers a timer callback to be triggered in a specified number of milliseconds.
3891
</summary>
3892
<param name="msecs">
3893
The number of milliseconds between calls to the timer callback.
3894
</param>
3895
<param name="func">
3896
The new timer callback function. See <see cref="T:Tao.FreeGlut.Glut.TimerCallback"/>.
3897
</param>
3898
<param name="val">
3899
The value to be passed to the timer callback.
3900
</param>
3901
<remarks>
3902
<para>
3903
<b>glutTimerFunc</b> registers the timer callback <i>func</i> to be triggered
3904
in at least <i>msecs</i> milliseconds. The <i>val</i> parameter to the timer
3905
callback will be the value of the <i>val</i> parameter to
3906
<b>glutTimerFunc</b>. Multiple timer callbacks at same or differing times may
3907
be registered simultaneously.
3908
</para>
3909
<para>
3910
The number of milliseconds is a lower bound on the time before the callback is
3911
generated. GLUT attempts to deliver the timer callback as soon as possible
3912
after the expiration of the callback's time interval.
3913
</para>
3914
<para>
3915
There is no support for canceling a registered callback. Instead, ignore a
3916
callback based on its <i>val</i> parameter when it is triggered.
3917
</para>
3918
</remarks>
3919
<seealso cref="T:Tao.FreeGlut.Glut.TimerCallback"/>
3920
</member>
3921
<member name="M:Tao.FreeGlut.Glut.glutMenuStateFunc(Tao.FreeGlut.Glut.MenuStateCallback)">
3922
<summary>
3923
A deprecated version of the <see cref="M:Tao.FreeGlut.Glut.glutMenuStatusFunc(Tao.FreeGlut.Glut.MenuStatusCallback)"/> routine.
3924
</summary>
3925
<param name="func">
3926
The new menu state callback function. <see cref="T:Tao.FreeGlut.Glut.MenuStateCallback"/>.
3927
</param>
3928
<remarks>
3929
The only difference is <b>glutMenuStateFunc</b> callback prototype does not
3930
deliver the two additional <i>x</i> and <i>y</i> coordinates.
3931
</remarks>
3932
<seealso cref="T:Tao.FreeGlut.Glut.MenuStateCallback"/>
3933
<seealso cref="T:Tao.FreeGlut.Glut.MenuStatusCallback"/>
3934
<seealso cref="M:Tao.FreeGlut.Glut.glutMenuStatusFunc(Tao.FreeGlut.Glut.MenuStatusCallback)"/>
3935
</member>
3936
<member name="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)">
3937
<summary>
3938
Sets the special keyboard callback for the current window.
3939
</summary>
3940
<param name="func">
3941
The new special callback function. See <see cref="T:Tao.FreeGlut.Glut.SpecialCallback"/>.
3942
</param>
3943
<remarks>
3944
<para>
3945
<b>glutSpecialFunc</b> sets the special keyboard callback for the current
3946
window. The special keyboard callback is triggered when keyboard function or
3947
directional keys are pressed. The <i>key</i> callback parameter is a
3948
GLUT_KEY_* constant for the special key pressed. The <i>x</i> and <i>y</i>
3949
callback parameters indicate the mouse in window relative coordinates when the
3950
key was pressed. When a new window is created, no special callback is
3951
initially registered and special key strokes in the window are ignored.
3952
Passing <c>null</c> to <b>glutSpecialFunc</b> disables the generation of
3953
special callbacks.
3954
</para>
3955
<para>
3956
During a special callback, <see cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/> may be called to
3957
determine the state of modifier keys when the keystroke generating the
3958
callback occurred.
3959
</para>
3960
<para>
3961
An implementation should do its best to provide ways to generate all the
3962
GLUT_KEY_* special keys. The available GLUT_KEY_* values are:
3963
</para>
3964
<para>
3965
<list type="table">
3966
<listheader>
3967
<term>Value</term>
3968
<description>Description</description>
3969
</listheader>
3970
<item>
3971
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F1"/></term>
3972
<description>F1 function key.</description>
3973
</item>
3974
<item>
3975
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F2"/></term>
3976
<description>F2 function key.</description>
3977
</item>
3978
<item>
3979
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F3"/></term>
3980
<description>F3 function key.</description>
3981
</item>
3982
<item>
3983
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F4"/></term>
3984
<description>F4 function key.</description>
3985
</item>
3986
<item>
3987
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F5"/></term>
3988
<description>F5 function key.</description>
3989
</item>
3990
<item>
3991
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F6"/></term>
3992
<description>F6 function key.</description>
3993
</item>
3994
<item>
3995
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F7"/></term>
3996
<description>F7 function key.</description>
3997
</item>
3998
<item>
3999
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F8"/></term>
4000
<description>F8 function key.</description>
4001
</item>
4002
<item>
4003
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F9"/></term>
4004
<description>F9 function key.</description>
4005
</item>
4006
<item>
4007
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F10"/></term>
4008
<description>F10 function key.</description>
4009
</item>
4010
<item>
4011
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F11"/></term>
4012
<description>F11 function key.</description>
4013
</item>
4014
<item>
4015
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F12"/></term>
4016
<description>F12 function key.</description>
4017
</item>
4018
<item>
4019
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_LEFT"/></term>
4020
<description>Left directional key.</description>
4021
</item>
4022
<item>
4023
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_UP"/></term>
4024
<description>Up directional key.</description>
4025
</item>
4026
<item>
4027
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_RIGHT"/></term>
4028
<description>Right directional key.</description>
4029
</item>
4030
<item>
4031
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_DOWN"/></term>
4032
<description>Down directional key.</description>
4033
</item>
4034
<item>
4035
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_PAGE_UP"/></term>
4036
<description>Page up directional key.</description>
4037
</item>
4038
<item>
4039
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_PAGE_DOWN"/></term>
4040
<description>Page down directional key.</description>
4041
</item>
4042
<item>
4043
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_HOME"/></term>
4044
<description>Home directional key.</description>
4045
</item>
4046
<item>
4047
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_END"/></term>
4048
<description>End directional key.</description>
4049
</item>
4050
<item>
4051
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_INSERT"/></term>
4052
<description>Insert directional key.</description>
4053
</item>
4054
</list>
4055
</para>
4056
<para>
4057
Note that the escape, backspace, and delete keys are generated as an ASCII
4058
character.
4059
</para>
4060
</remarks>
4061
<seealso cref="T:Tao.FreeGlut.Glut.SpecialCallback"/>
4062
<seealso cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/>
4063
</member>
4064
<member name="M:Tao.FreeGlut.Glut.glutSpaceballMotionFunc(Tao.FreeGlut.Glut.SpaceballMotionCallback)">
4065
<summary>
4066
Sets the Spaceball motion callback for the current window.
4067
</summary>
4068
<param name="func">
4069
The new Spaceball motion callback function. See
4070
<see cref="T:Tao.FreeGlut.Glut.SpaceballMotionCallback"/>.
4071
</param>
4072
<remarks>
4073
<para>
4074
<b>glutSpaceballMotionFunc</b> sets the Spaceball motion callback for the
4075
current window. The Spaceball motion callback for a window is called when the
4076
window has Spaceball input focus (normally, when the mouse is in the window)
4077
and the user generates Spaceball translations. The <i>x</i>, <i>y</i>, and
4078
<i>z</i> callback parameters indicate the translations along the X, Y, and Z
4079
axes. The callback parameters are normalized to be within the range of -1000
4080
to 1000 inclusive.
4081
</para>
4082
<para>
4083
Registering a Spaceball motion callback when a Spaceball device is not
4084
available has no effect and is not an error. In this case, no Spaceball
4085
motion callbacks will be generated.
4086
</para>
4087
<para>
4088
Passing <c>null</c> to <b>glutSpaceballMotionFunc</b> disables the generation
4089
of Spaceball motion callbacks. When a new window is created, no Spaceball
4090
motion callback is initially registered.
4091
</para>
4092
</remarks>
4093
<seealso cref="T:Tao.FreeGlut.Glut.SpaceballMotionCallback"/>
4094
</member>
4095
<member name="M:Tao.FreeGlut.Glut.glutSpaceballRotateFunc(Tao.FreeGlut.Glut.SpaceballRotateCallback)">
4096
<summary>
4097
Sets the Spaceball rotation callback for the current window.
4098
</summary>
4099
<param name="func">
4100
The new Spaceball rotate callback function. See
4101
<see cref="T:Tao.FreeGlut.Glut.SpaceballRotateCallback"/>.
4102
</param>
4103
<remarks>
4104
<para>
4105
<b>glutSpaceballRotateFunc</b> sets the Spaceball rotate callback for the
4106
current window. The Spaceball rotate callback for a window is called when the
4107
window has Spaceball input focus (normally, when the mouse is in the window)
4108
and the user generates Spaceball rotations. The <i>x</i>, <i>y</i>, and
4109
<i>z</i> callback parameters indicate the rotation along the X, Y, and Z
4110
axes. The callback parameters are normalized to be within the range of -1800
4111
to 1800 inclusive.
4112
</para>
4113
<para>
4114
Registering a Spaceball rotate callback when a Spaceball device is not
4115
available is ineffectual and not an error. In this case, no Spaceball rotate
4116
callbacks will be generated.
4117
</para>
4118
<para>
4119
Passing <c>null</c> to <b>glutSpaceballRotateFunc</b> disables the generation
4120
of Spaceball rotate callbacks. When a new window is created, no Spaceball
4121
rotate callback is initially registered.
4122
</para>
4123
</remarks>
4124
<seealso cref="T:Tao.FreeGlut.Glut.SpaceballRotateCallback"/>
4125
</member>
4126
<member name="M:Tao.FreeGlut.Glut.glutSpaceballButtonFunc(Tao.FreeGlut.Glut.SpaceballButtonCallback)">
4127
<summary>
4128
Sets the Spaceball button callback for the current window.
4129
</summary>
4130
<param name="func">
4131
The new Spaceball button callback function. See
4132
<see cref="T:Tao.FreeGlut.Glut.SpaceballButtonCallback"/>.
4133
</param>
4134
<remarks>
4135
<para>
4136
<b>glutSpaceballButtonFunc</b> sets the Spaceball button callback for the
4137
current window. The Spaceball button callback for a window is called when the
4138
window has Spaceball input focus (normally, when the mouse is in the window)
4139
and the user generates Spaceball button presses. The <i>button</i> parameter
4140
will be the button number (starting at one). The number of available
4141
Spaceball buttons can be determined with
4142
<c>glutDeviceGet(GLUT_NUM_SPACEBALL_BUTTONS)</c>. The <i>state</i> is either
4143
<see cref="F:Tao.FreeGlut.Glut.GLUT_UP"/> or <see cref="F:Tao.FreeGlut.Glut.GLUT_DOWN"/> indicating whether the
4144
callback was due to a release or press respectively.
4145
</para>
4146
<para>
4147
Registering a Spaceball button callback when a Spaceball device is not
4148
available is ineffectual and not an error. In this case, no Spaceball button
4149
callbacks will be generated.
4150
</para>
4151
<para>
4152
Passing <c>null</c> to <b>glutSpaceballButtonFunc</b> disables the generation
4153
of Spaceball button callbacks. When a new window is created, no Spaceball
4154
button callback is initially registered.
4155
</para>
4156
</remarks>
4157
<seealso cref="T:Tao.FreeGlut.Glut.SpaceballButtonCallback"/>
4158
<seealso cref="M:Tao.FreeGlut.Glut.glutDeviceGet(System.Int32)"/>
4159
</member>
4160
<member name="M:Tao.FreeGlut.Glut.glutButtonBoxFunc(Tao.FreeGlut.Glut.ButtonBoxCallback)">
4161
<summary>
4162
Sets the dial and button box button callback for the current window.
4163
</summary>
4164
<param name="func">
4165
The new button box callback function. See <see cref="T:Tao.FreeGlut.Glut.ButtonBoxCallback"/>.
4166
</param>
4167
<remarks>
4168
<para>
4169
<b>glutButtonBoxFunc</b> sets the dial and button box button callback for the
4170
current window. The dial and button box button callback for a window is
4171
called when the window has dial and button box input focus (normally, when the
4172
mouse is in the window) and the user generates dial and button box button
4173
presses. The <i>button</i> parameter will be the button number (starting at
4174
one). The number of available dial and button box buttons can be determined
4175
with <c>Glut.glutDeviceGet(Glut.GLUT_NUM_BUTTON_BOX_BUTTONS)</c>. The
4176
<i>state</i> is either <see cref="F:Tao.FreeGlut.Glut.GLUT_UP"/> or <see cref="F:Tao.FreeGlut.Glut.GLUT_DOWN"/>
4177
indicating whether the callback was due to a release or press respectively.
4178
</para>
4179
<para>
4180
Registering a dial and button box button callback when a dial and button box
4181
device is not available is ineffectual and not an error. In this case, no
4182
dial and button box button callbacks will be generated.
4183
</para>
4184
<para>
4185
Passing <c>null</c> to <b>glutButtonBoxFunc</b> disables the generation of
4186
dial and button box button callbacks. When a new window is created, no dial
4187
and button box button callback is initially registered.
4188
</para>
4189
</remarks>
4190
<seealso cref="T:Tao.FreeGlut.Glut.ButtonBoxCallback"/>
4191
<seealso cref="M:Tao.FreeGlut.Glut.glutDeviceGet(System.Int32)"/>
4192
</member>
4193
<member name="M:Tao.FreeGlut.Glut.glutDialsFunc(Tao.FreeGlut.Glut.DialsCallback)">
4194
<summary>
4195
Sets the dial and button box dials callback for the current window.
4196
</summary>
4197
<param name="func">
4198
The new dials callback function. See <see cref="T:Tao.FreeGlut.Glut.DialsCallback"/>.
4199
</param>
4200
<remarks>
4201
<para>
4202
<b>glutDialsFunc</b> sets the dial and button box dials callback for the
4203
current window. The dial and button box dials callback for a window is called
4204
when the window has dial and button box input focus (normally, when the mouse
4205
is in the window) and the user generates dial and button box dial changes.
4206
The <i>dial</i> parameter will be the dial number (starting at one). The
4207
number of available dial and button box dials can be determined with
4208
<c>Glut.glutDeviceGet(Glut.GLUT_NUM_DIALS)</c>. The <i>val</i> measures the
4209
absolute rotation in degrees. Dial values do not "roll over" with each
4210
complete rotation but continue to accumulate degrees (until the <c>int</c>
4211
dial value overflows).
4212
</para>
4213
<para>
4214
Registering a dial and button box dials callback when a dial and button box
4215
device is not available is ineffectual and not an error. In this case, no
4216
dial and button box dials callbacks will be generated.
4217
</para>
4218
<para>
4219
Passing <c>null</c> to <b>glutDialsFunc</b> disables the generation of dial
4220
and button box dials callbacks. When a new window is created, no dial and
4221
button box dials callback is initially registered.
4222
</para>
4223
</remarks>
4224
<seealso cref="T:Tao.FreeGlut.Glut.DialsCallback"/>
4225
<seealso cref="M:Tao.FreeGlut.Glut.glutDeviceGet(System.Int32)"/>
4226
</member>
4227
<member name="M:Tao.FreeGlut.Glut.glutTabletMotionFunc(Tao.FreeGlut.Glut.TabletMotionCallback)">
4228
<summary>
4229
Sets the tablet motion callback for the current window.
4230
</summary>
4231
<param name="func">
4232
The new tablet motion callback function. See
4233
<see cref="T:Tao.FreeGlut.Glut.TabletMotionCallback"/>.
4234
</param>
4235
<remarks>
4236
<para>
4237
<b>glutTabletMotionFunc</b> sets the tablet motion callback for the current
4238
window. The tablet motion callback for a window is called when the window has
4239
tablet input focus (normally, when the mouse is in the window) and the user
4240
generates tablet motion. The <i>x</i> and <i>y</i> callback parameters
4241
indicate the absolute position of the tablet "puck" on the tablet. The
4242
callback parameters are normalized to be within the range of 0 to 2000
4243
inclusive.
4244
</para>
4245
<para>
4246
Registering a tablet motion callback when a tablet device is not available is
4247
ineffectual and not an error. In this case, no tablet motion callbacks will
4248
be generated.
4249
</para>
4250
<para>
4251
Passing <c>null</c> to <b>glutTabletMotionFunc</b> disables the generation of
4252
tablet motion callbacks. When a new window is created, no tablet motion
4253
callback is initially registered.
4254
</para>
4255
</remarks>
4256
<seealso cref="T:Tao.FreeGlut.Glut.TabletMotionCallback"/>
4257
</member>
4258
<member name="M:Tao.FreeGlut.Glut.glutTabletButtonFunc(Tao.FreeGlut.Glut.TabletButtonCallback)">
4259
<summary>
4260
Sets the tablet button callback for the current window.
4261
</summary>
4262
<param name="func">
4263
The new tablet button callback function. See
4264
<see cref="T:Tao.FreeGlut.Glut.TabletButtonCallback"/>.
4265
</param>
4266
<remarks>
4267
<para>
4268
<b>glutTabletButtonFunc</b> sets the tablet button callback for the current
4269
window. The tablet button callback for a window is called when the window has
4270
tablet input focus (normally, when the mouse is in the window) and the user
4271
generates tablet button presses. The <i>button</i> parameter will be the
4272
button number (starting at one). The number of available tablet buttons can
4273
be determined with <c>Glut.glutDeviceGet(Glut.GLUT_NUM_TABLET_BUTTONS)</c>.
4274
The <i>state</i> is either <see cref="F:Tao.FreeGlut.Glut.GLUT_UP"/> or <see cref="F:Tao.FreeGlut.Glut.GLUT_DOWN"/>
4275
indicating whether the callback was due to a release or press respectively.
4276
The <i>x</i> and <i>y</i> callback parameters indicate the window relative
4277
coordinates when the tablet button state changed.
4278
</para>
4279
<para>
4280
Registering a tablet button callback when a tablet device is not available is
4281
ineffectual and not an error. In this case, no tablet button callbacks will
4282
be generated.
4283
</para>
4284
<para>
4285
Passing <c>null</c> to <b>glutTabletButtonFunc</b> disables the generation of
4286
tablet button callbacks. When a new window is created, no tablet button
4287
callback is initially registered.
4288
</para>
4289
</remarks>
4290
<seealso cref="T:Tao.FreeGlut.Glut.TabletButtonCallback"/>
4291
<seealso cref="M:Tao.FreeGlut.Glut.glutDeviceGet(System.Int32)"/>
4292
</member>
4293
<member name="M:Tao.FreeGlut.Glut.glutMenuStatusFunc(Tao.FreeGlut.Glut.MenuStatusCallback)">
4294
<summary>
4295
Sets the global menu status callback.
4296
</summary>
4297
<param name="func">
4298
The new menu status button callback function. See
4299
<see cref="T:Tao.FreeGlut.Glut.MenuStatusCallback"/>.
4300
</param>
4301
<remarks>
4302
<para>
4303
<b>glutMenuStatusFunc</b> sets the global menu status callback so a GLUT
4304
program can determine when a menu is in use or not. When a menu status
4305
callback is registered, it will be called with the value
4306
<see cref="F:Tao.FreeGlut.Glut.GLUT_MENU_IN_USE"/> for its <i>val</i> parameter when pop-up menus
4307
are in use by the user; and the callback will be called with the value
4308
<see cref="F:Tao.FreeGlut.Glut.GLUT_MENU_NOT_IN_USE"/> for its <i>status</i> parameter when
4309
pop-up menus are no longer in use. The <i>x</i> and <i>y</i> parameters
4310
indicate the location in window coordinates of the button press that caused
4311
the menu to go into use, or the location where the menu was released (may be
4312
outside the window). The <i>func</i> parameter names the callback function.
4313
Other callbacks continue to operate (except mouse motion callbacks) when
4314
pop-up menus are in use so the menu status callback allows a program to
4315
suspend animation or other tasks when menus are in use. The cascading and
4316
unmapping of sub-menus from an initial pop-up menu does not generate menu
4317
status callbacks. There is a single menu status callback for GLUT.
4318
</para>
4319
<para>
4320
When the menu status callback is called, the current menu will be set to the
4321
initial pop-up menu in both the <i>GLUT_MENU_IN_USE</i> and
4322
<i>GLUT_MENU_NOT_IN_USE</i> cases. The current window will be set to the
4323
window from which the initial menu was popped up from, also in both cases.
4324
</para>
4325
<para>
4326
Passing <c>null</c> to <b>glutMenuStatusFunc</b> disables the generation of
4327
the menu status callback.
4328
</para>
4329
<para>
4330
<see cref="M:Tao.FreeGlut.Glut.glutMenuStateFunc(Tao.FreeGlut.Glut.MenuStateCallback)"/> is a deprecated version of the
4331
<b>glutMenuStatusFunc</b> routine. The only difference is
4332
<b>glutMenuStateFunc</b> callback prototype does not deliver the two
4333
additional <i>x</i> and <i>y</i> coordinates.
4334
</para>
4335
</remarks>
4336
<seealso cref="T:Tao.FreeGlut.Glut.MenuStateCallback"/>
4337
<seealso cref="T:Tao.FreeGlut.Glut.MenuStatusCallback"/>
4338
<seealso cref="M:Tao.FreeGlut.Glut.glutMenuStateFunc(Tao.FreeGlut.Glut.MenuStateCallback)"/>
4339
</member>
4340
<member name="M:Tao.FreeGlut.Glut.glutOverlayDisplayFunc(Tao.FreeGlut.Glut.OverlayDisplayCallback)">
4341
<summary>
4342
Sets the overlay display callback for the current window.
4343
</summary>
4344
<param name="func">
4345
The new overlay display callback function. See
4346
<see cref="T:Tao.FreeGlut.Glut.OverlayDisplayCallback"/>.
4347
</param>
4348
<remarks>
4349
<para>
4350
<b>glutDisplayFunc</b> sets the overlay display callback for the current
4351
window. The overlay display callback is functionally the same as the window's
4352
display callback except that the overlay display callback is used to redisplay
4353
the window's overlay.
4354
</para>
4355
<para>
4356
When GLUT determines that the overlay display for the window needs to be
4357
redisplayed, the overlay display callback for the window is called. Before
4358
the callback, the current window is set to the window needing to be
4359
redisplayed and the layer in use is set to the overlay. The overlay display
4360
callback is called with no parameters. The entire overlay region should be
4361
redisplayed in response to the callback (this includes ancillary buffers if
4362
your program depends on their state).
4363
</para>
4364
<para>
4365
GLUT determines when the overlay display callback should be triggered based on
4366
the window's overlay redisplay state. The overlay redisplay state for a
4367
window can be either set explicitly by calling
4368
<see cref="M:Tao.FreeGlut.Glut.glutPostOverlayRedisplay"/> or implicitly as the result of window
4369
damage reported by the window system. Multiple posted overlay redisplays for
4370
a window are coalesced by GLUT to minimize the number of overlay display
4371
callbacks called.
4372
</para>
4373
<para>
4374
Upon return from the overlay display callback, the overlay damaged state of
4375
the window (returned by calling
4376
<c>Glut.glutLayerGet(Glut.GLUT_OVERLAY_DAMAMGED)</c> is cleared.
4377
</para>
4378
<para>
4379
The overlay display callback can be deregistered by passing <c>null</c> to
4380
<see cref="M:Tao.FreeGlut.Glut.glutOverlayDisplayFunc(Tao.FreeGlut.Glut.OverlayDisplayCallback)"/>. The overlay display callback is
4381
initially <c>null</c> when an overlay is established. See
4382
<see cref="M:Tao.FreeGlut.Glut.glutDisplayFunc(Tao.FreeGlut.Glut.DisplayCallback)"/> to understand how the display callback alone is
4383
used if an overlay display callback is not registered.
4384
</para>
4385
</remarks>
4386
<seealso cref="T:Tao.FreeGlut.Glut.DisplayCallback"/>
4387
<seealso cref="T:Tao.FreeGlut.Glut.OverlayDisplayCallback"/>
4388
<seealso cref="M:Tao.FreeGlut.Glut.glutDisplayFunc(Tao.FreeGlut.Glut.DisplayCallback)"/>
4389
<seealso cref="M:Tao.FreeGlut.Glut.glutPostOverlayRedisplay"/>
4390
</member>
4391
<member name="M:Tao.FreeGlut.Glut.glutWindowStatusFunc(Tao.FreeGlut.Glut.WindowStatusCallback)">
4392
<summary>
4393
Sets the window status callback for the current window.
4394
</summary>
4395
<param name="func">
4396
The new window status callback function. See
4397
<see cref="T:Tao.FreeGlut.Glut.WindowStatusCallback"/>.
4398
</param>
4399
<remarks>
4400
<para>
4401
<b>glutWindowStatusFunc</b> sets the window status callback for the current
4402
window. The window status callback for a window is called when the window
4403
status (visibility) of a window changes. The state callback parameter is one
4404
of <see cref="F:Tao.FreeGlut.Glut.GLUT_HIDDEN"/>, <see cref="F:Tao.FreeGlut.Glut.GLUT_FULLY_RETAINED"/>,
4405
<see cref="F:Tao.FreeGlut.Glut.GLUT_PARTIALLY_RETAINED"/>, or <see cref="F:Tao.FreeGlut.Glut.GLUT_FULLY_COVERED"/>
4406
depending on the current window status of the window. <i>GLUT_HIDDEN</i>
4407
means that the window is either not shown (often meaning that the window is
4408
iconified). <i>GLUT_FULLY_RETAINED</i> means that the window is fully
4409
retained (no pixels belonging to the window are covered by other windows).
4410
<i>GLUT_PARTIALLY_RETAINED</i> means that the window is partially retained
4411
(some but not all pixels belonging to the window are covered by other
4412
windows). <i>GLUT_FULLY_COVERED</i> means the window is shown but no part of
4413
the window is visible, i.e., until the window's status changes, all further
4414
rendering to the window is discarded.
4415
</para>
4416
<para>
4417
GLUT considers a window visible if any pixel of the window is visible or any
4418
pixel of any descendant window is visible on the screen.
4419
</para>
4420
<para>
4421
GLUT applications are encouraged to disable rendering and/or animation when
4422
windows have a status of either <i>GLUT_HIDDEN</i> or
4423
<i>GLUT_FULLY_COVERED</i>.
4424
</para>
4425
<para>
4426
Passing <c>null</c> to <b>glutWindowStatusFunc</b> disables the generation of
4427
the window status callback.
4428
</para>
4429
<para>
4430
If the window status callback for a window is disabled and later re-enabled,
4431
the window status of the window is undefined; any change in window window
4432
status will be reported, that is if you disable a window status callback and
4433
re-enable the callback, you are guaranteed the next window status change will
4434
be reported.
4435
</para>
4436
<para>
4437
Setting the window status callback for a window disables the visibility
4438
callback set for the window (and vice versa). The visibility callback is set
4439
with <see cref="M:Tao.FreeGlut.Glut.glutVisibilityFunc(Tao.FreeGlut.Glut.VisibilityCallback)"/>. <b>glutVisibilityFunc</b> is
4440
deprecated in favor of the more informative <b>glutWindowStatusFunc</b>.
4441
</para>
4442
</remarks>
4443
<seealso cref="T:Tao.FreeGlut.Glut.WindowStatusCallback"/>
4444
<seealso cref="T:Tao.FreeGlut.Glut.VisibilityCallback"/>
4445
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
4446
<seealso cref="M:Tao.FreeGlut.Glut.glutPopWindow"/>
4447
<seealso cref="M:Tao.FreeGlut.Glut.glutVisibilityFunc(Tao.FreeGlut.Glut.VisibilityCallback)"/>
4448
</member>
4449
<member name="M:Tao.FreeGlut.Glut.glutKeyboardUpFunc(Tao.FreeGlut.Glut.KeyboardUpCallback)">
4450
<summary>
4451
Sets the keyboard up (key release) callback for the current window.
4452
</summary>
4453
<param name="func">
4454
The new keyboard up callback function. See <see cref="T:Tao.FreeGlut.Glut.KeyboardUpCallback"/>.
4455
</param>
4456
<remarks>
4457
<para>
4458
<b>glutKeyboardUpFunc</b> sets the keyboard up (key release) callback for the
4459
current window. When a user types into the window, each key release matching
4460
an ASCII character will generate a keyboard up callback. The <i>key</i>
4461
callback parameter is the generated ASCII character. The state of modifier
4462
keys such as Shift cannot be determined directly; their only effect will be on
4463
the returned ASCII data. The <i>x</i> and <i>y</i> callback parameters
4464
indicate the mouse location in window relative coordinates when the key was
4465
pressed. When a new window is created, no keyboard callback is initially
4466
registered, and ASCII key strokes in the window are ignored. Passing
4467
<c>null</c> to <b>glutKeyboardUpFunc</b> disables the generation of
4468
keyboard up callbacks.
4469
</para>
4470
<para>
4471
During a keyboard up callback, <see cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/> may be called
4472
to determine the state of modifier keys when the keystroke generating the
4473
callback occurred.
4474
</para>
4475
<para>
4476
To avoid the reporting of key release/press pairs due to auto repeat, use
4477
<see cref="M:Tao.FreeGlut.Glut.glutIgnoreKeyRepeat(System.Int32)"/> to ignore auto repeated keystrokes.
4478
</para>
4479
<para>
4480
There is no guarantee that the keyboard press callback will match the exact
4481
ASCII character as the keyboard up callback. For example, the key down may
4482
be for a lowercase b, but the key release may report an uppercase B if the
4483
shift state has changed. The same applies to symbols and control characters.
4484
The precise behavior is window system dependent.
4485
</para>
4486
<para>
4487
Use <see cref="M:Tao.FreeGlut.Glut.glutSpecialUpFunc(Tao.FreeGlut.Glut.SpecialUpCallback)"/> for a means to detect non-ASCII key
4488
release.
4489
</para>
4490
</remarks>
4491
<seealso cref="T:Tao.FreeGlut.Glut.KeyboardUpCallback"/>
4492
<seealso cref="M:Tao.FreeGlut.Glut.glutButtonBoxFunc(Tao.FreeGlut.Glut.ButtonBoxCallback)"/>
4493
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
4494
<seealso cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/>
4495
<seealso cref="M:Tao.FreeGlut.Glut.glutIgnoreKeyRepeat(System.Int32)"/>
4496
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)"/>
4497
<seealso cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>
4498
<seealso cref="M:Tao.FreeGlut.Glut.glutSpaceballButtonFunc(Tao.FreeGlut.Glut.SpaceballButtonCallback)"/>
4499
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)"/>
4500
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialUpFunc(Tao.FreeGlut.Glut.SpecialUpCallback)"/>
4501
<seealso cref="M:Tao.FreeGlut.Glut.glutTabletButtonFunc(Tao.FreeGlut.Glut.TabletButtonCallback)"/>
4502
</member>
4503
<member name="M:Tao.FreeGlut.Glut.glutSpecialUpFunc(Tao.FreeGlut.Glut.SpecialUpCallback)">
4504
<summary>
4505
Sets the special keyboard up (key release) callback for the current window.
4506
</summary>
4507
<param name="func">
4508
The new special keyboard up callback function.
4509
<see cref="T:Tao.FreeGlut.Glut.SpecialUpCallback"/>.
4510
</param>
4511
<remarks>
4512
<para>
4513
<b>glutSpecialUpFunc</b> sets the special keyboard up (key release) callback
4514
for the current window. The special keyboard up callback is triggered when
4515
keyboard function or directional keys are released. The <i>key</i> callback
4516
parameter is a GLUT_KEY_* constant for the special key pressed. The <i>x</i>
4517
and <i>y</i> callback parameters indicate the mouse in window relative
4518
coordinates when the key was pressed. When a new window is created, no
4519
special up callback is initially registered and special key releases in the
4520
window are ignored. Passing <c>null</c> to <b>glutSpecialUpFunc</b> disables
4521
the generation of special up callbacks.
4522
</para>
4523
<para>
4524
During a special up callback, <see cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/> may be called to
4525
determine the state of modifier keys when the key release generating the
4526
callback occurred.
4527
</para>
4528
<para>
4529
To avoid the reporting of key release/press pairs due to auto repeat, use
4530
<see cref="M:Tao.FreeGlut.Glut.glutIgnoreKeyRepeat(System.Int32)"/> to ignore auto repeated keystrokes.
4531
</para>
4532
<para>
4533
An implementation should do its best to provide ways to generate all the
4534
GLUT_KEY_* special keys. The available GLUT_KEY_* values are:
4535
</para>
4536
<para>
4537
<list type="table">
4538
<listheader>
4539
<term>Value</term>
4540
<description>Description</description>
4541
</listheader>
4542
<item>
4543
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F1"/></term>
4544
<description>F1 function key.</description>
4545
</item>
4546
<item>
4547
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F2"/></term>
4548
<description>F2 function key.</description>
4549
</item>
4550
<item>
4551
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F3"/></term>
4552
<description>F3 function key.</description>
4553
</item>
4554
<item>
4555
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F4"/></term>
4556
<description>F4 function key.</description>
4557
</item>
4558
<item>
4559
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F5"/></term>
4560
<description>F5 function key.</description>
4561
</item>
4562
<item>
4563
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F6"/></term>
4564
<description>F6 function key.</description>
4565
</item>
4566
<item>
4567
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F7"/></term>
4568
<description>F7 function key.</description>
4569
</item>
4570
<item>
4571
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F8"/></term>
4572
<description>F8 function key.</description>
4573
</item>
4574
<item>
4575
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F9"/></term>
4576
<description>F9 function key.</description>
4577
</item>
4578
<item>
4579
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F10"/></term>
4580
<description>F10 function key.</description>
4581
</item>
4582
<item>
4583
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F11"/></term>
4584
<description>F11 function key.</description>
4585
</item>
4586
<item>
4587
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_F12"/></term>
4588
<description>F12 function key.</description>
4589
</item>
4590
<item>
4591
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_LEFT"/></term>
4592
<description>Left directional key.</description>
4593
</item>
4594
<item>
4595
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_UP"/></term>
4596
<description>Up directional key.</description>
4597
</item>
4598
<item>
4599
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_RIGHT"/></term>
4600
<description>Right directional key.</description>
4601
</item>
4602
<item>
4603
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_DOWN"/></term>
4604
<description>Down directional key.</description>
4605
</item>
4606
<item>
4607
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_PAGE_UP"/></term>
4608
<description>Page up directional key.</description>
4609
</item>
4610
<item>
4611
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_PAGE_DOWN"/></term>
4612
<description>Page down directional key.</description>
4613
</item>
4614
<item>
4615
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_HOME"/></term>
4616
<description>Home directional key.</description>
4617
</item>
4618
<item>
4619
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_END"/></term>
4620
<description>End directional key.</description>
4621
</item>
4622
<item>
4623
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_INSERT"/></term>
4624
<description>Insert directional key.</description>
4625
</item>
4626
</list>
4627
</para>
4628
<para>
4629
Note that the escape, backspace, and delete keys are generated as an ASCII
4630
character.
4631
</para>
4632
</remarks>
4633
<seealso cref="T:Tao.FreeGlut.Glut.SpecialUpCallback"/>
4634
<seealso cref="M:Tao.FreeGlut.Glut.glutButtonBoxFunc(Tao.FreeGlut.Glut.ButtonBoxCallback)"/>
4635
<seealso cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/>
4636
<seealso cref="M:Tao.FreeGlut.Glut.glutIgnoreKeyRepeat(System.Int32)"/>
4637
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)"/>
4638
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardUpFunc(Tao.FreeGlut.Glut.KeyboardUpCallback)"/>
4639
<seealso cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>
4640
<seealso cref="M:Tao.FreeGlut.Glut.glutSpaceballButtonFunc(Tao.FreeGlut.Glut.SpaceballButtonCallback)"/>
4641
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)"/>
4642
<seealso cref="M:Tao.FreeGlut.Glut.glutTabletButtonFunc(Tao.FreeGlut.Glut.TabletButtonCallback)"/>
4643
</member>
4644
<member name="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)">
4645
<summary>
4646
Sets the joystick callback for the current window.
4647
</summary>
4648
<param name="func">
4649
The new joystick callback function. See <see cref="T:Tao.FreeGlut.Glut.JoystickCallback"/>.
4650
</param>
4651
<param name="pollInterval">
4652
Joystick polling interval in milliseconds.
4653
</param>
4654
<remarks>
4655
<para>
4656
<b>glutJoystickFunc</b> sets the joystick callback for the current window.
4657
</para>
4658
<para>
4659
The joystick callback is called either due to polling of the joystick at the
4660
uniform timer interval specified by <i>pollInterval</i> (in milliseconds) or
4661
in response to calling <see cref="M:Tao.FreeGlut.Glut.glutForceJoystickFunc"/>. If the
4662
<i>pollInterval</i> is non-positive, no joystick polling is performed and the
4663
GLUT application must frequently (usually from an idle callback) call
4664
<b>glutForceJoystickFunc</b>.
4665
</para>
4666
<para>
4667
The joystick buttons are reported by the callback's <i>buttonMask</i>
4668
parameter. The constants <see cref="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_BUTTON_A"/> (0x1),
4669
<see cref="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_BUTTON_B"/> (0x2),
4670
<see cref="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_BUTTON_C"/> (0x4), and
4671
<see cref="F:Tao.FreeGlut.Glut.GLUT_JOYSTICK_BUTTON_D"/> (0x8) are provided for programming
4672
convience.
4673
</para>
4674
<para>
4675
The <i>x</i>, <i>y</i>, and <i>z</i> callback parameters report the X, Y, and
4676
Z axes of the joystick. The joystick is centered at (0, 0, 0). X, Y, and Z
4677
are scaled to range between -1000 and 1000. Moving the joystick left reports
4678
negative X; right reports positive X. Pulling the stick towards you reports
4679
negative Y; push the stick away from you reports positive Y. If the joystick
4680
has a third axis (rudder or up/down), down reports negative Z; up reports
4681
positive Z.
4682
</para>
4683
<para>
4684
Passing a <c>null</c> to <b>glutJoystickFunc</b> disables the generation of
4685
joystick callbacks. Without a joystick callback registered,
4686
<b>glutForceJoystickFunc</b> does nothing.
4687
</para>
4688
<para>
4689
When a new window is created, no joystick callback is initially registered.
4690
</para>
4691
<para>
4692
<b>LIMITATIONS</b>
4693
</para>
4694
<para>
4695
The GLUT joystick callback only reports the first 3 axes and 32 buttons.
4696
GLUT supports only a single joystick.
4697
</para>
4698
<para>
4699
<b>X IMPLEMENTATION NOTES</b>
4700
</para>
4701
<para>
4702
The GLUT 3.7 implementation of GLUT for X11 supports the joystick API, but not
4703
joystick input. A future implementation of GLUT for X11 may add joystick
4704
support.
4705
</para>
4706
<para>
4707
<b>WIN32 IMPLEMENTATION NOTES</b>
4708
</para>
4709
<para>
4710
The GLUT 3.7 implementation of GLUT for Win32 supports the joystick API and
4711
joystick input, but does so through the dated <c>joySetCapture</c> and
4712
<c>joyGetPosEx</c> Win32 Multimedia API. The GLUT 3.7 joystick support for
4713
Win32 has all the limitations of the Win32 Multimedia API joystick support.
4714
A future implementation of GLUT for Win32 may use DirectInput.
4715
</para>
4716
<para>
4717
<b>GLUT IMPLEMENTATION NOTES FOR NON-ANALOG JOYSTICKS</b>
4718
</para>
4719
<para>
4720
If the connected joystick does not return (x, y, z) as a continuous range (for
4721
example, an 8 position Atari 2600 joystick), the implementation should report
4722
the most extreme (x, y, z) location. That is, if a 2D joystick is pushed to
4723
the upper left, report (-1000, 1000, 0).
4724
</para>
4725
</remarks>
4726
<seealso cref="T:Tao.FreeGlut.Glut.JoystickCallback"/>
4727
<seealso cref="M:Tao.FreeGlut.Glut.glutButtonBoxFunc(Tao.FreeGlut.Glut.ButtonBoxCallback)"/>
4728
<seealso cref="M:Tao.FreeGlut.Glut.glutDeviceGet(System.Int32)"/>
4729
<seealso cref="M:Tao.FreeGlut.Glut.glutForceJoystickFunc"/>
4730
<seealso cref="M:Tao.FreeGlut.Glut.glutMotionFunc(Tao.FreeGlut.Glut.MotionCallback)"/>
4731
<seealso cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>
4732
<seealso cref="M:Tao.FreeGlut.Glut.glutSpaceballButtonFunc(Tao.FreeGlut.Glut.SpaceballButtonCallback)"/>
4733
<seealso cref="M:Tao.FreeGlut.Glut.glutSpaceballMotionFunc(Tao.FreeGlut.Glut.SpaceballMotionCallback)"/>
4734
<seealso cref="M:Tao.FreeGlut.Glut.glutTabletButtonFunc(Tao.FreeGlut.Glut.TabletButtonCallback)"/>
4735
</member>
4736
<member name="M:Tao.FreeGlut.Glut.glutSetColor(System.Int32,System.Single,System.Single,System.Single)">
4737
<summary>
4738
Sets the color of a colormap entry in the layer of use for the current window.
4739
</summary>
4740
<param name="cell">
4741
Color cell index (starting at zero).
4742
</param>
4743
<param name="red">
4744
Red intensity (clamped between 0.0 and 1.0 inclusive).
4745
</param>
4746
<param name="green">
4747
Green intensity (clamped between 0.0 and 1.0 inclusive).
4748
</param>
4749
<param name="blue">
4750
Blue intensity (clamped between 0.0 and 1.0 inclusive).
4751
</param>
4752
<remarks>
4753
Sets the <i>cell</i> color index colormap entry of the current window's
4754
logical colormap for the layer in use with the color specified by <i>red</i>,
4755
<i>green</i>, and <i>blue</i>. The layer in use of the current window should
4756
be a color index window. <i>cell</i> should be zero or greater and less than
4757
the total number of colormap entries for the window. If the layer in use's
4758
colormap was copied by reference, a <b>glutSetColor</b> call will force the
4759
duplication of the colormap. Do not attempt to set the color of an overlay's
4760
transparent index.
4761
</remarks>
4762
<seealso cref="M:Tao.FreeGlut.Glut.glutCopyColormap(System.Int32)"/>
4763
<seealso cref="M:Tao.FreeGlut.Glut.glutGetColor(System.Int32,System.Int32)"/>
4764
<seealso cref="M:Tao.FreeGlut.Glut.glutInitDisplayMode(System.Int32)"/>
4765
</member>
4766
<member name="M:Tao.FreeGlut.Glut.glutGetColor(System.Int32,System.Int32)">
4767
<summary>
4768
Retrieves a red, green, or blue component for a given color index colormap entry
4769
for the layer in use's logical colormap for the current window.
4770
</summary>
4771
<param name="cell">
4772
Color cell index (starting at zero).
4773
</param>
4774
<param name="component">
4775
One of <see cref="F:Tao.FreeGlut.Glut.GLUT_RED"/>, <see cref="F:Tao.FreeGlut.Glut.GLUT_GREEN"/>, or
4776
<see cref="F:Tao.FreeGlut.Glut.GLUT_BLUE"/>.
4777
</param>
4778
<returns>
4779
For valid color indices, the value returned is a floating point value between
4780
0.0 and 1.0 inclusive. <b>glutGetColor</b> will return -1.0 if the color
4781
index specified is an overlay's transparent index, less than zero, or greater
4782
or equal to the value returned by
4783
<c>Glut.glutGet(Glut.GLUT_WINDOW_COLORMAP_SIZE)</c>, that is if the color
4784
index is transparent or outside the valid range of color indices.
4785
</returns>
4786
<remarks>
4787
<b>glutGetColor</b> retrieves a red, green, or blue component for a given
4788
color index colormap entry for the current window's logical colormap. The
4789
current window should be a color index window. <i>cell</i> should be zero or
4790
greater and less than the total number of colormap entries for the window.
4791
</remarks>
4792
<seealso cref="M:Tao.FreeGlut.Glut.glutCopyColormap(System.Int32)"/>
4793
<seealso cref="M:Tao.FreeGlut.Glut.glutGet(System.Int32)"/>
4794
<seealso cref="M:Tao.FreeGlut.Glut.glutSetColor(System.Int32,System.Single,System.Single,System.Single)"/>
4795
</member>
4796
<member name="M:Tao.FreeGlut.Glut.glutCopyColormap(System.Int32)">
4797
<summary>
4798
Copies the logical colormap for the layer in use from a specified window to the
4799
current window.
4800
</summary>
4801
<param name="win">
4802
The identifier of the window to copy the logical colormap from.
4803
</param>
4804
<remarks>
4805
<para>
4806
<b>glutCopyColormap</b> copies (lazily if possible to promote sharing) the
4807
logical colormap from a specified window to the current window's layer in use.
4808
The copy will be from the normal plane to the normal plane; or from the
4809
overlay to the overlay (never across different layers). Once a colormap has
4810
been copied, avoid setting cells in the colormap with
4811
<see cref="M:Tao.FreeGlut.Glut.glutSetColor(System.Int32,System.Single,System.Single,System.Single)"/> since that will force an actual copy of the
4812
colormap if it was previously copied by reference. <b>glutCopyColormap</b>
4813
should only be called when both the current window and the <i>win</i> window
4814
are color index windows.
4815
</para>
4816
<para>
4817
<b>EXAMPLE</b>
4818
</para>
4819
<para>
4820
Here is an example of how to create two color index GLUT windows with their
4821
colormaps loaded identically and so that the windows are likely to share the
4822
same colormap:
4823
</para>
4824
<para>
4825
<code>
4826
int win1, win2;
4827
4828
Glut.glutInitDisplayMode(Glut.GLUT_INDEX);
4829
win1 = Glut.glutCreateWindow("First color index window");
4830
Glut.glutSetColor(0, 0.0f, 0.0f, 0.0f); // black
4831
Glut.glutSetColor(1, 0.5f, 0.5f, 0.5f); // gray
4832
Glut.glutSetColor(2, 1.0f, 1.0f, 1.0f); // white
4833
Glut.glutSetColor(3, 1.0f, 0.0f, 0.0f); // red
4834
4835
win2 = Glut.glutCreateWindow("Second color index window");
4836
Glut.glutCopyColormap(win1);
4837
</code>
4838
</para>
4839
</remarks>
4840
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
4841
<seealso cref="M:Tao.FreeGlut.Glut.glutGetColor(System.Int32,System.Int32)"/>
4842
<seealso cref="M:Tao.FreeGlut.Glut.glutSetColor(System.Int32,System.Single,System.Single,System.Single)"/>
4843
</member>
4844
<member name="M:Tao.FreeGlut.Glut.glutGet(System.Int32)">
4845
<summary>
4846
Retrieves simple GLUT state represented by integers.
4847
</summary>
4848
<param name="state">
4849
<para>
4850
Name of state to retrieve. Valid values are:
4851
</para>
4852
<para>
4853
<list type="table">
4854
<listheader>
4855
<term>Value</term>
4856
<description>Description</description>
4857
</listheader>
4858
<item>
4859
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_X"/></term>
4860
<description>
4861
X location in pixels (relative to the screen origin) of the
4862
current window.
4863
</description>
4864
</item>
4865
<item>
4866
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_Y"/></term>
4867
<description>
4868
Y location in pixels (relative to the screen origin) of the
4869
current window.
4870
</description>
4871
</item>
4872
<item>
4873
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_WIDTH"/></term>
4874
<description>
4875
Width in pixels of the current window.
4876
</description>
4877
</item>
4878
<item>
4879
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_HEIGHT"/></term>
4880
<description>
4881
Height in pixels of the current window.
4882
</description>
4883
</item>
4884
<item>
4885
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_BUFFER_SIZE"/></term>
4886
<description>
4887
Total number of bits for current window's color buffer. For an
4888
RGBA window, this is the sum of
4889
<see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_RED_SIZE"/>,
4890
<see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_GREEN_SIZE"/>,
4891
<see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_BLUE_SIZE"/>, and
4892
<see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ALPHA_SIZE"/>. For color index windows,
4893
this is the size of the color indexes.
4894
</description>
4895
</item>
4896
<item>
4897
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_STENCIL_SIZE"/></term>
4898
<description>
4899
Number of bits in the current window's stencil buffer.
4900
</description>
4901
</item>
4902
<item>
4903
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_DEPTH_SIZE"/></term>
4904
<description>
4905
Number of bits in the current window's depth buffer.
4906
</description>
4907
</item>
4908
<item>
4909
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_RED_SIZE"/></term>
4910
<description>
4911
Number of bits of red stored the current window's color buffer.
4912
Zero if the window is color index.
4913
</description>
4914
</item>
4915
<item>
4916
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_GREEN_SIZE"/></term>
4917
<description>
4918
Number of bits of green stored the current window's color buffer.
4919
Zero if the window is color index.
4920
</description>
4921
</item>
4922
<item>
4923
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_BLUE_SIZE"/></term>
4924
<description>
4925
Number of bits of blue stored the current window's color buffer.
4926
Zero if the window is color index.
4927
</description>
4928
</item>
4929
<item>
4930
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ALPHA_SIZE"/></term>
4931
<description>
4932
Number of bits of alpha stored the current window's color buffer.
4933
Zero if the window is color index.
4934
</description>
4935
</item>
4936
<item>
4937
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ACCUM_RED_SIZE"/></term>
4938
<description>
4939
Number of bits of red stored in the current window's accumulation
4940
buffer. Zero if the window is color index.
4941
</description>
4942
</item>
4943
<item>
4944
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ACCUM_GREEN_SIZE"/></term>
4945
<description>
4946
Number of bits of green stored in the current window's
4947
accumulation buffer. Zero if the window is color index.
4948
</description>
4949
</item>
4950
<item>
4951
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ACCUM_BLUE_SIZE"/></term>
4952
<description>
4953
Number of bits of blue stored in the current window's
4954
accumulation buffer. Zero if the window is color index.
4955
</description>
4956
</item>
4957
<item>
4958
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_ACCUM_ALPHA_SIZE"/></term>
4959
<description>
4960
Number of bits of alpha stored in the current window's
4961
accumulation buffer. Zero if the window is color index.
4962
</description>
4963
</item>
4964
<item>
4965
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_DOUBLEBUFFER"/></term>
4966
<description>
4967
One if the current window is double buffered, zero otherwise.
4968
</description>
4969
</item>
4970
<item>
4971
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_RGBA"/></term>
4972
<description>
4973
One if the current window is RGBA mode, zero otherwise (i.e.,
4974
color index).
4975
</description>
4976
</item>
4977
<item>
4978
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_PARENT"/></term>
4979
<description>
4980
The window number of the current window's parent; zero if the
4981
window is a top-level window.
4982
</description>
4983
</item>
4984
<item>
4985
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_NUM_CHILDREN"/></term>
4986
<description>
4987
The number of subwindows the current window has (not counting
4988
children of children).
4989
</description>
4990
</item>
4991
<item>
4992
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_COLORMAP_SIZE"/></term>
4993
<description>
4994
Size of current window's color index colormap; zero for RGBA
4995
color model windows.
4996
</description>
4997
</item>
4998
<item>
4999
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_NUM_SAMPLES"/></term>
5000
<description>
5001
Number of samples for multisampling for the current window.
5002
</description>
5003
</item>
5004
<item>
5005
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_STEREO"/></term>
5006
<description>
5007
One if the current window is stereo, zero otherwise.
5008
</description>
5009
</item>
5010
<item>
5011
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_WINDOW_CURSOR"/></term>
5012
<description>
5013
Current cursor for the current window.
5014
</description>
5015
</item>
5016
<item>
5017
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_SCREEN_WIDTH"/></term>
5018
<description>
5019
Width of the screen in pixels. Zero indicates the width is
5020
unknown or not available.
5021
</description>
5022
</item>
5023
<item>
5024
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_SCREEN_HEIGHT"/></term>
5025
<description>
5026
Height of the screen in pixels. Zero indicates the height is
5027
unknown or not available.
5028
</description>
5029
</item>
5030
<item>
5031
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_SCREEN_WIDTH_MM"/></term>
5032
<description>
5033
Width of the screen in millimeters. Zero indicates the width is
5034
unknown or not available.
5035
</description>
5036
</item>
5037
<item>
5038
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_SCREEN_HEIGHT_MM"/></term>
5039
<description>
5040
Height of the screen in millimeters. Zero indicates the height
5041
is unknown or not available.
5042
</description>
5043
</item>
5044
<item>
5045
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_MENU_NUM_ITEMS"/></term>
5046
<description>
5047
Number of menu items in the current menu.
5048
</description>
5049
</item>
5050
<item>
5051
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_DISPLAY_MODE_POSSIBLE"/></term>
5052
<description>
5053
Whether the current display mode is supported or not.
5054
</description>
5055
</item>
5056
<item>
5057
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_INIT_DISPLAY_MODE"/></term>
5058
<description>
5059
The initial display mode bit mask.
5060
</description>
5061
</item>
5062
<item>
5063
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_INIT_WINDOW_X"/></term>
5064
<description>
5065
The X value of the initial window position.
5066
</description>
5067
</item>
5068
<item>
5069
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_INIT_WINDOW_Y"/></term>
5070
<description>
5071
The Y value of the initial window position.
5072
</description>
5073
</item>
5074
<item>
5075
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_INIT_WINDOW_WIDTH"/></term>
5076
<description>
5077
The width value of the initial window size.
5078
</description>
5079
</item>
5080
<item>
5081
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_INIT_WINDOW_HEIGHT"/></term>
5082
<description>
5083
The height value of the initial window size.
5084
</description>
5085
</item>
5086
<item>
5087
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_ELAPSED_TIME"/></term>
5088
<description>
5089
Number of milliseconds since <see cref="M:Tao.FreeGlut.Glut.glutInit"/> called (or
5090
first call to <c>Glut.glutGet(Glut.GLUT_ELAPSED_TIME)</c>).
5091
</description>
5092
</item>
5093
</list>
5094
</para>
5095
</param>
5096
<returns>
5097
GLUT state represented by integers.
5098
</returns>
5099
<remarks>
5100
<b>glutGet</b> retrieves simple GLUT state represented by integers. The
5101
<i>state</i> parameter determines what type of state to return. Window
5102
capability state is returned for the layer in use. GLUT state names
5103
beginning with GLUT_WINDOW_ return state for the current window. GLUT state
5104
names beginning with GLUT_MENU_ return state for the current menu. Other
5105
GLUT state names return global state. Requesting state for an invalid GLUT
5106
state name returns negative one.
5107
</remarks>
5108
<seealso cref="M:Tao.FreeGlut.Glut.glutDeviceGet(System.Int32)"/>
5109
<seealso cref="M:Tao.FreeGlut.Glut.glutExtensionSupported(System.String)"/>
5110
<seealso cref="M:Tao.FreeGlut.Glut.glutGetColor(System.Int32,System.Int32)"/>
5111
<seealso cref="M:Tao.FreeGlut.Glut.glutGetMenu"/>
5112
<seealso cref="M:Tao.FreeGlut.Glut.glutGetModifiers"/>
5113
<seealso cref="M:Tao.FreeGlut.Glut.glutGetWindow"/>
5114
<seealso cref="M:Tao.FreeGlut.Glut.glutLayerGet(System.Int32)"/>
5115
</member>
5116
<member name="M:Tao.FreeGlut.Glut.glutDeviceGet(System.Int32)">
5117
<summary>
5118
Retrieves GLUT device information represented by integers.
5119
</summary>
5120
<param name="info">
5121
<para>
5122
Name of device information to retrieve. Valid values are:
5123
</para>
5124
<para>
5125
<list type="table">
5126
<listheader>
5127
<term>Value</term>
5128
<description>Description</description>
5129
</listheader>
5130
<item>
5131
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_HAS_KEYBOARD"/></term>
5132
<description>
5133
Non-zero if a keyboard is available; zero if not available. For
5134
most GLUT implementations, a keyboard can be assumed.
5135
</description>
5136
</item>
5137
<item>
5138
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_HAS_MOUSE"/></term>
5139
<description>
5140
Non-zero if a mouse is available; zero if not available. For
5141
most GLUT implementations, a keyboard can be assumed.
5142
</description>
5143
</item>
5144
<item>
5145
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_HAS_SPACEBALL"/></term>
5146
<description>
5147
Non-zero if a Spaceball is available; zero if not available.
5148
</description>
5149
</item>
5150
<item>
5151
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_HAS_DIAL_AND_BUTTON_BOX"/></term>
5152
<description>
5153
Non-zero if a dial and button box is available; zero if not
5154
available.
5155
</description>
5156
</item>
5157
<item>
5158
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_HAS_TABLET"/></term>
5159
<description>
5160
Non-zero if a tablet is available; zero if not available.
5161
</description>
5162
</item>
5163
<item>
5164
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_NUM_MOUSE_BUTTONS"/></term>
5165
<description>
5166
Number of buttons supported by the mouse. If no mouse is
5167
supported, zero is returned.
5168
</description>
5169
</item>
5170
<item>
5171
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_NUM_SPACEBALL_BUTTONS"/></term>
5172
<description>
5173
Number of buttons supported by the Spaceball. If no Spaceball is
5174
supported, zero is returned.
5175
</description>
5176
</item>
5177
<item>
5178
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_NUM_BUTTON_BOX_BUTTONS"/></term>
5179
<description>
5180
Number of buttons supported by the dial and button box device.
5181
If no dials and button box device is supported, zero is returned.
5182
</description>
5183
</item>
5184
<item>
5185
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_NUM_DIALS"/></term>
5186
<description>
5187
Number of dials supported by the dial and button box device. If
5188
no dials and button box device is supported, zero is returned.
5189
</description>
5190
</item>
5191
<item>
5192
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_NUM_TABLET_BUTTONS"/></term>
5193
<description>
5194
Number of buttons supported by the tablet. If no tablet is
5195
supported, zero is returned.
5196
</description>
5197
</item>
5198
</list>
5199
</para>
5200
</param>
5201
<returns>
5202
<b>glutDeviceGet</b> retrieves GLUT device information represented by
5203
integers. The <i>info</i> parameter determines what type of device
5204
information to return. Requesting device information for an invalid GLUT
5205
device information name returns negative one.
5206
</returns>
5207
<remarks>
5208
<b>glutDeviceGet</b> retrieves GLUT device information represented by
5209
integers. The <i>info</i> parameter determines what type of device
5210
information to return. Requesting device information for an invalid GLUT
5211
device information name returns negative one.
5212
</remarks>
5213
<seealso cref="M:Tao.FreeGlut.Glut.glutButtonBoxFunc(Tao.FreeGlut.Glut.ButtonBoxCallback)"/>
5214
<seealso cref="M:Tao.FreeGlut.Glut.glutDialsFunc(Tao.FreeGlut.Glut.DialsCallback)"/>
5215
<seealso cref="M:Tao.FreeGlut.Glut.glutGet(System.Int32)"/>
5216
<seealso cref="M:Tao.FreeGlut.Glut.glutIgnoreKeyRepeat(System.Int32)"/>
5217
<seealso cref="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)"/>
5218
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)"/>
5219
<seealso cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>
5220
<seealso cref="M:Tao.FreeGlut.Glut.glutSetKeyRepeat(System.Int32)"/>
5221
<seealso cref="M:Tao.FreeGlut.Glut.glutSpaceballMotionFunc(Tao.FreeGlut.Glut.SpaceballMotionCallback)"/>
5222
<seealso cref="M:Tao.FreeGlut.Glut.glutTabletButtonFunc(Tao.FreeGlut.Glut.TabletButtonCallback)"/>
5223
<seealso cref="M:Tao.FreeGlut.Glut.glutTabletMotionFunc(Tao.FreeGlut.Glut.TabletMotionCallback)"/>
5224
</member>
5225
<member name="M:Tao.FreeGlut.Glut.glutExtensionSupported(System.String)">
5226
<summary>
5227
Helps to easily determine whether a given OpenGL extension is supported.
5228
</summary>
5229
<param name="extension">
5230
Name of OpenGL extension to query.
5231
</param>
5232
<returns>
5233
Returns non-zero if the extension is supported, zero if not supported.
5234
</returns>
5235
<remarks>
5236
<para>
5237
<b>glutExtensionSupported</b> helps to easily determine whether a given
5238
OpenGL extension is supported or not. The <i>extension</i> parameter names
5239
the extension to query. The supported extensions can also be determined with
5240
<c>Gl.glGetString(Gl.GL_EXTENSIONS)</c>, but <b>glutExtensionSupported</b>
5241
does the correct parsing of the returned string.
5242
</para>
5243
<para>
5244
There must be a valid current window to call <b>glutExtensionSupported</b>.
5245
</para>
5246
<para>
5247
<b>glutExtensionSupported</b> only returns information about OpenGL
5248
extensions only. This means window system dependent extensions (for example,
5249
GLX extensions) are not reported by <b>glutExtensionSupported</b>.
5250
</para>
5251
<para>
5252
<b>EXAMPLE</b>
5253
</para>
5254
<para>
5255
<code>
5256
if(!Glut.glutExtensionSupported("GL_EXT_texture")) {
5257
System.Console.WriteLine("Missing the texture extension!");
5258
System.Environment.Exit(1);
5259
}
5260
</code>
5261
</para>
5262
<para>
5263
Notice that the name argument includes both the GL prefix and the extension
5264
family prefix (EXT).
5265
</para>
5266
</remarks>
5267
<seealso cref="M:Tao.FreeGlut.Glut.glutGet(System.Int32)"/>
5268
<seealso cref="M:Tao.OpenGl.Gl.glGetString(System.Int32)"/>
5269
</member>
5270
<member name="M:Tao.FreeGlut.Glut.glutGetModifiers">
5271
<summary>
5272
Returns the modifier key state when certain callbacks were generated.
5273
</summary>
5274
<returns>
5275
<para>
5276
Returns the modifier key state at the time the input event for a keyboard,
5277
special, or mouse callback is generated. Valid values are:
5278
</para>
5279
<para>
5280
<list type="table">
5281
<listheader>
5282
<term>Value</term>
5283
<description>Description</description>
5284
</listheader>
5285
<item>
5286
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_ACTIVE_SHIFT"/></term>
5287
<description>
5288
Set if the Shift modifier or Caps Lock is active.
5289
</description>
5290
</item>
5291
<item>
5292
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_ACTIVE_CTRL"/></term>
5293
<description>
5294
Set if the Ctrl modifier is active.
5295
</description>
5296
</item>
5297
<item>
5298
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_ACTIVE_ALT"/></term>
5299
<description>
5300
Set if the Alt modifier is active.
5301
</description>
5302
</item>
5303
</list>
5304
</para>
5305
</returns>
5306
<remarks>
5307
<b>glutGetModifiers</b> returns the modifier key state at the time the input
5308
event for a keyboard, special, or mouse callback is generated. This routine
5309
may only be called while a keyboard, special, or mouse callback is being
5310
handled. The window system is permitted to intercept window system defined
5311
modifier key strokes or mouse buttons, in which case, no GLUT callback will
5312
be generated. This interception will be independent of use of
5313
<b>glutGetModifiers</b>.
5314
</remarks>
5315
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)"/>
5316
<seealso cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>
5317
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)"/>
5318
</member>
5319
<member name="M:Tao.FreeGlut.Glut.glutLayerGet(System.Int32)">
5320
<summary>
5321
Retrieves GLUT state pertaining to the layers of the current window.
5322
</summary>
5323
<param name="info">
5324
<para>
5325
Name of device information to retrieve. Valid values are:
5326
</para>
5327
<para>
5328
<list type="table">
5329
<listheader>
5330
<term>Value</term>
5331
<description>Description</description>
5332
</listheader>
5333
<item>
5334
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_OVERLAY_POSSIBLE"/></term>
5335
<description>
5336
Whether an overlay could be established for the current window
5337
given the current initial display mode. If false,
5338
<see cref="M:Tao.FreeGlut.Glut.glutEstablishOverlay"/> will fail with a fatal error
5339
if called.
5340
</description>
5341
</item>
5342
<item>
5343
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_LAYER_IN_USE"/></term>
5344
<description>
5345
Either <see cref="F:Tao.FreeGlut.Glut.GLUT_NORMAL"/> or <see cref="F:Tao.FreeGlut.Glut.GLUT_OVERLAY"/>
5346
depending on whether the normal plane or overlay is the layer in
5347
use.
5348
</description>
5349
</item>
5350
<item>
5351
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_HAS_OVERLAY"/></term>
5352
<description>
5353
If the current window has an overlay established.
5354
</description>
5355
</item>
5356
<item>
5357
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_TRANSPARENT_INDEX"/></term>
5358
<description>
5359
The transparent color index of the overlay of the current window;
5360
negative one is returned if no overlay is in use.
5361
</description>
5362
</item>
5363
<item>
5364
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_NORMAL_DAMAGED"/></term>
5365
<description>
5366
True if the normal plane of the current window has damaged (by
5367
window system activity) since the last display callback was
5368
triggered. Calling <see cref="M:Tao.FreeGlut.Glut.glutPostRedisplay"/> will not set
5369
this true.
5370
</description>
5371
</item>
5372
<item>
5373
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_OVERLAY_DAMAGED"/></term>
5374
<description>
5375
True if the overlay plane of the current window has damaged (by
5376
window system activity) since the last display callback was
5377
triggered. Calling <see cref="M:Tao.FreeGlut.Glut.glutPostRedisplay"/> or
5378
<see cref="M:Tao.FreeGlut.Glut.glutPostOverlayRedisplay"/> will not set this true.
5379
Negative one is returned if no overlay is in use.
5380
</description>
5381
</item>
5382
</list>
5383
</para>
5384
</param>
5385
<returns>
5386
Retrieves GLUT layer information for the current window represented by
5387
integers. The <i>info</i> parameter determines what type of layer
5388
information to return.
5389
</returns>
5390
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
5391
<seealso cref="M:Tao.FreeGlut.Glut.glutEstablishOverlay"/>
5392
<seealso cref="M:Tao.FreeGlut.Glut.glutSetColor(System.Int32,System.Single,System.Single,System.Single)"/>
5393
</member>
5394
<member name="M:Tao.FreeGlut.Glut.glutBitmapCharacter(System.IntPtr,System.Int32)">
5395
<summary>
5396
Renders a bitmap character using OpenGL.
5397
</summary>
5398
<param name="font">
5399
<para>
5400
Bitmap font to use. Without using any display lists,
5401
<b>glutBitmapCharacter</b> renders the character in the named bitmap font.
5402
The available fonts are:
5403
</para>
5404
<para>
5405
<list type="table">
5406
<listheader>
5407
<term>Value</term>
5408
<description>Description</description>
5409
</listheader>
5410
<item>
5411
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_BITMAP_8_BY_13"/></term>
5412
<description>
5413
A fixed width font with every character fitting in an 8 by 13
5414
pixel rectangle.
5415
</description>
5416
</item>
5417
<item>
5418
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_BITMAP_9_BY_15"/></term>
5419
<description>
5420
A fixed width font with every character fitting in an 9 by 15
5421
pixel rectangle.
5422
</description>
5423
</item>
5424
<item>
5425
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_BITMAP_TIMES_ROMAN_10"/></term>
5426
<description>
5427
A 10-point proportional spaced Times Roman font.
5428
</description>
5429
</item>
5430
<item>
5431
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_BITMAP_TIMES_ROMAN_24"/></term>
5432
<description>
5433
A 24-point proportional spaced Times Roman font.
5434
</description>
5435
</item>
5436
<item>
5437
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_BITMAP_HELVETICA_10"/></term>
5438
<description>
5439
A 10-point proportional spaced Helvetica font.
5440
</description>
5441
</item>
5442
<item>
5443
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_BITMAP_HELVETICA_12"/></term>
5444
<description>
5445
A 12-point proportional spaced Helvetica font.
5446
</description>
5447
</item>
5448
<item>
5449
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_BITMAP_HELVETICA_18"/></term>
5450
<description>
5451
A 18-point proportional spaced Helvetica font.
5452
</description>
5453
</item>
5454
</list>
5455
</para>
5456
</param>
5457
<param name="character">
5458
Character to render (not confined to 8 bits).
5459
</param>
5460
<remarks>
5461
<para>
5462
Rendering a nonexistent character has no effect. <b>glutBitmapCharacter</b>
5463
automatically sets the OpenGL unpack pixel storage modes it needs
5464
appropriately and saves and restores the previous modes before returning.
5465
The generated call to <c>Gl.glBitmap</c> will adjust the current raster
5466
position based on the width of the character.
5467
</para>
5468
<para>
5469
<b>EXAMPLE</b>
5470
</para>
5471
<para>
5472
Here is a routine that shows how to render a string of text with
5473
<b>glutBitmapCharacter</b>:
5474
</para>
5475
<para>
5476
<code>
5477
private void PrintText(float x, float y, string text) {
5478
Gl.glRasterPos2f(x, y);
5479
foreach(char c in text) {
5480
Glut.glutBitmapCharacter(Glut.GLUT_BITMAP_HELVETICA_18, c);
5481
}
5482
}
5483
</code>
5484
</para>
5485
</remarks>
5486
<seealso cref="M:Tao.FreeGlut.Glut.glutBitmapWidth(System.IntPtr,System.Int32)"/>
5487
<seealso cref="M:Tao.FreeGlut.Glut.glutStrokeCharacter(System.IntPtr,System.Int32)"/>
5488
</member>
5489
<member name="M:Tao.FreeGlut.Glut.glutBitmapWidth(System.IntPtr,System.Int32)">
5490
<summary>
5491
Returns the width of a bitmap character.
5492
</summary>
5493
<param name="font">
5494
Bitmap font to use. For valid values see the
5495
<see cref="M:Tao.FreeGlut.Glut.glutBitmapCharacter(System.IntPtr,System.Int32)"/> description.
5496
</param>
5497
<param name="character">
5498
Character to return width of (not confined to 8 bits).
5499
</param>
5500
<returns>
5501
Returns the width in pixels of a bitmap character in a supported bitmap font.
5502
</returns>
5503
<remarks>
5504
<b>glutBitmapWidth</b> returns the width in pixels of a bitmap character in a
5505
supported bitmap font. While the width of characters in a font may vary
5506
(though fixed width fonts do not vary), the maximum height characteristics of
5507
a particular font are fixed.
5508
</remarks>
5509
<seealso cref="M:Tao.FreeGlut.Glut.glutBitmapCharacter(System.IntPtr,System.Int32)"/>
5510
<seealso cref="M:Tao.FreeGlut.Glut.glutStrokeWidth(System.IntPtr,System.Int32)"/>
5511
</member>
5512
<member name="M:Tao.FreeGlut.Glut.glutStrokeCharacter(System.IntPtr,System.Int32)">
5513
<summary>
5514
Renders a stroke character using OpenGL.
5515
</summary>
5516
<param name="font">
5517
<para>
5518
Stroke font to use. Without using any display lists,
5519
<b>glutStrokeCharacter</b> renders the character in the named stroke font.
5520
The available fonts are:
5521
</para>
5522
<para>
5523
<list type="table">
5524
<listheader>
5525
<term>Value</term>
5526
<description>Description</description>
5527
</listheader>
5528
<item>
5529
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_STROKE_ROMAN"/></term>
5530
<description>
5531
A proportionally spaced Roman Simplex font for ASCII characters
5532
32 through 127. The maximum top character in the font is 119.05
5533
units; the bottom descends 33.33 units.
5534
</description>
5535
</item>
5536
<item>
5537
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_STROKE_MONO_ROMAN"/></term>
5538
<description>
5539
A mono-spaced spaced Roman Simplex font (same characters as
5540
<see cref="F:Tao.FreeGlut.Glut.GLUT_STROKE_ROMAN"/>) for ASCII characters 32 through
5541
127. The maximum top character in the font is 119.05 units; the
5542
bottom descends 33.33 units. Each character is 104.76 units wide.
5543
</description>
5544
</item>
5545
</list>
5546
</para>
5547
</param>
5548
<param name="character">
5549
Character to render (not confined to 8 bits).
5550
</param>
5551
<remarks>
5552
<para>
5553
Rendering a nonexistent character has no effect. A <c>Gl.glTranslatef</c> is
5554
used to translate the current model view matrix to advance the width of the
5555
character.
5556
</para>
5557
<para>
5558
<b>EXAMPLE</b>
5559
</para>
5560
<para>
5561
Here is a routine that shows how to render a text string with
5562
<b>glutStrokeCharacter</b>:
5563
</para>
5564
<para>
5565
<code>
5566
private void PrintText(float x, float y, string text) {
5567
GL.glPushMatrix();
5568
Gl.glTranslatef(x, y, 0);
5569
foreach(char c in text) {
5570
Glut.glutStrokeCharacter(Glut.GLUT_STROKE_ROMAN, c);
5571
}
5572
Gl.glPopMatrix();
5573
}
5574
</code>
5575
</para>
5576
<para>
5577
If you want to draw stroke font text using wide, antialiased lines, use:
5578
</para>
5579
<para>
5580
<code>
5581
Gl.glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA);
5582
Gl.glEnable(Gl.GL_BLEND);
5583
Gl.glEnable(Gl.GL_LINE_SMOOTH);
5584
Gl.glLineWidth(2.0f);
5585
PrintText(200, 225, "This is antialiased.");
5586
</code>
5587
</para>
5588
</remarks>
5589
<seealso cref="M:Tao.FreeGlut.Glut.glutBitmapCharacter(System.IntPtr,System.Int32)"/>
5590
<seealso cref="M:Tao.FreeGlut.Glut.glutStrokeWidth(System.IntPtr,System.Int32)"/>
5591
</member>
5592
<member name="M:Tao.FreeGlut.Glut.glutStrokeWidth(System.IntPtr,System.Int32)">
5593
<summary>
5594
Returns the width of a stroke character.
5595
</summary>
5596
<param name="font">
5597
Stroke font to use. For valid values see the
5598
<see cref="M:Tao.FreeGlut.Glut.glutStrokeCharacter(System.IntPtr,System.Int32)"/> description.
5599
</param>
5600
<param name="character">
5601
Character to return width of (not confined to 8 bits).
5602
</param>
5603
<returns>
5604
Returns the width in pixels of a stroke character in a supported stroke font.
5605
</returns>
5606
<remarks>
5607
<b>glutStrokeWidth</b> returns the width in pixels of a stroke character in a
5608
supported stroke font. While the width of characters in a font may vary
5609
(though fixed width fonts do not vary), the maximum height characteristics of
5610
a particular font are fixed.
5611
</remarks>
5612
<seealso cref="M:Tao.FreeGlut.Glut.glutBitmapWidth(System.IntPtr,System.Int32)"/>
5613
<seealso cref="M:Tao.FreeGlut.Glut.glutStrokeCharacter(System.IntPtr,System.Int32)"/>
5614
</member>
5615
<member name="M:Tao.FreeGlut.Glut.glutBitmapLength(System.IntPtr,System.String)">
5616
<summary>
5617
Returns the length of a bitmap font string.
5618
</summary>
5619
<param name="font">
5620
Bitmap font to use. For valid values, see the
5621
<see cref="M:Tao.FreeGlut.Glut.glutBitmapCharacter(System.IntPtr,System.Int32)"/> description.
5622
</param>
5623
<param name="text">
5624
Text string.
5625
</param>
5626
<returns>
5627
Length of string in pixels.
5628
</returns>
5629
<remarks>
5630
<b>glutBitmapLength</b> returns the length in pixels of a string (8-bit
5631
characters). This length is equivalent to summing all the widths returned by
5632
<see cref="M:Tao.FreeGlut.Glut.glutBitmapWidth(System.IntPtr,System.Int32)"/> for each character in the string.
5633
</remarks>
5634
<seealso cref="M:Tao.FreeGlut.Glut.glutBitmapCharacter(System.IntPtr,System.Int32)"/>
5635
<seealso cref="M:Tao.FreeGlut.Glut.glutStrokeWidth(System.IntPtr,System.Int32)"/>
5636
</member>
5637
<member name="M:Tao.FreeGlut.Glut.glutStrokeLength(System.IntPtr,System.String)">
5638
<summary>
5639
Returns the length of a stroke font string.
5640
</summary>
5641
<param name="font">
5642
Stroke font to use. For valid values see the
5643
<see cref="M:Tao.FreeGlut.Glut.glutStrokeCharacter(System.IntPtr,System.Int32)"/> description.
5644
</param>
5645
<param name="text">
5646
Text string.
5647
</param>
5648
<returns>
5649
The length in modeling units of a string.
5650
</returns>
5651
<remarks>
5652
<b>glutStrokeLength</b> returns the length in modeling units of a string
5653
(8-bit characters). This length is equivalent to summing all the widths
5654
returned by <see cref="M:Tao.FreeGlut.Glut.glutStrokeWidth(System.IntPtr,System.Int32)"/> for each character in the string.
5655
</remarks>
5656
<seealso cref="M:Tao.FreeGlut.Glut.glutBitmapWidth(System.IntPtr,System.Int32)"/>
5657
<seealso cref="M:Tao.FreeGlut.Glut.glutStrokeCharacter(System.IntPtr,System.Int32)"/>
5658
</member>
5659
<member name="M:Tao.FreeGlut.Glut.glutWireSphere(System.Double,System.Int32,System.Int32)">
5660
<summary>
5661
Renders a wireframe sphere.
5662
</summary>
5663
<param name="radius">
5664
The radius of the sphere.
5665
</param>
5666
<param name="slices">
5667
The number of subdivisions around the Z axis (similar to lines of longitude).
5668
</param>
5669
<param name="stacks">
5670
The number of subdivisions along the Z axis (similar to lines of latitude).
5671
</param>
5672
<remarks>
5673
<b>glutWireSphere</b> renders a wireframe sphere centered at the modeling
5674
coordinates origin of the specified <i>radius</i>. The sphere is subdivided
5675
around the Z axis into <i>slices</i> and along the Z axis into <i>stacks</i>.
5676
</remarks>
5677
<seealso cref="M:Tao.FreeGlut.Glut.glutSolidSphere(System.Double,System.Int32,System.Int32)"/>
5678
</member>
5679
<member name="M:Tao.FreeGlut.Glut.glutSolidSphere(System.Double,System.Int32,System.Int32)">
5680
<summary>
5681
Renders a solid sphere.
5682
</summary>
5683
<param name="radius">
5684
The radius of the sphere.
5685
</param>
5686
<param name="slices">
5687
The number of subdivisions around the Z axis (similar to lines of longitude).
5688
</param>
5689
<param name="stacks">
5690
The number of subdivisions along the Z axis (similar to lines of latitude).
5691
</param>
5692
<remarks>
5693
<b>glutSolidSphere</b> renders a solid sphere centered at the modeling
5694
coordinates origin of the specified <i>radius</i>. The sphere is subdivided
5695
around the Z axis into <i>slices</i> and along the Z axis into <i>stacks</i>.
5696
</remarks>
5697
<seealso cref="M:Tao.FreeGlut.Glut.glutWireSphere(System.Double,System.Int32,System.Int32)"/>
5698
</member>
5699
<member name="M:Tao.FreeGlut.Glut.glutWireCone(System.Double,System.Double,System.Int32,System.Int32)">
5700
<summary>
5701
Renders a wireframe cone.
5702
</summary>
5703
<param name="baseRadius">
5704
The radius of the base of the cone.
5705
</param>
5706
<param name="height">
5707
The height of the cone.
5708
</param>
5709
<param name="slices">
5710
The number of subdivisions around the Z axis.
5711
</param>
5712
<param name="stacks">
5713
The number of subdivisions along the Z axis.
5714
</param>
5715
<remarks>
5716
<b>glutWireCone</b> renders a wireframe cone oriented along the Z axis. The
5717
<i>baseRadius</i> of the cone is placed at Z = 0, and the top at
5718
Z = <i>height</i>. The cone is subdivided around the Z axis into
5719
<i>slices</i>, and along the Z axis into <i>stacks</i>.
5720
</remarks>
5721
<seealso cref="M:Tao.FreeGlut.Glut.glutSolidCone(System.Double,System.Double,System.Int32,System.Int32)"/>
5722
</member>
5723
<member name="M:Tao.FreeGlut.Glut.glutSolidCone(System.Double,System.Double,System.Int32,System.Int32)">
5724
<summary>
5725
Renders a solid cone.
5726
</summary>
5727
<param name="baseRadius">
5728
The radius of the base of the cone.
5729
</param>
5730
<param name="height">
5731
The height of the cone.
5732
</param>
5733
<param name="slices">
5734
The number of subdivisions around the Z axis.
5735
</param>
5736
<param name="stacks">
5737
The number of subdivisions along the Z axis.
5738
</param>
5739
<remarks>
5740
<b>glutSolidCone</b> renders a solid cone oriented along the Z axis. The
5741
<i>baseRadius</i> of the cone is placed at Z = 0, and the top at
5742
Z = <i>height</i>. The cone is subdivided around the Z axis into
5743
<i>slices</i>, and along the Z axis into <i>stacks</i>.
5744
</remarks>
5745
<seealso cref="M:Tao.FreeGlut.Glut.glutWireCone(System.Double,System.Double,System.Int32,System.Int32)"/>
5746
</member>
5747
<member name="M:Tao.FreeGlut.Glut.glutWireCube(System.Double)">
5748
<summary>
5749
Renders a wireframe cube.
5750
</summary>
5751
<param name="size">
5752
Length of the sides of the cube.
5753
</param>
5754
<remarks>
5755
<b>glutWireCube</b> renders a wireframe cube. The cube is centered at the
5756
modeling coordinates origin with sides of length <i>size</i>.
5757
</remarks>
5758
<seealso cref="M:Tao.FreeGlut.Glut.glutSolidCube(System.Double)"/>
5759
</member>
5760
<member name="M:Tao.FreeGlut.Glut.glutSolidCube(System.Double)">
5761
<summary>
5762
Renders a solid cube.
5763
</summary>
5764
<param name="size">
5765
Length of the sides of the cube.
5766
</param>
5767
<remarks>
5768
<b>glutSolidCube</b> renders a solid cube. The cube is centered at the
5769
modeling coordinates origin with sides of length <i>size</i>.
5770
</remarks>
5771
<seealso cref="M:Tao.FreeGlut.Glut.glutWireCube(System.Double)"/>
5772
</member>
5773
<member name="M:Tao.FreeGlut.Glut.glutWireTorus(System.Double,System.Double,System.Int32,System.Int32)">
5774
<summary>
5775
Renders a wireframe torus (doughnut).
5776
</summary>
5777
<param name="innerRadius">
5778
Inner radius of the torus.
5779
</param>
5780
<param name="outerRadius">
5781
Outer radius of the torus.
5782
</param>
5783
<param name="sides">
5784
Number of sides for each radial section.
5785
</param>
5786
<param name="rings">
5787
Number of radial divisions for the torus.
5788
</param>
5789
<remarks>
5790
<b>glutWireTorus</b> renders a wireframe torus (doughnut) centered at the
5791
modeling coordinates origin whose axis is aligned with the Z axis.
5792
</remarks>
5793
<seealso cref="M:Tao.FreeGlut.Glut.glutSolidTorus(System.Double,System.Double,System.Int32,System.Int32)"/>
5794
</member>
5795
<member name="M:Tao.FreeGlut.Glut.glutSolidTorus(System.Double,System.Double,System.Int32,System.Int32)">
5796
<summary>
5797
Renders a solid torus (doughnut).
5798
</summary>
5799
<param name="innerRadius">
5800
Inner radius of the torus.
5801
</param>
5802
<param name="outerRadius">
5803
Outer radius of the torus.
5804
</param>
5805
<param name="sides">
5806
Number of sides for each radial section.
5807
</param>
5808
<param name="rings">
5809
Number of radial divisions for the torus.
5810
</param>
5811
<remarks>
5812
<b>glutSolidTorus</b> renders a solid torus (doughnut) centered at the
5813
modeling coordinates origin whose axis is aligned with the Z axis.
5814
</remarks>
5815
<seealso cref="M:Tao.FreeGlut.Glut.glutWireTorus(System.Double,System.Double,System.Int32,System.Int32)"/>
5816
</member>
5817
<member name="M:Tao.FreeGlut.Glut.glutWireDodecahedron">
5818
<summary>
5819
Renders a wireframe dodecahedron (12-sided regular solid).
5820
</summary>
5821
<remarks>
5822
<b>glutWireDodecahedron</b> renders a wireframe dodecahedron centered at the
5823
modeling coordinates origin with a radius of <c>Sqrt(3)</c>.
5824
</remarks>
5825
<seealso cref="M:Tao.FreeGlut.Glut.glutSolidDodecahedron"/>
5826
</member>
5827
<member name="M:Tao.FreeGlut.Glut.glutSolidDodecahedron">
5828
<summary>
5829
Renders a solid dodecahedron (12-sided regular solid).
5830
</summary>
5831
<remarks>
5832
<b>glutSolidDodecahedron</b> renders a solid dodecahedron centered at the
5833
modeling coordinates origin with a radius of <c>Sqrt(3)</c>.
5834
</remarks>
5835
<seealso cref="M:Tao.FreeGlut.Glut.glutWireDodecahedron"/>
5836
</member>
5837
<member name="M:Tao.FreeGlut.Glut.glutWireTeapot(System.Double)">
5838
<summary>
5839
Renders a wireframe teapot.
5840
</summary>
5841
<param name="size">
5842
Relative size of the teapot.
5843
</param>
5844
<remarks>
5845
<para>
5846
<b>glutWireTeapot</b> renders a wireframe teapot. Both surface normals and
5847
texture coordinates for the teapot are generated. The teapot is generated
5848
with OpenGL evaluators.
5849
</para>
5850
<para>
5851
<b>Footnote</b>
5852
</para>
5853
<para>
5854
Yes, the classic computer graphics teapot modeled by Martin Newell in 1975.
5855
</para>
5856
</remarks>
5857
<seealso cref="M:Tao.FreeGlut.Glut.glutSolidTeapot(System.Double)"/>
5858
</member>
5859
<member name="M:Tao.FreeGlut.Glut.glutSolidTeapot(System.Double)">
5860
<summary>
5861
Renders a solid teapot.
5862
</summary>
5863
<param name="size">
5864
Relative size of the teapot.
5865
</param>
5866
<remarks>
5867
<para>
5868
<b>glutSolidTeapot</b> renders a solid teapot. Both surface normals and
5869
texture coordinates for the teapot are generated. The teapot is generated
5870
with OpenGL evaluators.
5871
</para>
5872
<para>
5873
<b>Footnote</b>
5874
</para>
5875
<para>
5876
Yes, the classic computer graphics teapot modeled by Martin Newell in 1975.
5877
</para>
5878
</remarks>
5879
<seealso cref="M:Tao.FreeGlut.Glut.glutWireTeapot(System.Double)"/>
5880
</member>
5881
<member name="M:Tao.FreeGlut.Glut.glutWireOctahedron">
5882
<summary>
5883
Renders wireframe octahedron (8-sided regular solid).
5884
</summary>
5885
<remarks>
5886
<b>glutWireOctahedron</b> renders a wireframe octahedron centered at the
5887
modeling coordinates origin with a radius of 1.0.
5888
</remarks>
5889
<seealso cref="M:Tao.FreeGlut.Glut.glutSolidOctahedron"/>
5890
</member>
5891
<member name="M:Tao.FreeGlut.Glut.glutSolidOctahedron">
5892
<summary>
5893
Renders solid octahedron (8-sided regular solid).
5894
</summary>
5895
<remarks>
5896
<b>glutSolidOctahedron</b> renders a solid octahedron centered at the
5897
modeling coordinates origin with a radius of 1.0.
5898
</remarks>
5899
<seealso cref="M:Tao.FreeGlut.Glut.glutWireOctahedron"/>
5900
</member>
5901
<member name="M:Tao.FreeGlut.Glut.glutWireTetrahedron">
5902
<summary>
5903
Renders a wireframe tetrahedron (4-sided regular solid).
5904
</summary>
5905
<remarks>
5906
<b>glutWireTetrahedron</b> renders a wireframe tetrahedron centered at the
5907
modeling coordinates origin with a radius of <c>Sqrt(3)</c>.
5908
</remarks>
5909
<seealso cref="M:Tao.FreeGlut.Glut.glutSolidTetrahedron"/>
5910
</member>
5911
<member name="M:Tao.FreeGlut.Glut.glutSolidTetrahedron">
5912
<summary>
5913
Renders a solid tetrahedron (4-sided regular solid).
5914
</summary>
5915
<remarks>
5916
<b>glutSolidTetrahedron</b> renders a solid tetrahedron centered at the
5917
modeling coordinates origin with a radius of <c>Sqrt(3)</c>.
5918
</remarks>
5919
<seealso cref="M:Tao.FreeGlut.Glut.glutWireTetrahedron"/>
5920
</member>
5921
<member name="M:Tao.FreeGlut.Glut.glutWireIcosahedron">
5922
<summary>
5923
Renders a wireframe icosahedron (20-sided regular solid).
5924
</summary>
5925
<remarks>
5926
<b>glutWireIcosahedron</b> renders a wireframe icosahedron. The icosahedron
5927
is centered at the modeling coordinates origin and has a radius of 1.0.
5928
</remarks>
5929
<seealso cref="M:Tao.FreeGlut.Glut.glutSolidIcosahedron"/>
5930
</member>
5931
<member name="M:Tao.FreeGlut.Glut.glutSolidIcosahedron">
5932
<summary>
5933
Renders a solid icosahedron (20-sided regular solid).
5934
</summary>
5935
<remarks>
5936
<b>glutSolidIcosahedron</b> renders a solid icosahedron. The icosahedron is
5937
centered at the modeling coordinates origin and has a radius of 1.0.
5938
</remarks>
5939
<seealso cref="M:Tao.FreeGlut.Glut.glutWireIcosahedron"/>
5940
</member>
5941
<member name="M:Tao.FreeGlut.Glut.glutVideoResizeGet(System.Int32)">
5942
<summary>
5943
Retrieves GLUT video resize information represented by integers.
5944
</summary>
5945
<param name="param">
5946
<para>
5947
Name of video resize information to retrieve. Available values are:
5948
</para>
5949
<para>
5950
<list type="table">
5951
<listheader>
5952
<term>Value</term>
5953
<description>Description</description>
5954
</listheader>
5955
<item>
5956
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_POSSIBLE"/></term>
5957
<description>
5958
Non-zero if video resizing is supported by the underlying system;
5959
zero if not supported. If this is zero, the other video resize
5960
GLUT calls do nothing when called.
5961
</description>
5962
</item>
5963
<item>
5964
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_X_DELTA"/></term>
5965
<description>Unknown</description>
5966
</item>
5967
<item>
5968
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_Y_DELTA"/></term>
5969
<description>Unknown</description>
5970
</item>
5971
<item>
5972
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_WIDTH_DELTA"/></term>
5973
<description>Unknown</description>
5974
</item>
5975
<item>
5976
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_HEIGHT_DELTA"/></term>
5977
<description>Unknown</description>
5978
</item>
5979
<item>
5980
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_X"/></term>
5981
<description>Unknown</description>
5982
</item>
5983
<item>
5984
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_Y"/></term>
5985
<description>Unknown</description>
5986
</item>
5987
<item>
5988
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_WIDTH"/></term>
5989
<description>Unknown</description>
5990
</item>
5991
<item>
5992
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_HEIGHT"/></term>
5993
<description>Unknown</description>
5994
</item>
5995
<item>
5996
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_VIDEO_RESIZE_IN_USE"/></term>
5997
<description>Unknown</description>
5998
</item>
5999
</list>
6000
</para>
6001
</param>
6002
<remarks>
6003
<para>
6004
<b>glutVideoResizeGet</b> retrieves GLUT video resizing information
6005
represented by integers. The <i>param</i> parameter determines what type of
6006
video resize information to return.
6007
</para>
6008
<para>
6009
<b>X IMPLEMENTATION NOTES</b>
6010
</para>
6011
<para>
6012
The current implementation uses the <c>SGIX_video_resize</c> GLX extension.
6013
This extension is currently supported on SGI's InfiniteReality-based systems.
6014
</para>
6015
<para>
6016
<b>WIN32 IMPLEMENTATION NOTES</b>
6017
</para>
6018
<para>
6019
The current implementation never reports that video resizing is possible.
6020
</para>
6021
</remarks>
6022
<seealso cref="M:Tao.FreeGlut.Glut.glutGet(System.Int32)"/>
6023
<seealso cref="M:Tao.FreeGlut.Glut.glutSetupVideoResizing"/>
6024
<seealso cref="M:Tao.FreeGlut.Glut.glutStopVideoResizing"/>
6025
<seealso cref="M:Tao.FreeGlut.Glut.glutVideoPan(System.Int32,System.Int32,System.Int32,System.Int32)"/>
6026
<seealso cref="M:Tao.FreeGlut.Glut.glutVideoResize(System.Int32,System.Int32,System.Int32,System.Int32)"/>
6027
</member>
6028
<member name="M:Tao.FreeGlut.Glut.glutSetupVideoResizing">
6029
<summary>
6030
Unknown. Unable to locate definitive documentation on this method.
6031
</summary>
6032
<remarks>
6033
Unknown. Unable to locate definitive documentation on this method.
6034
</remarks>
6035
</member>
6036
<member name="M:Tao.FreeGlut.Glut.glutStopVideoResizing">
6037
<summary>
6038
Unknown. Unable to locate definitive documentation on this method.
6039
</summary>
6040
<remarks>
6041
Unknown. Unable to locate definitive documentation on this method.
6042
</remarks>
6043
</member>
6044
<member name="M:Tao.FreeGlut.Glut.glutVideoResize(System.Int32,System.Int32,System.Int32,System.Int32)">
6045
<summary>
6046
Unknown. Unable to locate definitive documentation on this method.
6047
</summary>
6048
<param name="x">
6049
Unknown. Unable to locate definitive documentation on this method.
6050
</param>
6051
<param name="y">
6052
Unknown. Unable to locate definitive documentation on this method.
6053
</param>
6054
<param name="width">
6055
Unknown. Unable to locate definitive documentation on this method.
6056
</param>
6057
<param name="height">
6058
Unknown. Unable to locate definitive documentation on this method.
6059
</param>
6060
<remarks>
6061
Unknown. Unable to locate definitive documentation on this method.
6062
</remarks>
6063
</member>
6064
<member name="M:Tao.FreeGlut.Glut.glutVideoPan(System.Int32,System.Int32,System.Int32,System.Int32)">
6065
<summary>
6066
Unknown. Unable to locate definitive documentation on this method.
6067
</summary>
6068
<param name="x">
6069
Unknown. Unable to locate definitive documentation on this method.
6070
</param>
6071
<param name="y">
6072
Unknown. Unable to locate definitive documentation on this method.
6073
</param>
6074
<param name="width">
6075
Unknown. Unable to locate definitive documentation on this method.
6076
</param>
6077
<param name="height">
6078
Unknown. Unable to locate definitive documentation on this method.
6079
</param>
6080
<remarks>
6081
Unknown. Unable to locate definitive documentation on this method.
6082
</remarks>
6083
</member>
6084
<member name="M:Tao.FreeGlut.Glut.glutReportErrors">
6085
<summary>
6086
Prints out OpenGL run-time errors.
6087
</summary>
6088
<remarks>
6089
<para>
6090
<b>glutReportErrors</b> prints out any OpenGL run-time errors pending and
6091
clears the errors. This routine typically should only be used for debugging
6092
purposes since calling it will slow OpenGL programs. It is provided as a
6093
convenience; all the routine does is call <see cref="M:Tao.OpenGl.Gl.glGetError"/> until
6094
no more errors are reported. Any errors detected are reported with a GLUT
6095
warning and the corresponding text message generated by
6096
/*see cref="Glu.gluErrorString" /&gt;*/.
6097
</para>
6098
<para>
6099
Calling <b>glutReportErrors</b> repeatedly in your program can help isolate
6100
OpenGL errors to the offending OpenGL command. Remember that you can use the
6101
<c>-gldebug</c> option to detect OpenGL errors in any GLUT program.
6102
</para>
6103
</remarks>
6104
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateWindow(System.String)"/>
6105
/*seealso cref="Glu.gluErrorString" /&gt;*/
6106
<seealso cref="M:Tao.OpenGl.Gl.glGetError"/>
6107
<seealso cref="M:Tao.FreeGlut.Glut.glutInit"/>
6108
<seealso cref="M:Tao.FreeGlut.Glut.glutInitDisplayMode(System.Int32)"/>
6109
</member>
6110
<member name="M:Tao.FreeGlut.Glut.glutIgnoreKeyRepeat(System.Int32)">
6111
<summary>
6112
Determines if auto repeat keystrokes are reported to the current window.
6113
</summary>
6114
<param name="ignore">
6115
Non-zero indicates auto repeat keystrokes should not be reported by the
6116
keyboard and special callbacks; zero indicates that auto repeat keystrokes
6117
will be reported.
6118
</param>
6119
<remarks>
6120
<para>
6121
<b>glutIgnoreKeyRepeat</b> determines if auto repeat keystrokes are reported
6122
to the current window. The ignore auto repeat state of a window can be
6123
queried with <c>Glut.glutDeviceGet(Glut.GLUT_DEVICE_IGNORE_KEY_REPEAT)</c>.
6124
</para>
6125
<para>
6126
Ignoring auto repeated keystrokes is generally done in conjunction with using
6127
the <see cref="M:Tao.FreeGlut.Glut.glutKeyboardUpFunc(Tao.FreeGlut.Glut.KeyboardUpCallback)"/> and <see cref="M:Tao.FreeGlut.Glut.glutSpecialUpFunc(Tao.FreeGlut.Glut.SpecialUpCallback)"/>
6128
callbacks to repeat key releases. If you do not ignore auto repeated
6129
keystrokes, your GLUT application will experience repeated release/press
6130
callbacks. Games using the keyboard will typically want to ignore key
6131
repeat.
6132
</para>
6133
<para>
6134
<b>X IMPLEMENTATION NOTES</b>
6135
</para>
6136
<para>
6137
X11 sends <c>KeyPress</c> events repeatedly when the window system's global
6138
auto repeat is enabled. <b>glutIgnoreKeyRepeat</b> can prevent these auto
6139
repeated keystrokes from being reported as keyboard or special callbacks, but
6140
there is still some minimal overhead by the X server to continually stream
6141
<c>KeyPress</c> events to the GLUT application. The
6142
<see cref="M:Tao.FreeGlut.Glut.glutSetKeyRepeat(System.Int32)"/> routine can be used to actually disable the
6143
global sending of auto repeated <c>KeyPress</c> events. Note that
6144
<see cref="M:Tao.FreeGlut.Glut.glutSetKeyRepeat(System.Int32)"/> affects the global window system auto repeat
6145
state so other applications will not auto repeat if you disable auto repeat
6146
globally through <see cref="M:Tao.FreeGlut.Glut.glutSetKeyRepeat(System.Int32)"/>.
6147
</para>
6148
</remarks>
6149
<seealso cref="M:Tao.FreeGlut.Glut.glutDeviceGet(System.Int32)"/>
6150
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)"/>
6151
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardUpFunc(Tao.FreeGlut.Glut.KeyboardUpCallback)"/>
6152
<seealso cref="M:Tao.FreeGlut.Glut.glutSetKeyRepeat(System.Int32)"/>
6153
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)"/>
6154
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialUpFunc(Tao.FreeGlut.Glut.SpecialUpCallback)"/>
6155
</member>
6156
<member name="M:Tao.FreeGlut.Glut.glutSetKeyRepeat(System.Int32)">
6157
<summary>
6158
Sets the key repeat mode for the window system.
6159
</summary>
6160
<param name="repeatMode">
6161
<para>
6162
Mode for setting key repeat to. Available modes are:
6163
</para>
6164
<para>
6165
<list type="table">
6166
<listheader>
6167
<term>Value</term>
6168
<description>Description</description>
6169
</listheader>
6170
<item>
6171
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_REPEAT_OFF"/></term>
6172
<description>
6173
Disable key repeat for the window system on a global basis if
6174
possible.
6175
</description>
6176
</item>
6177
<item>
6178
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_REPEAT_ON"/></term>
6179
<description>
6180
Enable key repeat for the window system on a global basis if
6181
possible.
6182
</description>
6183
</item>
6184
<item>
6185
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_KEY_REPEAT_DEFAULT"/></term>
6186
<description>
6187
Reset the key repeat mode for the window system to its default
6188
state if possible.
6189
</description>
6190
</item>
6191
</list>
6192
</para>
6193
</param>
6194
<remarks>
6195
<para>
6196
<b>glutSetKeyRepeat</b> sets the key repeat mode for the window system on a
6197
global basis if possible. If supported by the window system, the key repeat
6198
can either be enabled, disabled, or set to the window system's default key
6199
repeat state.
6200
</para>
6201
<para>
6202
<b>X IMPLEMENTATION NOTES</b>
6203
</para>
6204
<para>
6205
X11 sends <c>KeyPress</c> events repeatedly when the window system's global
6206
auto repeat is enabled. <see cref="M:Tao.FreeGlut.Glut.glutIgnoreKeyRepeat(System.Int32)"/> can prevent these
6207
auto repeated keystrokes from being reported as keyboard or special
6208
callbacks, but there is still some minimal overhead by the X server to
6209
continually stream <c>KeyPress</c> events to the GLUT application. The
6210
<b>glutSetKeyRepeat</b> routine can be used to actually disable the global
6211
sending of auto repeated <c>KeyPress</c> events. Note that
6212
<b>glutSetKeyRepeat</b> affects the global window system auto repeat state so
6213
other applications will not auto repeat if you disable auto repeat globally
6214
through <b>glutSetKeyRepeat</b>.
6215
</para>
6216
<para>
6217
GLUT applications using the X11 GLUT implemenation should disable key repeat
6218
with <b>glutSetKeyRepeat</b> to disable key repeats most efficiently.
6219
</para>
6220
<para>
6221
<b>WIN32 IMPLEMENTATION NOTES</b>
6222
</para>
6223
<para>
6224
The Win32 implementation of <b>glutSetKeyRepeat</b> does nothing. The
6225
<see cref="M:Tao.FreeGlut.Glut.glutIgnoreKeyRepeat(System.Int32)"/> routine can be used in the Win32 GLUT
6226
implementation to ignore repeated keys on a per-window basis without changing
6227
the global window system key repeat.
6228
</para>
6229
</remarks>
6230
<seealso cref="M:Tao.FreeGlut.Glut.glutDeviceGet(System.Int32)"/>
6231
<seealso cref="M:Tao.FreeGlut.Glut.glutIgnoreKeyRepeat(System.Int32)"/>
6232
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)"/>
6233
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardUpFunc(Tao.FreeGlut.Glut.KeyboardUpCallback)"/>
6234
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)"/>
6235
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialUpFunc(Tao.FreeGlut.Glut.SpecialUpCallback)"/>
6236
</member>
6237
<member name="M:Tao.FreeGlut.Glut.glutForceJoystickFunc">
6238
<summary>
6239
Forces current window's joystick callback to be called.
6240
</summary>
6241
<remarks>
6242
<para>
6243
<b>glutForceJoystickFunc</b> forces the current window's joystick callback to
6244
be called, reporting the latest joystick state.
6245
</para>
6246
<para>
6247
The joystick callback is called either due to polling of the joystick at the
6248
uniform timer interval set by <see cref="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)"/>'s
6249
<i>pollInterval</i> (specified in milliseconds) or in response to calling
6250
<b>glutForceJoystickFunc</b>. If the <i>pollInterval</i> is non-positive, no
6251
joystick polling is performed and the GLUT application must frequently
6252
(usually from an idle callback) call <b>glutForceJoystickFunc</b>.
6253
</para>
6254
<para>
6255
The joystick callback will be called once (if one exists) for each time
6256
<b>glutForceJoystickFunc</b> is called. The callback is called from
6257
<see cref="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)"/>. That is, when
6258
<see cref="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)"/> returns, the callback will have already
6259
happened.
6260
</para>
6261
<para>
6262
<b>X IMPLEMENTATION NOTES</b>
6263
</para>
6264
<para>
6265
The GLUT 3.7 implementation of GLUT for X11 supports the joystick API, but
6266
not actual joystick input. A future implementation of GLUT for X11 may add
6267
joystick support.
6268
</para>
6269
<para>
6270
<b>WIN32 IMPLEMENTATION NOTES</b>
6271
</para>
6272
<para>
6273
The GLUT 3.7 implementation of GLUT for Win32 supports the joystick API and
6274
joystick input, but does so through the dated <c>joySetCapture</c> and
6275
<c>joyGetPosEx</c> Win32 Multimedia API. The GLUT 3.7 joystick support for
6276
Win32 has all the limitations of the Win32 Multimedia API joystick support.
6277
A future implementation of GLUT for Win32 may use DirectInput.
6278
</para>
6279
</remarks>
6280
<seealso cref="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)"/>
6281
</member>
6282
<member name="M:Tao.FreeGlut.Glut.glutGameModeString(System.String)">
6283
<summary>
6284
Sets the game mode configuration via a string.
6285
</summary>
6286
<param name="str">
6287
string for selecting a game mode configuration.
6288
</param>
6289
<remarks>
6290
<para>
6291
<b>glutGameModeString</b> sets the game mode configuration via a string. The
6292
game mode configuration string for GLUT's fullscreen game mode describes the
6293
suitable screen width and height in pixels, the pixel depth in bits, and the
6294
video refresh frequency in hertz. The game mode configuration string can
6295
also specify a window system dependent display mode.
6296
</para>
6297
<para>
6298
The string is a list of zero or more capability descriptions seperated by
6299
spaces and tabs. Each capability description is a capability name that is
6300
followed by a comparator and a numeric value. (Unlike the display mode
6301
string specified using <see cref="M:Tao.FreeGlut.Glut.glutInitDisplayString(System.String)"/>, the comparator
6302
and numeric value are <i>not</i> optional.) For example, <c>"width&gt;=640"</c>
6303
and <c>"bpp=32"</c> are both valid criteria.
6304
</para>
6305
<para>
6306
The capability descriptions are translated into a set of criteria used to
6307
select the appropriate game mode configuration.
6308
</para>
6309
<para>
6310
The criteria are matched in strict left to right order of precdence. That
6311
is, the first specified criteria (leftmost) takes precedence over the later
6312
criteria for non-exact criteria (greater than, less than, etc. comparators).
6313
Exact criteria (equal, not equal compartors) must match exactly so precedence
6314
is not relevant.
6315
</para>
6316
<para>
6317
The numeric value is an integer that is parsed according to ANSI C's
6318
<c>strtol(str, strptr, 0)</c> behavior. This means that decimal, octal
6319
(leading 0), and hexidecimal values (leading 0x) are accepeted.
6320
</para>
6321
<para>
6322
The valid compartors are:
6323
</para>
6324
<para>
6325
<list type="table">
6326
<listheader>
6327
<term>Value</term>
6328
<description>Description</description>
6329
</listheader>
6330
<item>
6331
<term>=</term>
6332
<description>Equal.</description>
6333
</item>
6334
<item>
6335
<term>!=</term>
6336
<description>Not equal.</description>
6337
</item>
6338
<item>
6339
<term>&lt;</term>
6340
<description>
6341
Less than and preferring larger difference (the least is best).
6342
</description>
6343
</item>
6344
<item>
6345
<term>&gt;</term>
6346
<description>
6347
Greater than and preferring larger differences (the most is
6348
best).
6349
</description>
6350
</item>
6351
<item>
6352
<term>&lt;=</term>
6353
<description>
6354
Less than or equal and preferring larger difference (the least is
6355
best).
6356
</description>
6357
</item>
6358
<item>
6359
<term>&gt;=</term>
6360
<description>
6361
Greater than or equal and preferring more instead of less. This
6362
comparator is useful for allocating resources like color precsion
6363
or depth buffer precision where the maximum precison is generally
6364
preferred. Contrast with the tilde (~) comprator.
6365
</description>
6366
</item>
6367
<item>
6368
<term>~</term>
6369
<description>
6370
Greater than or equal but preferring less instead of more. This
6371
compartor is useful for allocating resources such as stencil bits
6372
or auxillary color buffers where you would rather not over
6373
allocate.
6374
</description>
6375
</item>
6376
</list>
6377
</para>
6378
<para>
6379
The valid capability names are:
6380
</para>
6381
<para>
6382
<list type="table">
6383
<listheader>
6384
<term>Value</term>
6385
<description>Description</description>
6386
</listheader>
6387
<item>
6388
<term>bpp</term>
6389
<description>Bits per pixel for the frame buffer.</description>
6390
</item>
6391
<item>
6392
<term>height</term>
6393
<description>Height of the screen in pixels.</description>
6394
</item>
6395
<item>
6396
<term>hertz</term>
6397
<description>Video refresh rate of the screen in hertz.</description>
6398
</item>
6399
<item>
6400
<term>num</term>
6401
<description>
6402
Number of the window system depenedent display mode
6403
configuration.
6404
</description>
6405
</item>
6406
<item>
6407
<term>width</term>
6408
<description>Width of the screen in pixels.</description>
6409
</item>
6410
</list>
6411
</para>
6412
<para>
6413
An additional compact screen resolution description format is supported.
6414
This compact description convienently encodes the screen resolution
6415
description in a single phrase. For example, <c>"640x480:16@60"</c>
6416
requests a 640 by 480 pixel screen with 16 bits per pixel at a 60 hertz video
6417
refresh rate. A compact screen resolution description can be mixed with
6418
conventional capability descriptions.
6419
</para>
6420
<para>
6421
The compact screen resolution description format is as follows:
6422
</para>
6423
<para>
6424
<c>[width "x" height][":" bitsPerPixel]["@" videoRate]</c>
6425
</para>
6426
<para>
6427
Unspecifed capability descriptions will result in unspecified criteria being
6428
generated. These unspecified criteria help <b>glutGameModeString</b> behave
6429
sensibly with terse game mode description strings.
6430
</para>
6431
</remarks>
6432
</member>
6433
<member name="M:Tao.FreeGlut.Glut.glutEnterGameMode">
6434
<summary>
6435
Enters GLUT's game mode.
6436
</summary>
6437
<returns>
6438
This is defined in the header as an <c>int</c>, however, from the
6439
documentation that I've seen, I believe it should be a <c>void</c>. You
6440
should check your game mode state after entering game mode with:
6441
<see cref="M:Tao.FreeGlut.Glut.glutGameModeGet(System.Int32)"/> passing appropriate parameters.
6442
</returns>
6443
<remarks>
6444
<para>
6445
<b>glutEnterGameMode</b> is designed to enable high-performance fullscreen
6446
GLUT rendering, possibly at a different screen display format. Calling
6447
<b>glutEnterGameMode</b> creates a special fullscreen GLUT window (with its
6448
own callbacks and OpenGL rendering context state). If the game mode string
6449
describes a possible screen display format, GLUT also changes the screen
6450
display format to the one described by the game mode string.
6451
</para>
6452
<para>
6453
When game mode is entered, certain GLUT functionality is disable to
6454
facilitate high-performance fullscreen rendering. GLUT pop-up menus are not
6455
available while in game mode. Other created windows and subwindows are not
6456
displayed in GLUT game mode. Game mode will also hide all other applications
6457
running on the computer's display screen. The intent of these restrictions
6458
is to eliminate window clipping issues, permit screen display format changes,
6459
and permit fullscreen rendering optimization such as page flipping for
6460
fullscreen buffer swaps.
6461
</para>
6462
<para>
6463
The following GLUT routines are ignored in game mode:
6464
</para>
6465
<para>
6466
<list type="bullet">
6467
<item><see cref="M:Tao.FreeGlut.Glut.glutFullScreen"/></item>
6468
<item><see cref="M:Tao.FreeGlut.Glut.glutHideWindow"/></item>
6469
<item><see cref="M:Tao.FreeGlut.Glut.glutIconifyWindow"/></item>
6470
<item><see cref="M:Tao.FreeGlut.Glut.glutPopWindow"/></item>
6471
<item><see cref="M:Tao.FreeGlut.Glut.glutPositionWindow(System.Int32,System.Int32)"/></item>
6472
<item><see cref="M:Tao.FreeGlut.Glut.glutPushWindow"/></item>
6473
<item><see cref="M:Tao.FreeGlut.Glut.glutReshapeWindow(System.Int32,System.Int32)"/></item>
6474
<item><see cref="M:Tao.FreeGlut.Glut.glutSetIconTitle(System.String)"/></item>
6475
<item><see cref="M:Tao.FreeGlut.Glut.glutSetWindowTitle(System.String)"/></item>
6476
<item><see cref="M:Tao.FreeGlut.Glut.glutShowWindow"/></item>
6477
</list>
6478
</para>
6479
<para>
6480
<b>glutEnterGameMode</b> can be called when already in game mode. This will
6481
destroy the previous game mode window (including any OpenGL rendering state)
6482
and create a new game mode window with a new OpenGL rendering context. Also
6483
if <b>glutEnterGameMode</b> is called when already in game mode and if the
6484
game mode string has changed and describes a possible screen display format,
6485
the new screen display format takes effect. A reshape callback is generated
6486
if the game mode window changes size due to a screen display format change.
6487
</para>
6488
<para>
6489
Re-entering game mode provides a mechanism for changing the screen display
6490
format while already in game mode. Note though that the game mode window's
6491
OpenGL state is lost in this process and the application is responsible for
6492
re-initializing the newly created game mode window OpenGL state when
6493
re-entering game mode.
6494
</para>
6495
<para>
6496
Game mode cannot be entered while pop-up menus are in use.
6497
</para>
6498
<para>
6499
Note that the <b>glutEnterGameMode</b> and <see cref="M:Tao.FreeGlut.Glut.glutFullScreen"/>
6500
routines operate differently. <see cref="M:Tao.FreeGlut.Glut.glutFullScreen"/> simply makes the
6501
current window match the size of the screen. <see cref="M:Tao.FreeGlut.Glut.glutFullScreen"/>
6502
does not change the screen display format and does not disable any GLUT
6503
features such as pop-up menus; <see cref="M:Tao.FreeGlut.Glut.glutFullScreen"/> continues to
6504
operate in a "windowed" mode of operation. <b>glutEnterGameMode</b>
6505
creates a new window style, possibly changes the screen display mode, limits
6506
GLUT functionality, and hides other applications.
6507
</para>
6508
</remarks>
6509
<seealso cref="M:Tao.FreeGlut.Glut.glutGameModeGet(System.Int32)"/>
6510
<seealso cref="M:Tao.FreeGlut.Glut.glutGameModeString(System.String)"/>
6511
<seealso cref="M:Tao.FreeGlut.Glut.glutInitDisplayString(System.String)"/>
6512
<seealso cref="M:Tao.FreeGlut.Glut.glutLeaveGameMode"/>
6513
</member>
6514
<member name="M:Tao.FreeGlut.Glut.glutLeaveGameMode">
6515
<summary>
6516
Leaves GLUT's game mode.
6517
</summary>
6518
<remarks>
6519
<para>
6520
<b>glutLeaveGameMode</b> leaves the GLUT game mode and returns the screen
6521
display format to its default format.
6522
</para>
6523
<para>
6524
After leaving game mode, the GLUT functionality disabled in game mode is
6525
available again. The game mode window (and its OpenGL rendering state) is
6526
destroyed when leaving game mode. Any windows and subwindows created before
6527
entering the game mode are displayed in their previous locations. The OpenGL
6528
state of normal GLUT windows and subwindows is not disturbed by entering
6529
and/or leaving game mode.
6530
</para>
6531
</remarks>
6532
<seealso cref="M:Tao.FreeGlut.Glut.glutEnterGameMode"/>
6533
<seealso cref="M:Tao.FreeGlut.Glut.glutGameModeGet(System.Int32)"/>
6534
<seealso cref="M:Tao.FreeGlut.Glut.glutGameModeString(System.String)"/>
6535
<seealso cref="M:Tao.FreeGlut.Glut.glutInitDisplayString(System.String)"/>
6536
</member>
6537
<member name="M:Tao.FreeGlut.Glut.glutGameModeGet(System.Int32)">
6538
<summary>
6539
Retrieves GLUT device information represented by integers.
6540
</summary>
6541
<param name="mode">
6542
Name of game mode information to retrieve.
6543
</param>
6544
<returns>
6545
<para>
6546
<list type="table">
6547
<listheader>
6548
<term>Value</term>
6549
<description>Description</description>
6550
</listheader>
6551
<item>
6552
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_ACTIVE"/></term>
6553
<description>
6554
Non-zero if GLUT's game mode is active; zero if not active. Game
6555
mode is not active initially. Game mode becomes active when
6556
<see cref="M:Tao.FreeGlut.Glut.glutEnterGameMode"/> is called. Game mode becomes
6557
inactive when <see cref="M:Tao.FreeGlut.Glut.glutLeaveGameMode"/> is called.
6558
</description>
6559
</item>
6560
<item>
6561
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_POSSIBLE"/></term>
6562
<description>
6563
Non-zero if the game mode string last specified to
6564
<see cref="M:Tao.FreeGlut.Glut.glutGameModeString(System.String)"/> is a possible game mode
6565
configuration; zero otherwise. Being "possible" does not
6566
guarantee that if game mode is entered with
6567
<see cref="M:Tao.FreeGlut.Glut.glutEnterGameMode"/> that the display settings will
6568
actually changed. <see cref="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_DISPLAY_CHANGED"/>
6569
should be called once game mode is entered to determine if the
6570
display mode is actually changed.
6571
</description>
6572
</item>
6573
<item>
6574
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_WIDTH"/></term>
6575
<description>
6576
Width in pixels of the screen when game mode is activated.
6577
</description>
6578
</item>
6579
<item>
6580
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_HEIGHT"/></term>
6581
<description>
6582
Height in pixels of the screen when game mode is activated.
6583
</description>
6584
</item>
6585
<item>
6586
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_PIXEL_DEPTH"/></term>
6587
<description>
6588
Pixel depth of the screen when game mode is activiated.
6589
</description>
6590
</item>
6591
<item>
6592
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_REFRESH_RATE"/></term>
6593
<description>
6594
Screen refresh rate in cyles per second (hertz) when game mode is
6595
activated. Zero is returned if the refresh rate is unknown or
6596
cannot be queried.
6597
</description>
6598
</item>
6599
<item>
6600
<term><see cref="F:Tao.FreeGlut.Glut.GLUT_GAME_MODE_DISPLAY_CHANGED"/></term>
6601
<description>
6602
Non-zero if entering game mode actually changed the display
6603
settings. If the game mode string is not possible or the display
6604
mode could not be changed for any other reason, zero is returned.
6605
</description>
6606
</item>
6607
</list>
6608
</para>
6609
</returns>
6610
<remarks>
6611
<b>glutGameModeGet</b> retrieves GLUT game mode information represented by
6612
integers. The <i>mode</i> parameter determines what type of game mode
6613
information to return. Requesting game mode information for an invalid GLUT
6614
game mode information name returns negative one.
6615
</remarks>
6616
<seealso cref="M:Tao.FreeGlut.Glut.glutDeviceGet(System.Int32)"/>
6617
<seealso cref="M:Tao.FreeGlut.Glut.glutEnterGameMode"/>
6618
<seealso cref="M:Tao.FreeGlut.Glut.glutGameModeString(System.String)"/>
6619
<seealso cref="M:Tao.FreeGlut.Glut.glutGet(System.Int32)"/>
6620
<seealso cref="M:Tao.FreeGlut.Glut.glutLayerGet(System.Int32)"/>
6621
<seealso cref="M:Tao.FreeGlut.Glut.glutLeaveGameMode"/>
6622
</member>
6623
<member name="M:Tao.FreeGlut.Glut.glutMainLoopEvent">
6624
<summary>
6625
Performs the main loop event and returns control.
6626
</summary>
6627
</member>
6628
<member name="M:Tao.FreeGlut.Glut.glutLeaveMainLoop">
6629
<summary>
6630
Leaves the main loop.
6631
</summary>
6632
</member>
6633
<member name="M:Tao.FreeGlut.Glut.glutMouseWheelFunc(Tao.FreeGlut.Glut.MouseWheelCallback)">
6634
<summary>
6635
Sets the mouse wheel callback.
6636
</summary>
6637
<param name="func">
6638
The new mouse wheel callback function. See <see cref="T:Tao.FreeGlut.Glut.MouseWheelCallback"/>.
6639
</param>
6640
</member>
6641
<member name="M:Tao.FreeGlut.Glut.glutCloseFunc(Tao.FreeGlut.Glut.CloseCallback)">
6642
<summary>
6643
Sets the close callback.
6644
</summary>
6645
<param name="func">
6646
The new close callback function. See <see cref="T:Tao.FreeGlut.Glut.CloseCallback"/>.
6647
</param>
6648
</member>
6649
<member name="M:Tao.FreeGlut.Glut.glutWMCloseFunc(Tao.FreeGlut.Glut.WindowCloseCallback)">
6650
<summary>
6651
Sets the window close callback for the current window.
6652
</summary>
6653
<param name="func">
6654
The new window close callback function. See <see cref="T:Tao.FreeGlut.Glut.WindowCloseCallback"/>.
6655
</param>
6656
</member>
6657
<member name="M:Tao.FreeGlut.Glut.glutMenuDestroyFunc(Tao.FreeGlut.Glut.MenuDestroyCallback)">
6658
<summary>
6659
Sets the menu destroy callback.
6660
</summary>
6661
<param name="func">
6662
The new menu destroy callback function. See <see cref="T:Tao.FreeGlut.Glut.MenuDestroyCallback"/>.
6663
</param>
6664
</member>
6665
<member name="M:Tao.FreeGlut.Glut.glutSetOption(System.Int32,System.Int32)">
6666
<summary>
6667
Sets simple GLUT state represented by integers.
6668
</summary>
6669
<param name="optionFlag">
6670
The option to set.
6671
</param>
6672
<param name="value">
6673
The value to set for the option.
6674
</param>
6675
</member>
6676
<member name="M:Tao.FreeGlut.Glut.glutGetWindowData">
6677
<summary>
6678
Get the user data for the current window.
6679
</summary>
6680
<returns>
6681
An <see cref="T:System.IntPtr"/> associated with the current window as set with <see cref="M:Tao.FreeGlut.Glut.glutSetupWindowData(System.IntPtr)"/>.
6682
</returns>
6683
</member>
6684
<member name="M:Tao.FreeGlut.Glut.glutSetupWindowData(System.IntPtr)">
6685
<summary>
6686
Set the user data for the current window.
6687
</summary>
6688
<param name="data">
6689
Arbitrary client-supplied <see cref="T:System.IntPtr"/>.
6690
</param>
6691
</member>
6692
<member name="M:Tao.FreeGlut.Glut.glutGetMenuData">
6693
<summary>
6694
Rerieves user data from a menu.
6695
</summary>
6696
<returns>
6697
A previously stored arbitrary user data <see cref="T:System.IntPtr"/> from the current menu.
6698
</returns>
6699
</member>
6700
<member name="M:Tao.FreeGlut.Glut.glutSetMenuData(System.IntPtr)">
6701
<summary>
6702
Stores user data in a menu.
6703
</summary>
6704
<param name="data">
6705
An arbitrary client <see cref="T:System.IntPtr"/>.
6706
</param>
6707
</member>
6708
<member name="M:Tao.FreeGlut.Glut.glutBitmapHeight(System.IntPtr)">
6709
<summary>
6710
Returns the height of a given font, in pixels.
6711
</summary>
6712
<param name="font">
6713
A bitmapped font identifier.
6714
</param>
6715
<returns>
6716
Returns 0 if font is invalid, otherwise, the font's height, in pixels.
6717
</returns>
6718
</member>
6719
<member name="M:Tao.FreeGlut.Glut.glutStrokeHeight(System.IntPtr)">
6720
<summary>
6721
Returns the height of a given font.
6722
</summary>
6723
<param name="font">
6724
A GLUT stroked font identifier.
6725
</param>
6726
<returns>
6727
Returns 0 if fontID is invalid, otherwise, the height of the font in pixels.
6728
</returns>
6729
</member>
6730
<member name="M:Tao.FreeGlut.Glut.glutBitmapString(System.IntPtr,System.String)">
6731
<summary>
6732
Draw a string of bitmapped characters.
6733
</summary>
6734
<param name="font">
6735
A bitmapped font identifier.
6736
</param>
6737
<param name="str">
6738
The string to draw.
6739
</param>
6740
</member>
6741
<member name="M:Tao.FreeGlut.Glut.glutStrokeString(System.IntPtr,System.String)">
6742
<summary>
6743
Draw a string of stroked characters.
6744
</summary>
6745
<param name="font">
6746
A GLUT stroked font identifier.
6747
</param>
6748
<param name="str">
6749
The string to draw.
6750
</param>
6751
</member>
6752
<member name="M:Tao.FreeGlut.Glut.glutWireRhombicDodecahedron">
6753
<summary>
6754
Draw a wireframe rhombic dodecahedron.
6755
</summary>
6756
<remarks>
6757
This function draws a wireframe dodecahedron whose facets are rhombic and whose vertices are at unit radius.
6758
No facet lies normal to any coordinate axes. The polyhedron is centered at the origin.
6759
</remarks>
6760
</member>
6761
<member name="M:Tao.FreeGlut.Glut.glutSolidRhombicDodecahedron">
6762
<summary>
6763
Draw a solid rhombic dodecahedron.
6764
</summary>
6765
<remarks>
6766
This function draws a solid-shaded dodecahedron whose facets are rhombic and whose vertices are at unit radius.
6767
No facet lies normal to any coordinate axes. The polyhedron is centered at the origin.
6768
</remarks>
6769
</member>
6770
<member name="M:Tao.FreeGlut.Glut.glutWireSierpinskiSponge(System.Int32,System.Double[],System.Double)">
6771
<summary>
6772
Draw a wireframe Spierspinski's sponge
6773
</summary>
6774
<param name="levels">
6775
Recursive depth.
6776
</param>
6777
<param name="offset">
6778
Location vector.
6779
</param>
6780
<param name="scale">
6781
Relative size.
6782
</param>
6783
<remarks>
6784
This function recursively draws a few levels of Sierpinski's Sponge in wireframe.
6785
If <paramref name="levels" /> is 0, draws 1 tetrahedron. The <paramref name="offset" /> is a translation.
6786
The z axis is normal to the base. The sponge is centered at the origin.
6787
</remarks>
6788
</member>
6789
<member name="M:Tao.FreeGlut.Glut.glutSolidSierpinskiSponge(System.Int32,System.Double[],System.Double)">
6790
<summary>
6791
Draw a solid Spierspinski's sponge.
6792
</summary>
6793
<param name="levels">
6794
Recursive depth.
6795
</param>
6796
<param name="offset">
6797
Location vector.
6798
</param>
6799
<param name="scale">
6800
Relative size.
6801
</param>
6802
<remarks>
6803
This function recursively draws a few levels of a solid-shaded Sierpinski's Sponge. If <paramref name="levels" /> is 0,
6804
draws 1 tetrahedron. The <paramref name="offset" /> is a translation. The z axis is normal to the base. The sponge is
6805
centered at the origin.
6806
</remarks>
6807
</member>
6808
<member name="M:Tao.FreeGlut.Glut.glutWireCylinder(System.Double,System.Double,System.Int32,System.Int32)">
6809
<summary>
6810
Draw a wireframe cylinder.
6811
</summary>
6812
<param name="radius">
6813
Radius of cylinder.
6814
</param>
6815
<param name="height">
6816
Z height.
6817
</param>
6818
<param name="slices">
6819
Number of divisions around the z axis.
6820
</param>
6821
<param name="stacks">
6822
Number of divisions along the z axis.
6823
</param>
6824
<remarks>
6825
Draws a wireframe of a cylinder, the center of whose base is at the origin, and whose axis parallels the z axis.
6826
</remarks>
6827
</member>
6828
<member name="M:Tao.FreeGlut.Glut.glutSolidCylinder(System.Double,System.Double,System.Int32,System.Int32)">
6829
<summary>
6830
Draw a solid cylinder.
6831
</summary>
6832
<param name="radius">
6833
Radius of cylinder.
6834
</param>
6835
<param name="height">
6836
Z height.
6837
</param>
6838
<param name="slices">
6839
Number of divisions around the z axis.
6840
</param>
6841
<param name="stacks">
6842
Number of divisions along the z axis.
6843
</param>
6844
<remarks>
6845
Draws a solid of a cylinder, the center of whose base is at the origin, and whose axis parallels the z axis.
6846
</remarks>
6847
</member>
6848
<member name="M:Tao.FreeGlut.Glut.glutGetProcAddress(System.String)">
6849
<summary>
6850
Determine if an procedure or extension is available.
6851
</summary>
6852
<param name="procName">
6853
Procedure name.
6854
</param>
6855
<returns>
6856
<para>
6857
Given a function name, searches for the function (or "procedure", hence "Proc") in internal tables.
6858
If the function is found, a pointer to the function is returned. If the function is not found,
6859
<see cref="F:System.IntPtr.Zero"/> is returned.
6860
</para>
6861
<para>
6862
In addition to an internal freeglut table, this function will also consult glX (on X systems) or
6863
wgl (on WIN32 and WINCE), if the freeglut tables do not have the requested function. It should
6864
return any OpenGL, glX, or wgl function if those functions are available.
6865
</para>
6866
</returns>
6867
</member>
6868
<member name="T:Tao.FreeGlut.Glut.ButtonBoxCallback">
6869
<summary>
6870
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutButtonBoxFunc(Tao.FreeGlut.Glut.ButtonBoxCallback)"/>.
6871
</summary>
6872
<seealso cref="M:Tao.FreeGlut.Glut.glutButtonBoxFunc(Tao.FreeGlut.Glut.ButtonBoxCallback)"/>
6873
</member>
6874
<member name="T:Tao.FreeGlut.Glut.CreateMenuCallback">
6875
<summary>
6876
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutCreateMenu(Tao.FreeGlut.Glut.CreateMenuCallback)"/>.
6877
</summary>
6878
<seealso cref="M:Tao.FreeGlut.Glut.glutCreateMenu(Tao.FreeGlut.Glut.CreateMenuCallback)"/>
6879
</member>
6880
<member name="T:Tao.FreeGlut.Glut.DialsCallback">
6881
<summary>
6882
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutDialsFunc(Tao.FreeGlut.Glut.DialsCallback)"/>.
6883
</summary>
6884
<seealso cref="M:Tao.FreeGlut.Glut.glutDialsFunc(Tao.FreeGlut.Glut.DialsCallback)"/>
6885
</member>
6886
<member name="T:Tao.FreeGlut.Glut.DisplayCallback">
6887
<summary>
6888
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutDisplayFunc(Tao.FreeGlut.Glut.DisplayCallback)"/>.
6889
</summary>
6890
<seealso cref="M:Tao.FreeGlut.Glut.glutDisplayFunc(Tao.FreeGlut.Glut.DisplayCallback)"/>
6891
</member>
6892
<member name="T:Tao.FreeGlut.Glut.EntryCallback">
6893
<summary>
6894
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutEntryFunc(Tao.FreeGlut.Glut.EntryCallback)"/>.
6895
</summary>
6896
<seealso cref="M:Tao.FreeGlut.Glut.glutEntryFunc(Tao.FreeGlut.Glut.EntryCallback)"/>
6897
</member>
6898
<member name="T:Tao.FreeGlut.Glut.IdleCallback">
6899
<summary>
6900
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutIdleFunc(Tao.FreeGlut.Glut.IdleCallback)"/>.
6901
</summary>
6902
<seealso cref="M:Tao.FreeGlut.Glut.glutIdleFunc(Tao.FreeGlut.Glut.IdleCallback)"/>
6903
</member>
6904
<member name="T:Tao.FreeGlut.Glut.JoystickCallback">
6905
<summary>
6906
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)"/>.
6907
</summary>
6908
<seealso cref="M:Tao.FreeGlut.Glut.glutJoystickFunc(Tao.FreeGlut.Glut.JoystickCallback,System.Int32)"/>
6909
</member>
6910
<member name="T:Tao.FreeGlut.Glut.KeyboardCallback">
6911
<summary>
6912
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)"/>.
6913
</summary>
6914
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardFunc(Tao.FreeGlut.Glut.KeyboardCallback)"/>
6915
</member>
6916
<member name="T:Tao.FreeGlut.Glut.KeyboardUpCallback">
6917
<summary>
6918
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutKeyboardUpFunc(Tao.FreeGlut.Glut.KeyboardUpCallback)"/>.
6919
</summary>
6920
<seealso cref="M:Tao.FreeGlut.Glut.glutKeyboardUpFunc(Tao.FreeGlut.Glut.KeyboardUpCallback)"/>
6921
</member>
6922
<member name="T:Tao.FreeGlut.Glut.MenuStateCallback">
6923
<summary>
6924
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutMenuStateFunc(Tao.FreeGlut.Glut.MenuStateCallback)"/>.
6925
</summary>
6926
<seealso cref="M:Tao.FreeGlut.Glut.glutMenuStateFunc(Tao.FreeGlut.Glut.MenuStateCallback)"/>
6927
</member>
6928
<member name="T:Tao.FreeGlut.Glut.MenuStatusCallback">
6929
<summary>
6930
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutMenuStatusFunc(Tao.FreeGlut.Glut.MenuStatusCallback)"/>.
6931
</summary>
6932
<seealso cref="M:Tao.FreeGlut.Glut.glutMenuStatusFunc(Tao.FreeGlut.Glut.MenuStatusCallback)"/>
6933
</member>
6934
<member name="T:Tao.FreeGlut.Glut.MotionCallback">
6935
<summary>
6936
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutMotionFunc(Tao.FreeGlut.Glut.MotionCallback)"/>.
6937
</summary>
6938
<seealso cref="M:Tao.FreeGlut.Glut.glutMotionFunc(Tao.FreeGlut.Glut.MotionCallback)"/>
6939
</member>
6940
<member name="T:Tao.FreeGlut.Glut.MouseCallback">
6941
<summary>
6942
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>.
6943
</summary>
6944
<seealso cref="M:Tao.FreeGlut.Glut.glutMouseFunc(Tao.FreeGlut.Glut.MouseCallback)"/>
6945
</member>
6946
<member name="T:Tao.FreeGlut.Glut.OverlayDisplayCallback">
6947
<summary>
6948
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutOverlayDisplayFunc(Tao.FreeGlut.Glut.OverlayDisplayCallback)"/>.
6949
</summary>
6950
<seealso cref="M:Tao.FreeGlut.Glut.glutOverlayDisplayFunc(Tao.FreeGlut.Glut.OverlayDisplayCallback)"/>
6951
</member>
6952
<member name="T:Tao.FreeGlut.Glut.PassiveMotionCallback">
6953
<summary>
6954
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutPassiveMotionFunc(Tao.FreeGlut.Glut.PassiveMotionCallback)"/>.
6955
</summary>
6956
<seealso cref="M:Tao.FreeGlut.Glut.glutPassiveMotionFunc(Tao.FreeGlut.Glut.PassiveMotionCallback)"/>
6957
</member>
6958
<member name="T:Tao.FreeGlut.Glut.ReshapeCallback">
6959
<summary>
6960
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutReshapeFunc(Tao.FreeGlut.Glut.ReshapeCallback)"/>.
6961
</summary>
6962
<seealso cref="M:Tao.FreeGlut.Glut.glutReshapeFunc(Tao.FreeGlut.Glut.ReshapeCallback)"/>
6963
</member>
6964
<member name="T:Tao.FreeGlut.Glut.SpaceballButtonCallback">
6965
<summary>
6966
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutSpaceballButtonFunc(Tao.FreeGlut.Glut.SpaceballButtonCallback)"/>.
6967
</summary>
6968
<seealso cref="M:Tao.FreeGlut.Glut.glutSpaceballButtonFunc(Tao.FreeGlut.Glut.SpaceballButtonCallback)"/>
6969
</member>
6970
<member name="T:Tao.FreeGlut.Glut.SpaceballMotionCallback">
6971
<summary>
6972
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutSpaceballMotionFunc(Tao.FreeGlut.Glut.SpaceballMotionCallback)"/>.
6973
</summary>
6974
<seealso cref="M:Tao.FreeGlut.Glut.glutSpaceballMotionFunc(Tao.FreeGlut.Glut.SpaceballMotionCallback)"/>
6975
</member>
6976
<member name="T:Tao.FreeGlut.Glut.SpaceballRotateCallback">
6977
<summary>
6978
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutSpaceballRotateFunc(Tao.FreeGlut.Glut.SpaceballRotateCallback)"/>.
6979
</summary>
6980
<seealso cref="M:Tao.FreeGlut.Glut.glutSpaceballRotateFunc(Tao.FreeGlut.Glut.SpaceballRotateCallback)"/>
6981
</member>
6982
<member name="T:Tao.FreeGlut.Glut.SpecialCallback">
6983
<summary>
6984
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)"/>.
6985
</summary>
6986
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialFunc(Tao.FreeGlut.Glut.SpecialCallback)"/>
6987
</member>
6988
<member name="T:Tao.FreeGlut.Glut.SpecialUpCallback">
6989
<summary>
6990
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutSpecialUpFunc(Tao.FreeGlut.Glut.SpecialUpCallback)"/>.
6991
</summary>
6992
<seealso cref="M:Tao.FreeGlut.Glut.glutSpecialUpFunc(Tao.FreeGlut.Glut.SpecialUpCallback)"/>
6993
</member>
6994
<member name="T:Tao.FreeGlut.Glut.TabletButtonCallback">
6995
<summary>
6996
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutTabletButtonFunc(Tao.FreeGlut.Glut.TabletButtonCallback)"/>.
6997
</summary>
6998
<seealso cref="M:Tao.FreeGlut.Glut.glutTabletButtonFunc(Tao.FreeGlut.Glut.TabletButtonCallback)"/>
6999
</member>
7000
<member name="T:Tao.FreeGlut.Glut.TabletMotionCallback">
7001
<summary>
7002
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutTabletMotionFunc(Tao.FreeGlut.Glut.TabletMotionCallback)"/>.
7003
</summary>
7004
<seealso cref="M:Tao.FreeGlut.Glut.glutTabletMotionFunc(Tao.FreeGlut.Glut.TabletMotionCallback)"/>
7005
</member>
7006
<member name="T:Tao.FreeGlut.Glut.TimerCallback">
7007
<summary>
7008
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutTimerFunc(System.Int32,Tao.FreeGlut.Glut.TimerCallback,System.Int32)"/>.
7009
</summary>
7010
<seealso cref="M:Tao.FreeGlut.Glut.glutTimerFunc(System.Int32,Tao.FreeGlut.Glut.TimerCallback,System.Int32)"/>
7011
</member>
7012
<member name="T:Tao.FreeGlut.Glut.WindowStatusCallback">
7013
<summary>
7014
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutWindowStatusFunc(Tao.FreeGlut.Glut.WindowStatusCallback)"/>.
7015
</summary>
7016
<seealso cref="M:Tao.FreeGlut.Glut.glutWindowStatusFunc(Tao.FreeGlut.Glut.WindowStatusCallback)"/>
7017
</member>
7018
<member name="T:Tao.FreeGlut.Glut.VisibilityCallback">
7019
<summary>
7020
Callback (delegate) for use with <see cref="M:Tao.FreeGlut.Glut.glutVisibilityFunc(Tao.FreeGlut.Glut.VisibilityCallback)"/>.
7021
</summary>
7022
<seealso cref="M:Tao.FreeGlut.Glut.glutVisibilityFunc(Tao.FreeGlut.Glut.VisibilityCallback)"/>
7023
</member>
7024
<member name="T:Tao.FreeGlut.Glut.MouseWheelCallback">
7025
<summary>
7026
Callback (delegate for use with <see cref="M:Tao.FreeGlut.Glut.glutMouseWheelFunc(Tao.FreeGlut.Glut.MouseWheelCallback)"/>.
7027
</summary>
7028
<param name="wheel">
7029
Wheel number.
7030
</param>
7031
<param name="direction">
7032
Direction, +/- 1.
7033
</param>
7034
<param name="x">
7035
Pointer X coordinate.
7036
</param>
7037
<param name="y">
7038
Pointer Y coordinate.
7039
</param>
7040
<remarks>
7041
This may not work reliably on X Windows.
7042
</remarks>
7043
<seealso cref="M:Tao.FreeGlut.Glut.glutMouseWheelFunc(Tao.FreeGlut.Glut.MouseWheelCallback)"/>
7044
</member>
7045
<member name="T:Tao.FreeGlut.Glut.CloseCallback">
7046
<summary>
7047
Callback (delegate for use with <see cref="M:Tao.FreeGlut.Glut.glutCloseFunc(Tao.FreeGlut.Glut.CloseCallback)"/>.
7048
</summary>
7049
<seealso cref="M:Tao.FreeGlut.Glut.glutCloseFunc(Tao.FreeGlut.Glut.CloseCallback)"/>
7050
</member>
7051
<member name="T:Tao.FreeGlut.Glut.WindowCloseCallback">
7052
<summary>
7053
Callback (delegate for use with <see cref="M:Tao.FreeGlut.Glut.glutWMCloseFunc(Tao.FreeGlut.Glut.WindowCloseCallback)"/>.
7054
</summary>
7055
<seealso cref="M:Tao.FreeGlut.Glut.glutWMCloseFunc(Tao.FreeGlut.Glut.WindowCloseCallback)"/>
7056
</member>
7057
<member name="T:Tao.FreeGlut.Glut.MenuDestroyCallback">
7058
<summary>
7059
Callback (delegate for use with <see cref="M:Tao.FreeGlut.Glut.glutMenuDestroyFunc(Tao.FreeGlut.Glut.MenuDestroyCallback)"/>.
7060
</summary>
7061
<seealso cref="M:Tao.FreeGlut.Glut.glutMenuDestroyFunc(Tao.FreeGlut.Glut.MenuDestroyCallback)"/>
7062
</member>
7063
<member name="T:Tao.FreeGlut.Glut.GLUTprocDelegate">
7064
<summary>
7065
7066
</summary>
7067
</member>
7068
</members>
7069
</doc>
7070
7071