Index: graphics/freeglut/Makefile =================================================================== --- graphics/freeglut/Makefile (revision 568896) +++ graphics/freeglut/Makefile (working copy) @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= freeglut -PORTVERSION= 3.0.0 -PORTREVISION= 2 +PORTVERSION= 3.2.1 CATEGORIES= graphics MASTER_SITES= SF Index: graphics/freeglut/distinfo =================================================================== --- graphics/freeglut/distinfo (revision 568896) +++ graphics/freeglut/distinfo (working copy) @@ -1,2 +1,3 @@ -SHA256 (freeglut-3.0.0.tar.gz) = 2a43be8515b01ea82bcfa17d29ae0d40bd128342f0930cd1f375f1ff999f76a2 -SIZE (freeglut-3.0.0.tar.gz) = 419095 +TIMESTAMP = 1616308723 +SHA256 (freeglut-3.2.1.tar.gz) = d4000e02102acaf259998c870e25214739d1f16f67f99cb35e4f46841399da68 +SIZE (freeglut-3.2.1.tar.gz) = 440228 Index: graphics/freeglut/files/patch-src_fg__joystick.c =================================================================== --- graphics/freeglut/files/patch-src_fg__joystick.c (revision 568896) +++ graphics/freeglut/files/patch-src_fg__joystick.c (nonexistent) @@ -1,304 +0,0 @@ ---- src/fg_joystick.c.orig 2014-10-20 15:27:04 UTC -+++ src/fg_joystick.c -@@ -40,238 +40,6 @@ - #define JS_TRUE 1 - #define JS_FALSE 0 - --/* BSD defines from "jsBSD.cxx" around lines 42-270 */ -- --#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) -- --# ifdef HAVE_USB_JS --# if defined(__NetBSD__) --/* XXX The below hack is done until freeglut's autoconf is updated. */ --# define HAVE_USBHID_H 1 --# ifdef HAVE_USBHID_H --# include --# else --# include --# endif --# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) --# ifdef HAVE_USBHID_H --# include --# else --# include --# endif --# endif --# include --# include -- --/* Compatibility with older usb.h revisions */ --# if !defined(USB_MAX_DEVNAMES) && defined(MAXDEVNAMES) --# define USB_MAX_DEVNAMES MAXDEVNAMES --# endif --# endif -- --static int hatmap_x[9] = { 0, 0, 1, 1, 1, 0, -1, -1, -1 }; --static int hatmap_y[9] = { 0, 1, 1, 0, -1, -1, -1, 0, 1 }; --struct os_specific_s { -- char fname [128 ]; -- int fd; -- int is_analog; -- /* The following structure members are specific to analog joysticks */ -- struct joystick ajs; --# ifdef HAVE_USB_JS -- /* The following structure members are specific to USB joysticks */ -- struct hid_item *hids; -- int hid_dlen; -- int hid_offset; -- char *hid_data_buf; -- int axes_usage [ _JS_MAX_AXES ]; --# endif -- /* We keep button and axes state ourselves, as they might not be updated -- * on every read of a USB device -- */ -- int cache_buttons; -- float cache_axes [ _JS_MAX_AXES ]; --}; -- --/* Idents lower than USB_IDENT_OFFSET are for analog joysticks. */ --# define USB_IDENT_OFFSET 2 -- --# define USBDEV "/dev/usb" --# define UHIDDEV "/dev/uhid" --# define AJSDEV "/dev/joy" -- --# ifdef HAVE_USB_JS --/* -- * fghJoystickFindUSBdev (and its helper, fghJoystickWalkUSBdev) try to locate -- * the full name of a USB device. If /dev/usbN isn't readable, we punt and -- * return the uhidN device name. We warn the user of this situation once. -- */ --static char *fghJoystickWalkUSBdev(int f, char *dev, char *out, int outlen) --{ -- struct usb_device_info di; -- int i, a; -- char *cp; -- -- for (a = 1; a < USB_MAX_DEVICES; a++) { -- di.udi_addr = a; -- if (ioctl(f, USB_DEVICEINFO, &di) != 0) -- return NULL; -- for (i = 0; i < USB_MAX_DEVNAMES; i++) -- if (di.udi_devnames[i][0] && -- strcmp(di.udi_devnames[i], dev) == 0) { -- cp = calloc( 1, strlen(di.udi_vendor) + strlen(di.udi_product) + 2); -- strcpy(cp, di.udi_vendor); -- strcat(cp, " "); -- strcat(cp, di.udi_product); -- strncpy(out, cp, outlen - 1); -- out[outlen - 1] = 0; -- free( cp ); -- return out; -- } -- } -- return NULL; --} -- --static int fghJoystickFindUSBdev(char *name, char *out, int outlen) --{ -- int i, f; -- char buf[50]; -- char *cp; -- static int protection_warned = 0; -- -- for (i = 0; i < 16; i++) { -- snprintf(buf, sizeof(buf), "%s%d", USBDEV, i); -- f = open(buf, O_RDONLY); -- if (f >= 0) { -- cp = fghJoystickWalkUSBdev(f, name, out, outlen); -- close(f); -- if (cp) -- return 1; -- } -- else if (errno == EACCES) { -- if (!protection_warned) { -- fgWarning ( "Can't open %s for read!", buf ); -- protection_warned = 1; -- } -- } -- } -- return 0; --} -- --static int fghJoystickInitializeHID(struct os_specific_s *os, -- int *num_axes, int *num_buttons) --{ -- int size, is_joystick; --# ifdef HAVE_USBHID_H -- int report_id = 0; --# endif -- struct hid_data *d; -- struct hid_item h; -- report_desc_t rd; -- -- if ( ( rd = hid_get_report_desc( os->fd ) ) == 0 ) -- { -- fgWarning ( "error: %s: %s", os->fname, strerror( errno ) ); -- return FALSE; -- } -- -- os->hids = NULL; -- --# ifdef HAVE_USBHID_H -- if( ioctl( os->fd, USB_GET_REPORT_ID, &report_id ) < 0) -- { -- /*** XXX {report_id} may not be the right variable? ***/ -- fgWarning ( "error: %s%d: %s", UHIDDEV, report_id, strerror( errno ) ); -- return FALSE; -- } -- -- size = hid_report_size( rd, hid_input, report_id ); --# else -- size = hid_report_size( rd, 0, hid_input ); --# endif -- os->hid_data_buf = calloc( 1, size ); -- os->hid_dlen = size; -- -- is_joystick = 0; --# ifdef HAVE_USBHID_H -- d = hid_start_parse( rd, 1 << hid_input, report_id ); --# else -- d = hid_start_parse( rd, 1 << hid_input ); --# endif -- while( hid_get_item( d, &h ) ) -- { -- int usage, page, interesting_hid; -- -- page = HID_PAGE( h.usage ); -- usage = HID_USAGE( h.usage ); -- -- /* This test is somewhat too simplistic, but this is how MicroSoft -- * does, so I guess it works for all joysticks/game pads. */ -- is_joystick = is_joystick || -- ( h.kind == hid_collection && -- page == HUP_GENERIC_DESKTOP && -- ( usage == HUG_JOYSTICK || usage == HUG_GAME_PAD ) ); -- -- if( h.kind != hid_input ) -- continue; -- -- if( !is_joystick ) -- continue; -- -- interesting_hid = TRUE; -- if( page == HUP_GENERIC_DESKTOP ) -- { -- switch( usage ) -- { -- case HUG_X: -- case HUG_RX: -- case HUG_Y: -- case HUG_RY: -- case HUG_Z: -- case HUG_RZ: -- case HUG_SLIDER: -- if( *num_axes < _JS_MAX_AXES ) -- { -- os->axes_usage[ *num_axes ] = usage; -- ( *num_axes )++; -- } -- break; -- case HUG_HAT_SWITCH: -- /* Allocate two axes for a hat */ -- if( *num_axes + 1 < _JS_MAX_AXES ) -- { -- os->axes_usage[ *num_axes ] = usage; -- (*num_axes)++; -- os->axes_usage[ *num_axes ] = usage; -- (*num_axes)++; -- } -- break; -- default: -- interesting_hid = FALSE; -- break; -- } -- } -- else if( page == HUP_BUTTON ) -- { -- interesting_hid = ( usage > 0 ) && -- ( usage <= _JS_MAX_BUTTONS ); -- -- if( interesting_hid && usage - 1 > *num_buttons ) -- *num_buttons = usage - 1; -- } -- -- if( interesting_hid ) -- { -- h.next = os->hids; -- os->hids = calloc( 1, sizeof ( struct hid_item ) ); -- *os->hids = h; -- } -- } -- hid_end_parse( d ); -- -- return os->hids != NULL; --} --# endif --#endif - - /* - * Functions associated with the "jsJoystick" class in PLIB -@@ -306,26 +74,6 @@ extern void fgPlatformJoystickClose ( in - #define MAX_NUM_JOYSTICKS 2 - SFG_Joystick *fgJoystick [ MAX_NUM_JOYSTICKS ]; - --/* -- * Read the raw joystick data -- */ --static void fghJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes ) --{ -- int i; -- -- /* Defaults */ -- if( buttons ) -- *buttons = 0; -- -- if( axes ) -- for( i = 0; i < joy->num_axes; i++ ) -- axes[ i ] = 1500.0f; -- -- if( joy->error ) -- return; -- -- fgPlatformJoystickRawRead ( joy, buttons, axes ); --} - - /* - * Correct the joystick axis data -@@ -384,7 +132,7 @@ static void fghJoystickRead( SFG_Joystic - axes[ i ] = 0.0f; - } - -- fghJoystickRawRead( joy, buttons, raw_axes ); -+ fgJoystickRawRead( joy, buttons, raw_axes ); - - if( axes ) - for( i=0; inum_axes; i++ ) -@@ -966,6 +714,26 @@ int fgJoystickDetect( void ) - } - - /* -+ * Read the raw joystick data -+ */ -+void fgJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes ) -+{ -+ int i; -+ -+ /* Defaults */ -+ if( buttons ) -+ *buttons = 0; -+ -+ if( axes ) -+ for( i = 0; i < joy->num_axes; i++ ) -+ axes[ i ] = 1500.0f; -+ -+ if( joy->error ) -+ return; -+ -+ fgPlatformJoystickRawRead ( joy, buttons, axes ); -+} -+/* - * Joystick information, setup and execution functions - */ - Property changes on: graphics/freeglut/files/patch-src_fg__joystick.c ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: graphics/freeglut/files/patch-src_x11_fg__joystick__x11.c =================================================================== --- graphics/freeglut/files/patch-src_x11_fg__joystick__x11.c (revision 568896) +++ graphics/freeglut/files/patch-src_x11_fg__joystick__x11.c (working copy) @@ -1,23 +1,116 @@ ---- src/x11/fg_joystick_x11.c.orig 2014-12-02 05:22:12 UTC +--- src/x11/fg_joystick_x11.c.orig 2021-03-21 08:11:11 UTC +++ src/x11/fg_joystick_x11.c -@@ -46,6 +46,183 @@ - #define MAX_NUM_JOYSTICKS 2 - extern SFG_Joystick *fgJoystick [ MAX_NUM_JOYSTICKS ]; +@@ -41,196 +41,135 @@ -+#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + #include + ++/*this should be defined in a header file */ ++#define MAX_NUM_JOYSTICKS 2 + +-/* BSD defines from "jsBSD.cxx" around lines 42-270 */ +- + #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +- +-# ifdef HAVE_USB_JS +-# if defined(__NetBSD__) +-# ifdef HAVE_USBHID_H +-# include +-# else +-# include +-# endif +-# include +-# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +-# ifdef HAVE_USBHID_H +-# include +-# else +-# include +-# endif +-# include +-# endif +-# include +- +-/* Compatibility with older usb.h revisions */ +-# if !defined(USB_MAX_DEVNAMES) && defined(MAXDEVNAMES) +-# define USB_MAX_DEVNAMES MAXDEVNAMES +-# endif +-# endif +- +-struct os_specific_s { +- char fname [128 ]; +- int fd; +- int is_analog; +- /* The following structure members are specific to analog joysticks */ +- struct joystick ajs; +-# ifdef HAVE_USB_JS +- /* The following structure members are specific to USB joysticks */ +- struct hid_item *hids; +- int hid_dlen; +- int hid_offset; +- char *hid_data_buf; +- int axes_usage [ _JS_MAX_AXES ]; +-# endif +- /* We keep button and axes state ourselves, as they might not be updated +- * on every read of a USB device +- */ +- int cache_buttons; +- float cache_axes [ _JS_MAX_AXES ]; +-}; +- +-/* Idents lower than USB_IDENT_OFFSET are for analog joysticks. */ +-# define USB_IDENT_OFFSET 2 +- +-# define USBDEV "/dev/usb" +-# define UHIDDEV "/dev/uhid" +-# define AJSDEV "/dev/joy" +- +- +-#endif +- +-#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +- +-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +-static int hatmap_x[9] = {0, 0, 1, 1, 1, 0, -1, -1, -1}; +-static int hatmap_y[9] = {0, 1, 1, 0, -1, -1, -1, 0, 1}; +- +-# ifdef HAVE_USB_JS +# ifdef HAVE_USB_JS -+/* + /* +-* fghJoystickFindUSBdev (and its helper, fghJoystickWalkUSBdev) try to locate +-* the full name of a USB device. If /dev/usbN isn't readable, we punt and +-* return the uhidN device name. We warn the user of this situation once. +-*/ + * fghJoystickFindUSBdev (and its helper, fghJoystickWalkUSBdev) try to locate + * the full name of a USB device. If /dev/usbN isn't readable, we punt and + * return the uhidN device name. We warn the user of this situation once. + */ -+static char *fghJoystickWalkUSBdev(int f, char *dev, char *out, int outlen) -+{ + static char *fghJoystickWalkUSBdev(int f, char *dev, char *out, int outlen) + { +- struct usb_device_info di; +- int i, a; +- char *cp; +#if __FreeBSD_version < 800061 + struct usb_device_info di; + int i, a; + char *cp; -+ + +- for (a = 1; a < USB_MAX_DEVICES; a++) { +- di.udi_addr = a; +- if (ioctl(f, USB_DEVICEINFO, &di) != 0) +- return NULL; +- for (i = 0; i < USB_MAX_DEVNAMES; i++) +- if (di.udi_devnames[i][0] && +- strcmp(di.udi_devnames[i], dev) == 0) { +- cp = calloc(1, strlen(di.udi_vendor) + strlen(di.udi_product) + 2); +- strcpy(cp, di.udi_vendor); +- strcat(cp, " "); +- strcat(cp, di.udi_product); +- strncpy(out, cp, outlen - 1); +- out[outlen - 1] = 0; +- free(cp); +- return out; +- } +- } +- return NULL; + for (a = 1; a < USB_MAX_DEVICES; a++) { + di.udi_addr = a; + if (ioctl(f, USB_DEVICEINFO, &di) != 0) @@ -37,15 +130,34 @@ + } +#endif + return NULL; -+} -+ -+static int fghJoystickFindUSBdev(char *name, char *out, int outlen) -+{ + } + + static int fghJoystickFindUSBdev(char *name, char *out, int outlen) + { +- int i, f; +- char buf[50]; +- char *cp; +- static int protection_warned = 0; + int i, f; + char buf[50]; + char *cp; + static int protection_warned = 0; -+ + +- for (i = 0; i < 16; i++) { +- snprintf(buf, sizeof(buf), "%s%d", USBDEV, i); +- f = open(buf, O_RDONLY); +- if (f >= 0) { +- cp = fghJoystickWalkUSBdev(f, name, out, outlen); +- close(f); +- if (cp) +- return 1; +- } +- else if (errno == EACCES) { +- if (!protection_warned) { +- fgWarning("Can't open %s for read!", buf); +- protection_warned = 1; +- } +- } + for (i = 0; i < 16; i++) { + snprintf(buf, sizeof(buf), "%s%d", USBDEV, i); + f = open(buf, O_RDONLY); @@ -54,7 +166,8 @@ + close(f); + if (cp) + return 1; -+ } + } +- return 0; + else if (errno == EACCES) { + if (!protection_warned) { + fgWarning ( "Can't open %s for read!", buf ); @@ -63,28 +176,39 @@ + } + } + return 0; -+} -+ -+static int fghJoystickInitializeHID(struct os_specific_s *os, + } +-#endif + + static int fghJoystickInitializeHID(struct os_specific_s *os, +- int *num_axes, int *num_buttons) + int *num_axes, int *num_buttons) -+{ -+ int size, is_joystick; -+# ifdef HAVE_USBHID_H + { + int size, is_joystick; + # ifdef HAVE_USBHID_H +- int report_id = 0; + int report_id = 0; -+# endif -+ struct hid_data *d; -+ struct hid_item h; -+ report_desc_t rd; -+ + # endif + struct hid_data *d; + struct hid_item h; + report_desc_t rd; + +- if ((rd = hid_get_report_desc(os->fd)) == 0) + if ( ( rd = hid_get_report_desc( os->fd ) ) == 0 ) -+ { + { +- fgWarning("error: %s: %s", os->fname, strerror(errno)); + fgWarning ( "error: %s: %s", os->fname, strerror( errno ) ); -+ return FALSE; -+ } -+ -+ os->hids = NULL; -+ -+# ifdef HAVE_USBHID_H + return FALSE; + } + + os->hids = NULL; + + # ifdef HAVE_USBHID_H +- if (ioctl(os->fd, USB_GET_REPORT_ID, &report_id) < 0) +- { +- /*** XXX {report_id} may not be the right variable? ***/ +- fgWarning("error: %s%d: %s", UHIDDEV, report_id, strerror(errno)); +- return FALSE; +- } + if( ioctl( os->fd, USB_GET_REPORT_ID, &report_id ) < 0) + { + /*** XXX {report_id} may not be the right variable? ***/ @@ -91,27 +215,43 @@ + fgWarning ( "error: %s%d: %s", UHIDDEV, report_id, strerror( errno ) ); + return FALSE; + } -+ + +- size = hid_report_size(rd, hid_input, report_id); + size = hid_report_size( rd, hid_input, report_id ); -+# else + # else +- size = hid_report_size(rd, 0, hid_input); + size = hid_report_size( rd, 0, hid_input ); -+# endif + # endif +- os->hid_data_buf = calloc(1, size); + os->hid_data_buf = calloc( 1, size ); -+ os->hid_dlen = size; -+ -+ is_joystick = 0; -+# ifdef HAVE_USBHID_H + os->hid_dlen = size; + + is_joystick = 0; + # ifdef HAVE_USBHID_H +- d = hid_start_parse(rd, 1 << hid_input, report_id); + d = hid_start_parse( rd, 1 << hid_input, report_id ); -+# else + # else +- d = hid_start_parse(rd, 1 << hid_input); + d = hid_start_parse( rd, 1 << hid_input ); -+# endif + # endif +- while (hid_get_item(d, &h)) +- { +- int usage, page, interesting_hid; + while( hid_get_item( d, &h ) ) + { + int usage, page, interesting_hid; -+ + +- page = HID_PAGE(h.usage); +- usage = HID_USAGE(h.usage); + page = HID_PAGE( h.usage ); + usage = HID_USAGE( h.usage ); -+ + +- /* This test is somewhat too simplistic, but this is how MicroSoft +- * does, so I guess it works for all joysticks/game pads. */ +- is_joystick = is_joystick || +- (h.kind == hid_collection && +- page == HUP_GENERIC_DESKTOP && +- (usage == HUG_JOYSTICK || usage == HUG_GAME_PAD)); + /* This test is somewhat too simplistic, but this is how MicroSoft + * does, so I guess it works for all joysticks/game pads. */ + is_joystick = is_joystick || @@ -118,55 +258,82 @@ + ( h.kind == hid_collection && + page == HUP_GENERIC_DESKTOP && + ( usage == HUG_JOYSTICK || usage == HUG_GAME_PAD ) ); -+ + +- if (h.kind != hid_input) +- continue; + if( h.kind != hid_input ) + continue; -+ + +- if (!is_joystick) +- continue; + if( !is_joystick ) + continue; -+ + +- interesting_hid = TRUE; +- if (page == HUP_GENERIC_DESKTOP) +- { +- switch (usage) + interesting_hid = TRUE; + if( page == HUP_GENERIC_DESKTOP ) -+ { + { + switch( usage ) + { -+ case HUG_X: -+ case HUG_RX: -+ case HUG_Y: -+ case HUG_RY: -+ case HUG_Z: -+ case HUG_RZ: -+ case HUG_SLIDER: + case HUG_X: + case HUG_RX: + case HUG_Y: +@@ -238,53 +177,51 @@ static int fghJoystickInitializeHID(struct os_specific + case HUG_Z: + case HUG_RZ: + case HUG_SLIDER: +- if (*num_axes < _JS_MAX_AXES) + if( *num_axes < _JS_MAX_AXES ) -+ { + { +- os->axes_usage[*num_axes] = usage; +- (*num_axes)++; + os->axes_usage[ *num_axes ] = usage; + ( *num_axes )++; -+ } -+ break; -+ case HUG_HAT_SWITCH: -+ /* Allocate two axes for a hat */ + } + break; + case HUG_HAT_SWITCH: + /* Allocate two axes for a hat */ +- if (*num_axes + 1 < _JS_MAX_AXES) + if( *num_axes + 1 < _JS_MAX_AXES ) -+ { + { +- os->axes_usage[*num_axes] = usage; + os->axes_usage[ *num_axes ] = usage; -+ (*num_axes)++; + (*num_axes)++; +- os->axes_usage[*num_axes] = usage; + os->axes_usage[ *num_axes ] = usage; -+ (*num_axes)++; -+ } -+ break; -+ default: -+ interesting_hid = FALSE; -+ break; + (*num_axes)++; + } + break; + default: + interesting_hid = FALSE; + break; + } -+ } + } +- } +- else if (page == HUP_BUTTON) +- { +- interesting_hid = (usage > 0) && +- (usage <= _JS_MAX_BUTTONS); + else if( page == HUP_BUTTON ) + { + interesting_hid = ( usage > 0 ) && + ( usage <= _JS_MAX_BUTTONS ); -+ + +- if (interesting_hid && usage - 1 > *num_buttons) +- *num_buttons = usage - 1; +- } + if( interesting_hid && usage - 1 > *num_buttons ) + *num_buttons = usage - 1; + } -+ + +- if (interesting_hid) +- { +- h.next = os->hids; +- os->hids = calloc(1, sizeof(struct hid_item)); +- *os->hids = h; + if( interesting_hid ) + { + h.next = os->hids; @@ -173,18 +340,26 @@ + os->hids = calloc( 1, sizeof ( struct hid_item ) ); + *os->hids = h; + } -+ } + } +- } +- hid_end_parse(d); + hid_end_parse( d ); -+ + +- return os->hids != NULL; + return os->hids != NULL; -+} + } +-# endif +-#endif +# endif /* HAVE_USB_JS */ +#endif /* FreeBSD or NetBSD */ -+ + + +-/*this should be defined in a header file */ +-#define MAX_NUM_JOYSTICKS 2 + extern SFG_Joystick *fgJoystick [ MAX_NUM_JOYSTICKS ]; + void fgPlatformJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes ) - { - int status; -@@ -259,7 +436,7 @@ void fgPlatformJoystickOpen( SFG_Joystic +@@ -500,7 +437,7 @@ void fgPlatformJoystickOpen( SFG_Joystick* joy ) joy->num_axes = 2; joy->num_buttons = 32; @@ -193,7 +368,7 @@ joy->error = axes[ 0 ] < -1000000000.0f; if( joy->error ) return; -@@ -379,7 +556,7 @@ void fgPlatformJoystickOpen( SFG_Joystic +@@ -620,7 +557,7 @@ void fgPlatformJoystickOpen( SFG_Joystick* joy ) do { @@ -202,3 +377,27 @@ counter++; } while( !joy->error && counter < 100 && +@@ -647,6 +584,23 @@ void fgPlatformJoystickOpen( SFG_Joystick* joy ) + #endif + } + ++void fgJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes ) ++{ ++ int i; ++ ++ /* Defaults */ ++ if( buttons ) ++ *buttons = 0; ++ ++ if( axes ) ++ for( i = 0; i < joy->num_axes; i++ ) ++ axes[ i ] = 1500.0f; ++ ++ if( joy->error ) ++ return; ++ ++ fgPlatformJoystickRawRead ( joy, buttons, axes ); ++} + + void fgPlatformJoystickInit( SFG_Joystick *fgJoystick[], int ident ) + { Index: graphics/freeglut/pkg-plist =================================================================== --- graphics/freeglut/pkg-plist (revision 568896) +++ graphics/freeglut/pkg-plist (working copy) @@ -1,24 +1,29 @@ include/GL/freeglut.h include/GL/freeglut_ext.h include/GL/freeglut_std.h +include/GL/freeglut_ucall.h include/GL/glut.h +lib/cmake/FreeGLUT/FreeGLUTConfig.cmake +lib/cmake/FreeGLUT/FreeGLUTConfigVersion.cmake +lib/cmake/FreeGLUT/FreeGLUTTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/FreeGLUT/FreeGLUTTargets.cmake lib/libglut.a lib/libglut.so lib/libglut.so.3 -lib/libglut.so.3.10.0 -libdata/pkgconfig/freeglut.pc +lib/libglut.so.3.11.0 +libdata/pkgconfig/glut.pc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/CallbackMaker %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Fractals %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Fractals_random -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fractals.dat %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Lorenz %%PORTEXAMPLES%%%%EXAMPLESDIR%%/One %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Resizer +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fractals.dat %%PORTEXAMPLES%%%%EXAMPLESDIR%%/multi-touch +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shapes %%PORTEXAMPLES%%%%EXAMPLESDIR%%/smooth_opengl3 %%PORTEXAMPLES%%%%EXAMPLESDIR%%/spaceball %%PORTEXAMPLES%%%%EXAMPLESDIR%%/subwin -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shapes %%PORTEXAMPLES%%%%EXAMPLESDIR%%/timer %%PORTDOCS%%%%DOCSDIR%%/download.html %%PORTDOCS%%%%DOCSDIR%%/freeglut.html