comparison mupdf-source/thirdparty/freeglut/src/fg_spaceball.c @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 /* Spaceball support for Linux.
2 * Written by John Tsiombikas <nuclear@member.fsf.org>
3 *
4 * This code supports 3Dconnexion's 6-dof space-whatever devices.
5 * It can communicate with either the proprietary 3Dconnexion daemon (3dxsrv)
6 * free spacenavd (http://spacenav.sourceforge.net), through the "standard"
7 * magellan X-based protocol.
8 */
9
10 #include <GL/freeglut.h>
11 #include "fg_internal.h"
12
13 /* -- PRIVATE FUNCTIONS --------------------------------------------------- */
14
15 extern void fgPlatformInitializeSpaceball(void);
16 extern void fgPlatformSpaceballClose(void);
17 extern int fgPlatformHasSpaceball(void);
18 extern int fgPlatformSpaceballNumButtons(void);
19 extern void fgPlatformSpaceballSetWindow(SFG_Window *window);
20
21
22 int sball_initialized = 0;
23
24 void fgInitialiseSpaceball(void)
25 {
26 if(sball_initialized != 0) {
27 return;
28 }
29
30 fgPlatformInitializeSpaceball();
31
32 sball_initialized = 1;
33 }
34
35 void fgSpaceballClose(void)
36 {
37 fgPlatformSpaceballClose();}
38
39 int fgHasSpaceball(void)
40 {
41 if(sball_initialized == 0) {
42 fgInitialiseSpaceball();
43 if(sball_initialized != 1) {
44 fgWarning("fgInitialiseSpaceball failed\n");
45 return 0;
46 }
47 }
48
49 return fgPlatformHasSpaceball();
50 }
51
52 int fgSpaceballNumButtons(void)
53 {
54 if(sball_initialized == 0) {
55 fgInitialiseSpaceball();
56 if(sball_initialized != 1) {
57 fgWarning("fgInitialiseSpaceball failed\n");
58 return 0;
59 }
60 }
61
62 return fgPlatformSpaceballNumButtons();
63 }
64
65 void fgSpaceballSetWindow(SFG_Window *window)
66 {
67 if(sball_initialized == 0) {
68 fgInitialiseSpaceball();
69 if(sball_initialized != 1) {
70 return;
71 }
72 }
73
74 fgPlatformSpaceballSetWindow(window);
75 }
76