diff options
-rw-r--r-- | x11-servers/driglide/Makefile | 28 | ||||
-rw-r--r-- | x11-servers/driglide/files/patch-h5_glide3_src_glfb.c | 73 | ||||
-rw-r--r-- | x11-servers/driglide/files/patch-swlibs_fxmisc_fxos.c | 44 |
3 files changed, 135 insertions, 10 deletions
diff --git a/x11-servers/driglide/Makefile b/x11-servers/driglide/Makefile index a56537c835a9..c01d8dc398fa 100644 --- a/x11-servers/driglide/Makefile +++ b/x11-servers/driglide/Makefile @@ -15,26 +15,34 @@ MASTER_SITE_SUBDIR= anholt/driglide/ MAINTAINER= ports@FreeBSD.org COMMENT= Libraries to support 3dfx Voodoo3/4/5/Banshee with the DRI -USE_BZIP2= yes -USE_X_PREFIX= yes +USE_BZIP2= yes USE_LDCONFIG= yes USE_AUTOTOOLS= automake:14 autoconf:253 libtool:15 -AUTOMAKE_ARGS= -a -USE_GMAKE= yes -MAKE_ARGS= PREPROCESSOR=/usr/bin/cpp +AUTOMAKE_ARGS= -a +USE_GMAKE= yes +MAKE_ARGS= PREPROCESSOR=/usr/bin/cpp # Not yet ported to Alpha. -ONLY_FOR_ARCHS= i386 +ONLY_FOR_ARCHS= i386 # Glide DOES NOT work with CFLAGS greater than -O2 CFLAGS+= -O post-patch: - @${REINPLACE_CMD} -e 's|/usr/X11R6|${X11BASE}|g' ${WRKSRC}/configure.in - @${REINPLACE_CMD} -e 's|/usr/X11R6|${X11BASE}|g' ${WRKSRC}/h3/glide3/src/Makefile.am - @${REINPLACE_CMD} -e 's|/usr/X11R6|${X11BASE}|g' ${WRKSRC}/h5/glide3/src/Makefile.am + @${REINPLACE_CMD} -e 's|/usr/X11R6|${X11BASE}|g' \ + ${WRKSRC}/configure.in \ + ${WRKSRC}/h3/glide3/src/Makefile.am \ + ${WRKSRC}/h5/glide3/src/Makefile.am + @${REINPLACE_CMD} -e \ + 's|(float \*)pointers +=|pointers += sizeof(float *) *|' \ + ${WRKSRC}/h3/glide3/src/gaa.c \ + ${WRKSRC}/h3/glide3/src/gdraw.c \ + ${WRKSRC}/h3/glide3/src/distrip.c \ + ${WRKSRC}/h5/glide3/src/gaa.c \ + ${WRKSRC}/h5/glide3/src/gdraw.c \ + ${WRKSRC}/h5/glide3/src/distrip.c pre-configure: - @cd $(WRKSRC) && ${ACLOCAL} -I ${LOCALBASE}/share/aclocal + @cd ${WRKSRC} && ${ACLOCAL} -I ${LOCALBASE}/share/aclocal @${REINPLACE_CMD} -e '/^_LT_AC_SHELL_INIT/d' ${WRKSRC}/aclocal.m4 .include <bsd.port.mk> diff --git a/x11-servers/driglide/files/patch-h5_glide3_src_glfb.c b/x11-servers/driglide/files/patch-h5_glide3_src_glfb.c new file mode 100644 index 000000000000..e8cb294eba57 --- /dev/null +++ b/x11-servers/driglide/files/patch-h5_glide3_src_glfb.c @@ -0,0 +1,73 @@ +--- h5/glide3/src/glfb.c.orig Thu Jan 16 01:23:50 2003 ++++ h5/glide3/src/glfb.c Sun Jul 1 03:06:16 2007 +@@ -1014,17 +1014,28 @@ + FXFALSE, + &info)) + { +- FxU32 *src,*dst; ++ union { ++ FxU32 *src; ++ FxU16 *src16; ++ FxU8 *src8; ++ } s; ++ ++ union { ++ FxU32 *dst; ++ FxU16 *dst16; ++ FxU8 *dst8; ++ } d; ++ + FxI32 length,scanline; + FxU32 src_adjust,dst_adjust,tmp; + +- src=(FxU32 *) (((char*)info.lfbPtr)+ ++ s.src=(FxU32 *) (((char*)info.lfbPtr)+ + (src_y*info.strideInBytes) + (src_x * bpp)); +- dst=dst_data; ++ d.dst=dst_data; + scanline=src_height; + + /* set length - alignment fix*/ +- tmp=(((AnyPtr)src)&2); ++ tmp=(((AnyPtr)s.src)&2); + length=src_width * bpp - tmp; + src_adjust=info.strideInBytes - tmp; + dst_adjust=dst_stride - tmp; +@@ -1035,8 +1046,8 @@ + while(src_height--) + { + /* adjust starting alignment */ +- if (((AnyPtr)src)&3) +- *((FxU16 *)dst)++=*((FxU16 *)src)++; ++ if (((AnyPtr)s.src)&3) ++ *d.dst16++ = *s.src16++; + + /* read in dwords of pixels */ + if(length) +@@ -1047,16 +1058,21 @@ + /* copies aligned dwords */ + do + { +- *((FxU32 *)(((AnyPtr)dst) + byte_index))=*((FxU32 *)(((AnyPtr)src) + byte_index)); ++ FxU32 *dst = (FxU32 *)(((AnyPtr)dst) + byte_index); ++ FxU32 *src = (FxU32 *)(((AnyPtr)src) + byte_index); ++ *dst = *src; + }while((byte_index+=4)<aligned); + + /* handle backend misalignment */ +- if (byte_index!=(FxU32)length) +- *((FxU16 *)(((AnyPtr)dst) + byte_index))=*((FxU16 *)(((AnyPtr)src) + byte_index)); ++ if (byte_index!=(FxU32)length) { ++ FxU16 *dst = (FxU16 *)(((AnyPtr)dst) + byte_index); ++ FxU16 *src = (FxU16 *)(((AnyPtr)src) + byte_index); ++ *dst = *src; ++ } + } + /* adjust for next line */ +- ((FxU8 *)src)+=src_adjust; +- ((FxU8 *)dst)+=dst_adjust; ++ s.src8+=src_adjust; ++ d.dst8+=dst_adjust; + } + rv=FXTRUE; + /* unlock buffer */ diff --git a/x11-servers/driglide/files/patch-swlibs_fxmisc_fxos.c b/x11-servers/driglide/files/patch-swlibs_fxmisc_fxos.c new file mode 100644 index 000000000000..4e46358970f9 --- /dev/null +++ b/x11-servers/driglide/files/patch-swlibs_fxmisc_fxos.c @@ -0,0 +1,44 @@ +--- swlibs/fxmisc/fxos.c.orig Wed Jan 15 10:01:58 2003 ++++ swlibs/fxmisc/fxos.c Sun Jul 1 01:56:10 2007 +@@ -27,13 +27,22 @@ + + #include <fxos.h> + +-/* return current time in seconds (floating point) */ +-float fxTime(void) +-{ + #if defined ( __sparc__ ) || defined ( __DJGPP__ ) + /* times returns 0 in BSD Unix, so we use ftime instead */ + # include <sys/types.h> + # include <sys/timeb.h> ++#elif defined(__FreeBSD__) ++# include <sys/time.h> ++#else ++# include <sys/types.h> ++# include <sys/times.h> ++# include <sys/param.h> ++#endif ++ ++/* return current time in seconds (floating point) */ ++float fxTime(void) ++{ ++#if defined ( __sparc__ ) || defined ( __DJGPP__ ) + struct timeb tb; + static time_t once; // saves first time value + +@@ -43,15 +52,11 @@ + return (tb.time - once) + tb.millitm * .001; + + #elif defined(__FreeBSD__) +-#include <sys/time.h> + struct timeval t; + struct timezone tz; + gettimeofday(&t, &tz); + return ((float)t.tv_sec + ((float)t.tv_usec)/1000000.0); + #else +-# include <sys/types.h> +-# include <sys/times.h> +-# include <sys/param.h> + struct tms foo; + return times(&foo)/(float)HZ; + #endif |