コード例 #1
0
        public static void SetJoystickCallback(JoystickCallback callback)
        {
            lock (Lock) {
                CallbackCache[nameof(SetJoystickCallback)] = callback;
            }

            SetJoystickCallback(callback == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(callback));
        }
コード例 #2
0
 internal static void UpdateData()
 {
     JoystickCallback?.Invoke();
     if (SimData.s_halNewDataSem != IntPtr.Zero)
     {
         throw new ArgumentOutOfRangeException();
         // TODO:: FIX
         //SimulatorHAL.HALSemaphore.giveMultiWait(SimData.s_halNewDataSem);
     }
 }
コード例 #3
0
ファイル: Glut.cs プロジェクト: WolfgangSt/axiom
 /// <summary>
 ///     Sets the joystick callback for the current window.
 /// </summary>
 /// <param name="func">
 ///     The new joystick callback function.  See <see cref="JoystickCallback" />.
 /// </param>
 /// <param name="pollInterval">
 ///     Joystick polling interval in milliseconds.
 /// </param>
 /// <remarks>
 ///     <para>
 ///         <b>glutJoystickFunc</b> sets the joystick callback for the current window.
 ///     </para>
 ///     <para>
 ///         The joystick callback is called either due to polling of the joystick at the
 ///         uniform timer interval specified by <i>pollInterval</i> (in milliseconds) or
 ///         in response to calling <see cref="glutForceJoystickFunc" />.  If the
 ///         <i>pollInterval</i> is non-positive, no joystick polling is performed and the
 ///         GLUT application must frequently (usually from an idle callback) call
 ///         <b>glutForceJoystickFunc</b>.
 ///     </para>
 ///     <para>
 ///         The joystick buttons are reported by the callback's <i>buttonMask</i>
 ///         parameter.  The constants <see cref="GLUT_JOYSTICK_BUTTON_A" /> (0x1),
 ///         <see cref="GLUT_JOYSTICK_BUTTON_B" /> (0x2),
 ///         <see cref="GLUT_JOYSTICK_BUTTON_C" /> (0x4), and
 ///         <see cref="GLUT_JOYSTICK_BUTTON_D" /> (0x8) are provided for programming
 ///         convience.
 ///     </para>
 ///     <para>
 ///         The <i>x</i>, <i>y</i>, and <i>z</i> callback parameters report the X, Y, and
 ///         Z axes of the joystick.  The joystick is centered at (0, 0, 0).  X, Y, and Z
 ///         are scaled to range between -1000 and 1000.  Moving the joystick left reports
 ///         negative X; right reports positive X.  Pulling the stick towards you reports
 ///         negative Y; push the stick away from you reports positive Y.  If the joystick
 ///         has a third axis (rudder or up/down), down reports negative Z; up reports
 ///         positive Z.
 ///     </para>
 ///     <para>
 ///         Passing a <c>null</c> to <b>glutJoystickFunc</b> disables the generation of
 ///         joystick callbacks.  Without a joystick callback registered,
 ///         <b>glutForceJoystickFunc</b> does nothing.
 ///     </para>
 ///     <para>
 ///         When a new window is created, no joystick callback is initially registered.
 ///     </para>
 ///     <para>
 ///         <b>LIMITATIONS</b>
 ///     </para>
 ///     <para>
 ///         The GLUT joystick callback only reports the first 3 axes and 32 buttons.
 ///         GLUT supports only a single joystick.
 ///     </para>
 ///     <para>
 ///         <b>X IMPLEMENTATION NOTES</b>
 ///     </para>
 ///     <para>
 ///         The GLUT 3.7 implementation of GLUT for X11 supports the joystick API, but not
 ///         joystick input.  A future implementation of GLUT for X11 may add joystick
 ///         support.
 ///     </para>
 ///     <para>
 ///         <b>WIN32 IMPLEMENTATION NOTES</b>
 ///     </para>
 ///     <para>
 ///         The GLUT 3.7 implementation of GLUT for Win32 supports the joystick API and
 ///         joystick input, but does so through the dated <c>joySetCapture</c> and
 ///         <c>joyGetPosEx</c> Win32 Multimedia API.  The GLUT 3.7 joystick support for
 ///         Win32 has all the limitations of the Win32 Multimedia API joystick support.
 ///         A future implementation of GLUT for Win32 may use DirectInput.
 ///     </para>
 ///     <para>
 ///         <b>GLUT IMPLEMENTATION NOTES FOR NON-ANALOG JOYSTICKS</b>
 ///     </para>
 ///     <para>
 ///         If the connected joystick does not return (x, y, z) as a continuous range (for
 ///         example, an 8 position Atari 2600 joystick), the implementation should report
 ///         the most extreme (x, y, z) location.  That is, if a 2D joystick is pushed to
 ///         the upper left, report (-1000, 1000, 0).
 ///     </para>
 /// </remarks>
 /// <seealso cref="JoystickCallback" />
 /// <seealso cref="glutButtonBoxFunc" />
 /// <seealso cref="glutDeviceGet" />
 /// <seealso cref="glutForceJoystickFunc" />
 /// <seealso cref="glutMotionFunc" />
 /// <seealso cref="glutMouseFunc" />
 /// <seealso cref="glutSpaceballButtonFunc" />
 /// <seealso cref="glutSpaceballMotionFunc" />
 /// <seealso cref="glutTabletButtonFunc" />
 // GLUTAPI void APIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
 public static void glutJoystickFunc([In] JoystickCallback func, int pollInterval) {
     joystickCallback = func;
     __glutJoystickFunc(joystickCallback, pollInterval);
 }
コード例 #4
0
ファイル: Glut.cs プロジェクト: WolfgangSt/axiom
 private static extern void __glutJoystickFunc(JoystickCallback func, int pollInterval);