Exemplo n.º 1
0
 /// <summary>
 ///     Sets the keyboard up (key release) callback for the current window.
 /// </summary>
 /// <param name="func">
 ///     The new keyboard up callback function.  See <see cref="KeyboardUpCallback" />.
 /// </param>
 /// <remarks>
 ///     <para>
 ///         <b>glutKeyboardUpFunc</b> sets the keyboard up (key release) callback for the
 ///         current window.  When a user types into the window, each key release matching
 ///         an ASCII character will generate a keyboard up callback.  The <i>key</i>
 ///         callback parameter is the generated ASCII character.  The state of modifier
 ///         keys such as Shift cannot be determined directly; their only effect will be on
 ///         the returned ASCII data.  The <i>x</i> and <i>y</i> callback parameters
 ///         indicate the mouse location in window relative coordinates when the key was
 ///         pressed.  When a new window is created, no keyboard callback is initially
 ///         registered, and ASCII key strokes in the window are ignored.  Passing
 ///         <c>null</c> to <b>glutKeyboardUpFunc</b> disables the generation of
 ///         keyboard up callbacks.
 ///     </para>
 ///     <para>
 ///         During a keyboard up callback, <see cref="glutGetModifiers" /> may be called
 ///         to determine the state of modifier keys when the keystroke generating the
 ///         callback occurred.
 ///     </para>
 ///     <para>
 ///         To avoid the reporting of key release/press pairs due to auto repeat, use
 ///         <see cref="glutIgnoreKeyRepeat" /> to ignore auto repeated keystrokes.
 ///     </para>
 ///     <para>
 ///         There is no guarantee that the keyboard press callback will match the exact
 ///         ASCII character as the keyboard up callback.  For example, the key down may
 ///         be for a lowercase b, but the key release may report an uppercase B if the
 ///         shift state has changed.  The same applies to symbols and control characters.
 ///         The precise behavior is window system dependent.
 ///     </para>
 ///     <para>
 ///         Use <see cref="glutSpecialUpFunc" /> for a means to detect non-ASCII key
 ///         release.
 ///     </para>
 /// </remarks>
 /// <seealso cref="KeyboardUpCallback" />
 /// <seealso cref="glutButtonBoxFunc" />
 /// <seealso cref="glutCreateWindow" />
 /// <seealso cref="glutGetModifiers" />
 /// <seealso cref="glutIgnoreKeyRepeat" />
 /// <seealso cref="glutKeyboardFunc" />
 /// <seealso cref="glutMouseFunc" />
 /// <seealso cref="glutSpaceballButtonFunc" />
 /// <seealso cref="glutSpecialFunc" />
 /// <seealso cref="glutSpecialUpFunc" />
 /// <seealso cref="glutTabletButtonFunc" />
 // GLUTAPI void APIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
 public static void glutKeyboardUpFunc([In] KeyboardUpCallback func) {
     keyboardUpCallback = func;
     __glutKeyboardUpFunc(keyboardUpCallback);
 }
Exemplo n.º 2
0
 private static extern void __glutKeyboardUpFunc(KeyboardUpCallback func);