From: Jakub Bogusz Date: Mon, 9 Jan 2012 17:09:22 +0000 (+0000) Subject: - added gcc4,gasp,cpp,link patches X-Git-Tag: auto/th/Glide_V2-2.53-7~4 X-Git-Url: http://git.pld-linux.org/?p=packages%2FGlide_V2.git;a=commitdiff_plain;h=a803064a5e8c29c1bb549206c7ef92adac028071 - added gcc4,gasp,cpp,link patches - fixed License field - added READMEs to doc - ghost soname symlinks - changed URL from dead 3dfx.com to sf project Changed files: Glide_V2.spec -> 1.22 glide-cpp.patch -> 1.1 glide-gasp.patch -> 1.1 glide-gcc4.patch -> 1.1 glide-link.patch -> 1.1 --- diff --git a/Glide_V2.spec b/Glide_V2.spec index 001327f..c3370b6 100644 --- a/Glide_V2.spec +++ b/Glide_V2.spec @@ -4,11 +4,14 @@ Name: Glide_V2 Version: 2.53 Release: 7 Group: Libraries -License: GPL -Vendor: 3Dfx Interactive Inc. +License: 3DFX GLIDE Source Code General Public License Source0: GlideV2.tar.gz # Source0-md5: a7110232c3d4d888580aaff7919017d2 -URL: http://www.3dfx.com/ +Patch0: glide-gcc4.patch +Patch1: glide-gasp.patch +Patch2: glide-cpp.patch +Patch3: glide-link.patch +URL: http://glide.sourceforge.net/ %ifarch %{ix86} BuildRequires: /usr/bin/gasp %endif @@ -24,13 +27,23 @@ Linuksem. %prep %setup -q -n GlideV2 +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 chmod +x swlibs/include/make/ostype +%{__rm} glide3x/cvg/init/*.{o,a} + +ln glide2x/README README.glide2x +ln glide3x/README README.glide3x %build # Make sure we build for Voodoo2 export FX_GLIDE_HW=cvg -%{__make} V2 CNODEBUG="%{rpmcflags} %{!?debug:-fomit-frame-pointer -funroll-loops} \ - %{!?debug:-fexpensive-optimizations -ffast-math -DBIG_OPT}" +%{__make} V2 \ + CC="%{__cc}" \ + CNODEBUG="%{rpmcflags} %{!?debug:-fomit-frame-pointer -funroll-loops} \ + %{!?debug:-fexpensive-optimizations -ffast-math -DBIG_OPT}" %install rm -rf $RPM_BUILD_ROOT @@ -67,7 +80,7 @@ ln -sf libglide3x.so.3 $RPM_BUILD_ROOT%{_libdir}/libglide3x.so # Install Texus ###################################################################### install -m 755 glide2x/swlibs/lib/libtexus.so.1.1 \ - $RPM_BUILD_ROOT%{_libdir} + $RPM_BUILD_ROOT%{_libdir} ln -sf libtexus.so.1 $RPM_BUILD_ROOT%{_libdir}/libtexus.so @@ -85,6 +98,8 @@ install glide2x/cvg/glide/tests/test00 \ install glide3x/cvg/glide3/tests/test00 \ $RPM_BUILD_ROOT%{_bindir}/testGlide3x +/sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir} + %clean rm -rf $RPM_BUILD_ROOT @@ -93,18 +108,21 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc glide2x/glide_license.txt +%doc README.glide2x README.glide3x glide_license.txt %attr(755,root,root) %{_bindir}/texus %attr(755,root,root) %{_bindir}/test3Dfx %attr(755,root,root) %{_bindir}/testGlide3x %attr(755,root,root) %{_bindir}/testGlide2x %attr(755,root,root) %{_libdir}/libglide.so.2.53 +%attr(755,root,root) %ghost %{_libdir}/libglide.so.2 %attr(755,root,root) %{_libdir}/libglide.so %attr(755,root,root) %{_libdir}/libglide2x.so %attr(755,root,root) %{_libdir}/libglide2x.so.2 %attr(755,root,root) %{_libdir}/libglide3.so.3.01 +%attr(755,root,root) %ghost %{_libdir}/libglide3.so.3 %attr(755,root,root) %{_libdir}/libglide3.so %attr(755,root,root) %{_libdir}/libglide3x.so %attr(755,root,root) %{_libdir}/libglide3x.so.3 %attr(755,root,root) %{_libdir}/libtexus.so.1.1 +%attr(755,root,root) %ghost %{_libdir}/libtexus.so.1 %attr(755,root,root) %{_libdir}/libtexus.so diff --git a/glide-cpp.patch b/glide-cpp.patch new file mode 100644 index 0000000..e6c3ffc --- /dev/null +++ b/glide-cpp.patch @@ -0,0 +1,204 @@ +--- GlideV2/glide3x/cvg/glide3/src/fxglide.h.orig 2000-04-20 23:26:39.000000000 +0200 ++++ GlideV2/glide3x/cvg/glide3/src/fxglide.h 2012-01-08 20:16:45.707252884 +0100 +@@ -1417,7 +1417,7 @@ + + #ifdef GLIDE3 + #define GR_STATE_ENTRY(name, type, args) \ +- type _##name## args ++ type _##name args + #else + #define GR_STATE_ENTRY(name, type, args) \ + GR_ENTRY(name, type, args) +@@ -3339,17 +3339,17 @@ + #endif + + #ifdef GLIDE3_DEBUG +-#define TEX_INFO(ptr,field) ptr##field ++#define TEX_INFO(ptr,field) ptr.field + #define G3_LOD_TRANSLATE(lod) (lod) + #define G3_ASPECT_TRANSLATE(aspect) (aspect) + #else /* !GLIDE3_DEBUG */ +-#define TEX_INFO(ptr,field) ptr##field##Log2 ++#define TEX_INFO(ptr,field) ptr.field##Log2 + #define G3_LOD_TRANSLATE(lod) (0x8-lod) + #define G3_ASPECT_TRANSLATE(aspect) (0x3-(aspect)) + #endif /* !GLIDE3_DEBUG */ + + #else /* !(defined(GLIDE3) && defined(GLIDE3_ALPHA)) */ +-#define TEX_INFO(ptr,field) ptr##field ++#define TEX_INFO(ptr,field) ptr.field + #define G3_LOD_TRANSLATE(lod) (lod) + #define G3_ASPECT_TRANSLATE(aspect) (aspect) + #endif /* !(defined(GLIDE3) && defined(GLIDE3_ALPHA)) */ +--- GlideV2/glide3x/cvg/glide3/src/gsplash.c.orig 2000-04-20 23:26:39.000000000 +0200 ++++ GlideV2/glide3x/cvg/glide3/src/gsplash.c 2012-01-08 20:16:33.697252482 +0100 +@@ -298,9 +298,9 @@ + downloadTexture(Texture *texture, Gu3dfInfo *info) + { + texture->info.data = info->data; +- TEX_INFO(texture->info.,smallLod) = info->header.small_lod; +- TEX_INFO(texture->info.,largeLod) = info->header.large_lod; +- TEX_INFO(texture->info.,aspectRatio) = info->header.aspect_ratio; ++ TEX_INFO(texture->info,smallLod) = info->header.small_lod; ++ TEX_INFO(texture->info,largeLod) = info->header.large_lod; ++ TEX_INFO(texture->info,aspectRatio) = info->header.aspect_ratio; + texture->info.format = info->header.format; + + texture->addr = nextFreeBase; +--- GlideV2/glide3x/cvg/glide3/src/ditex.c.orig 2000-04-20 23:26:39.000000000 +0200 ++++ GlideV2/glide3x/cvg/glide3/src/ditex.c 2012-01-08 20:22:59.743932075 +0100 +@@ -568,9 +568,9 @@ + FxU32 memrequired; + + GR_CHECK_F( "grTexTextureMemRequired", !info, "invalid info pointer" ); +- memrequired = _grTexTextureMemRequired( G3_LOD_TRANSLATE(TEX_INFO(info->,smallLod)), +- G3_LOD_TRANSLATE(TEX_INFO(info->,largeLod)), +- G3_ASPECT_TRANSLATE(TEX_INFO(info->,aspectRatio)), ++ memrequired = _grTexTextureMemRequired( G3_LOD_TRANSLATE(TEX_INFO((*info),smallLod)), ++ G3_LOD_TRANSLATE(TEX_INFO((*info),largeLod)), ++ G3_ASPECT_TRANSLATE(TEX_INFO((*info),aspectRatio)), + info->format, + evenOdd ); + +@@ -635,12 +635,12 @@ + ---------------------------------------------------------------*/ + #if defined(GLIDE3) && defined(GLIDE3_ALPHA) + #ifdef GLIDE3_DEBUG +- for( lod = TEX_INFO(info->,largeLod); lod <= TEX_INFO(info->,smallLod); lod++ ) { ++ for( lod = TEX_INFO((*info),largeLod); lod <= TEX_INFO((*info),smallLod); lod++ ) { + #else +- for( lod = TEX_INFO(info->,largeLod); lod >= TEX_INFO(info->,smallLod); lod-- ) { ++ for( lod = TEX_INFO((*info),largeLod); lod >= TEX_INFO((*info),smallLod); lod-- ) { + #endif + #else +- for( lod = TEX_INFO(info->,largeLod); lod <= TEX_INFO(info->,smallLod); lod++ ) { ++ for( lod = TEX_INFO((*info),largeLod); lod <= TEX_INFO((*info),smallLod); lod++ ) { + #endif + /* + ** note for glide3 lod translation: +@@ -649,13 +649,13 @@ + grTexDownloadMipMapLevel( tmu, + startAddress, + lod, +- TEX_INFO(info->,largeLod), +- TEX_INFO(info->,aspectRatio), ++ TEX_INFO((*info),largeLod), ++ TEX_INFO((*info),aspectRatio), + info->format, + evenOdd, + src_base ); + +- src_base += _grMipMapHostSize[_gr_aspect_index_table[G3_ASPECT_TRANSLATE(TEX_INFO(info->,aspectRatio))]][G3_LOD_TRANSLATE(lod)] ++ src_base += _grMipMapHostSize[_gr_aspect_index_table[G3_ASPECT_TRANSLATE(TEX_INFO((*info),aspectRatio))]][G3_LOD_TRANSLATE(lod)] + << (info->format>=GR_TEXFMT_16BIT); + } + } /* grTexDownloadMipMap */ +--- GlideV2/glide3x/cvg/glide3/src/gtex.c.orig 2000-04-20 23:26:39.000000000 +0200 ++++ GlideV2/glide3x/cvg/glide3/src/gtex.c 2012-01-09 16:40:49.713045393 +0100 +@@ -980,16 +980,16 @@ + /*------------------------------------------------------------- + Update Texture Unit State + -------------------------------------------------------------*/ +- gc->state.tmu_config[tmu].smallLod = G3_LOD_TRANSLATE(TEX_INFO(info->,smallLod)); +- gc->state.tmu_config[tmu].largeLod = G3_LOD_TRANSLATE(TEX_INFO(info->,largeLod)); ++ gc->state.tmu_config[tmu].smallLod = G3_LOD_TRANSLATE(TEX_INFO((*info),smallLod)); ++ gc->state.tmu_config[tmu].largeLod = G3_LOD_TRANSLATE(TEX_INFO((*info),largeLod)); + gc->state.tmu_config[tmu].evenOdd = evenOdd; + + /*------------------------------------------------------------- + Calculate Base Address + -------------------------------------------------------------*/ + baseAddress = _grTexCalcBaseAddress(startAddress, +- G3_LOD_TRANSLATE(TEX_INFO(info->,largeLod)), +- G3_ASPECT_TRANSLATE(TEX_INFO(info->,aspectRatio)), ++ G3_LOD_TRANSLATE(TEX_INFO((*info),largeLod)), ++ G3_ASPECT_TRANSLATE(TEX_INFO((*info),aspectRatio)), + info->format, + evenOdd) >> 3; + #if (GLIDE_PLATFORM & GLIDE_HW_H3) +@@ -1016,11 +1016,11 @@ + tLod = gc->state.tmu_config[tmu].tLOD; + tLod &= ~(SST_LODMIN | SST_LODMAX | SST_LOD_ASPECT | + SST_LOD_TSPLIT | SST_LOD_ODD | SST_LOD_S_IS_WIDER); +- tLod |= SST_TLOD_MINMAX_INT(G3_LOD_TRANSLATE(TEX_INFO(info->,largeLod)), ++ tLod |= SST_TLOD_MINMAX_INT(G3_LOD_TRANSLATE(TEX_INFO((*info),largeLod)), + gc->state.tmu_config[tmu].mmMode==GR_MIPMAP_DISABLE ? +- G3_LOD_TRANSLATE(TEX_INFO(info->,largeLod)) : G3_LOD_TRANSLATE(TEX_INFO(info->,smallLod))); ++ G3_LOD_TRANSLATE(TEX_INFO((*info),largeLod)) : G3_LOD_TRANSLATE(TEX_INFO((*info),smallLod))); + tLod |= _gr_evenOdd_xlate_table[evenOdd]; +- tLod |= _gr_aspect_xlate_table[G3_ASPECT_TRANSLATE(TEX_INFO(info->,aspectRatio))]; ++ tLod |= _gr_aspect_xlate_table[G3_ASPECT_TRANSLATE(TEX_INFO((*info),aspectRatio))]; + + /* Write relevant registers out to hardware */ + hw = SST_TMU(hw, tmu); +@@ -1175,7 +1175,7 @@ + #else + G3_LOD_TRANSLATE(GR_LOD_LOG2_256), + #endif +- G3_ASPECT_TRANSLATE(TEX_INFO(info->,aspectRatio)), ++ G3_ASPECT_TRANSLATE(TEX_INFO((*info),aspectRatio)), + info->format, + evenOdd) >> 3; + GR_SET(tmuChip, hw, texBaseAddr, baseAddress); +@@ -1189,7 +1189,7 @@ + #else + G3_LOD_TRANSLATE(GR_LOD_LOG2_128), + #endif +- G3_ASPECT_TRANSLATE(TEX_INFO(info->,aspectRatio)), ++ G3_ASPECT_TRANSLATE(TEX_INFO((*info),aspectRatio)), + info->format, + evenOdd) >> 3; + GR_SET(tmuChip, hw, texBaseAddr1, baseAddress); +@@ -1203,7 +1203,7 @@ + #else + G3_LOD_TRANSLATE(GR_LOD_LOG2_64), + #endif +- G3_ASPECT_TRANSLATE(TEX_INFO(info->,aspectRatio)), ++ G3_ASPECT_TRANSLATE(TEX_INFO((*info),aspectRatio)), + info->format, + evenOdd) >> 3; + GR_SET(tmuChip, hw, texBaseAddr2, baseAddress); +@@ -1217,7 +1217,7 @@ + #else + G3_LOD_TRANSLATE(GR_LOD_LOG2_32), + #endif +- G3_ASPECT_TRANSLATE(TEX_INFO(info->,aspectRatio)), ++ G3_ASPECT_TRANSLATE(TEX_INFO((*info),aspectRatio)), + info->format, + evenOdd) >> 3; + GR_SET(tmuChip, hw, texBaseAddr38, baseAddress); +--- GlideV2/glide3x/cvg/glide3/src/distate.c.orig 2000-04-20 23:26:39.000000000 +0200 ++++ GlideV2/glide3x/cvg/glide3/src/distate.c 2012-01-09 16:50:12.976397585 +0100 +@@ -166,25 +166,25 @@ + */ + + #define STOREARG(function, arg) \ +-gc->state.stateArgs.##function##Args.arg = arg ++gc->state.stateArgs.function##Args.arg = arg + + #define LOADARG(function, arg) \ +-gc->state.stateArgs.##function##Args.arg ++gc->state.stateArgs.function##Args.arg + + #define INVALIDATE(regset) \ +-gc->state.invalid |= ##regset##BIT ++gc->state.invalid |= regset##BIT + + #define NOTVALID(regset) \ +-(gc->state.invalid & ##regset##BIT) ++(gc->state.invalid & regset##BIT) + + #define SETVALID(regset) \ +-(gc->state.invalid &= ~(##regset##BIT)) ++(gc->state.invalid &= ~(regset##BIT)) + + #define ENABLEMODE(mode) \ +-gc->state.grEnableArgs.##mode## = GR_MODE_ENABLE; ++gc->state.grEnableArgs.mode = GR_MODE_ENABLE; + + #define DISABLEMODE(mode) \ +-gc->state.grEnableArgs.##mode## = GR_MODE_DISABLE; ++gc->state.grEnableArgs.mode = GR_MODE_DISABLE; + + /*------------------------------------------------------------------- + Function: grAlphaBlendFunction diff --git a/glide-gasp.patch b/glide-gasp.patch new file mode 100644 index 0000000..b1edc68 --- /dev/null +++ b/glide-gasp.patch @@ -0,0 +1,63 @@ +--- GlideV2/glide2x/cvg/glide/src/xdraw2.S.orig 2000-04-20 23:26:36.000000000 +0200 ++++ GlideV2/glide2x/cvg/glide/src/xdraw2.S 2012-01-08 18:34:13.720380228 +0100 +@@ -128,18 +128,32 @@ + + .text + ++.MACRO GR_FIFO_WRITE __addr __offset __data ++ mov \__data, \__offset(\__addr) ++.ENDM # GR_FIFO_WRITE ++ + .align 4 + .globl _trisetup_cull + .type _trisetup_cull, @function + _trisetup_cull: + # .code + ++EMITNOCULL .ASSIGNA 0 ++ + .MACRO SYMNAME prefix ++.AIF \&EMITNOCULL EQ 0 + .LCULL\prefix: ++.AELSE ++ .LNOCULL\prefix: ++.AENDI + .ENDM + + .MACRO SYMNAMEOP op prefix ++.AIF \&EMITNOCULL EQ 0 + \op .LCULL\prefix ++.AELSE ++ \op .LNOCULL\prefix ++.AENDI + .ENDM + + GLIDE_CULLING .ASSIGNA 1 +@@ -154,13 +168,7 @@ + .L_end_trisetup_cull: + .size _trisetup_cull,.L_end_trisetup_cull-_trisetup_cull + +-.MACRO SYMNAME prefix +- .LNOCULL\prefix: +-.ENDM +- +-.MACRO SYMNAMEOP op prefix +- \op .LNOCULL\prefix +-.ENDM ++EMITNOCULL .ASSIGNA 1 + .AIF \&GLIDE_PACKED_RGB EQ 1 + .align 4 + .globl _trisetup_cull_rgb +--- GlideV2/glide2x/cvg/glide/src/xdraw2.inc.S.orig 2000-04-20 23:26:36.000000000 +0200 ++++ GlideV2/glide2x/cvg/glide/src/xdraw2.inc.S 2012-01-08 18:33:24.560378579 +0100 +@@ -155,10 +155,6 @@ + packCol .REG (%edi) + tempVal .REG (%edi) + +-.MACRO GR_FIFO_WRITE __addr __offset __data +- mov \__data, \__offset(\__addr) +-.ENDM # GR_FIFO_WRITE +- + .align 4 + SYMNAME __triBegin + mov fifoPtr(gc), fifo # Fetch Fifo Ptr diff --git a/glide-gcc4.patch b/glide-gcc4.patch new file mode 100644 index 0000000..ee9e8ee --- /dev/null +++ b/glide-gcc4.patch @@ -0,0 +1,329 @@ +--- GlideV2/glide2x.orig/cvg/glide/tests/display.c ++++ GlideV2/glide2x/cvg/glide/tests/display.c +@@ -65,6 +65,10 @@ static const char *sourceFormatString[] + "GR_LFB_SRC_FMT_ZA16 " + }; + ++static void imageConvert( void *dst, ++ void *src, ++ GrLfbSrcFmt_t format, ++ FxU32 *bpp ); + + int main( int argc, char **argv) + { +@@ -91,11 +95,6 @@ int main( int argc, char **argv) + static FxU32 imageWidth; + static FxU32 imageHeight; + +- static void imageConvert( void *dst, +- void *src, +- GrLfbSrcFmt_t format, +- FxU32 *bpp ); +- + srcfname[0] = 0; + dstfname[0] = 0; + +--- GlideV2/glide2x.orig/cvg/glide/tests/test26.c ++++ GlideV2/glide2x/cvg/glide/tests/test26.c +@@ -57,6 +57,10 @@ static const char *sourceFormatString[] + "GR_LFB_SRC_FMT_ZA16 " + }; + ++static void imageConvert( void *dst, ++ void *src, ++ GrLfbSrcFmt_t format, ++ FxU32 *bpp ); + + int main( int argc, char **argv) { + char match; +@@ -80,11 +84,6 @@ int main( int argc, char **argv) { + static FxU32 imageWidth; + static FxU32 imageHeight; + +- static void imageConvert( void *dst, +- void *src, +- GrLfbSrcFmt_t format, +- FxU32 *bpp ); +- + /* Process Command Line Arguments */ + while( (rv = tlGetOpt( argc, argv, "bdnr", &match, &remArgs )) ) { + if ( rv == -1 ) { +--- GlideV2/glide3x.orig/cvg/glide3/tests/display.c ++++ GlideV2/glide3x/cvg/glide3/tests/display.c +@@ -56,6 +56,10 @@ static const char *sourceFormatString[] + "GR_LFB_SRC_FMT_ZA16 " + }; + ++static void imageConvert( void *dst, ++ void *src, ++ GrLfbSrcFmt_t format, ++ FxU32 *bpp ); + + void main( int argc, char **argv) { + char match; +@@ -81,11 +85,6 @@ void main( int argc, char **argv) { + static FxU32 imageWidth; + static FxU32 imageHeight; + +- static void imageConvert( void *dst, +- void *src, +- GrLfbSrcFmt_t format, +- FxU32 *bpp ); +- + srcfname[0] = 0; + dstfname[0] = 0; + +--- GlideV2/glide3x.orig/cvg/glide3/tests/test26.c ++++ GlideV2/glide3x/cvg/glide3/tests/test26.c +@@ -48,6 +48,10 @@ static const char *sourceFormatString[] + "GR_LFB_SRC_FMT_ZA16 " + }; + ++static void imageConvert( void *dst, ++ void *src, ++ GrLfbSrcFmt_t format, ++ FxU32 *bpp ); + + void main( int argc, char **argv) { + char match; +@@ -69,11 +73,6 @@ void main( int argc, char **argv) { + static FxU32 imageWidth; + static FxU32 imageHeight; + +- static void imageConvert( void *dst, +- void *src, +- GrLfbSrcFmt_t format, +- FxU32 *bpp ); +- + /* Initialize Glide */ + grGlideInit(); + assert( hwconfig = tlVoodooType() ); +--- GlideV2/glide3x/cvg/glide3/src/gaa.c.orig 2000-04-20 23:26:39.000000000 +0200 ++++ GlideV2/glide3x/cvg/glide3/src/gaa.c 2012-01-09 16:01:27.262966287 +0100 +@@ -572,7 +572,7 @@ + e = pointers; + if (mode) + e = *(float **)e; +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + + ptX = FARRAY(e, gc->state.vData.vertexInfo.offset); + ptY = FARRAY(e, gc->state.vData.vertexInfo.offset+4); +@@ -673,7 +673,7 @@ + if (mode) + e = *(float **)e; + oow = 1.0f / FARRAY(e, gc->state.vData.wInfo.offset); +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + + ptX = FARRAY(e, gc->state.vData.vertexInfo.offset) + *oow*gc->state.Viewport.hwidth+gc->state.Viewport.ox; +@@ -790,9 +790,9 @@ + v1 = *(float **)v1; + v2 = *(float **)v2; + } +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + if (ltype == GR_LINES) +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + + /* draw from low Y to high Y */ + if (FARRAY(v2, gc->state.vData.vertexInfo.offset+4) < FARRAY(v1, gc->state.vData.vertexInfo.offset+4)) { +@@ -966,9 +966,9 @@ + v1 = *(float **)v1; + v2 = *(float **)v2; + } +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + if (ltype == GR_LINES) +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + owa = oowa = 1.0f / FARRAY(v1, gc->state.vData.wInfo.offset); + owb = oowb = 1.0f / FARRAY(v2, gc->state.vData.wInfo.offset); + } +@@ -980,7 +980,7 @@ + v1 = *(float **)v1; + v2 = *(float **)v2; + } +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + owb = oowb = 1.0f / FARRAY(v2, gc->state.vData.wInfo.offset); + } + +@@ -1304,7 +1304,7 @@ + b = *(float **)b; + c = *(float **)c; + } +- (float *)pointers += stride*3; ++ pointers = (float *)pointers + stride*3; + + /* move culling test to here */ + { +@@ -1612,7 +1612,7 @@ + b = *(float **)b; + c = *(float **)c; + } +- (float *)pointers += stride*3; ++ pointers = (float *)pointers + stride*3; + oowa = 1.0f / FARRAY(a, gc->state.vData.wInfo.offset); + oowb = 1.0f / FARRAY(b, gc->state.vData.wInfo.offset); + oowc = 1.0f / FARRAY(c, gc->state.vData.wInfo.offset); +@@ -1777,7 +1777,7 @@ + if (type == kSetupFan) { + v[0] = (mode == 0) ? pointers : *(float **)pointers; + while (sCount--) { +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + if (mode) { + v[1] = *(float **)pointers; + v[2] = *((float **)pointers+1); +@@ -1819,7 +1819,7 @@ + _grAADrawTriangles(1, type, 3, v); + else + _grAAVpDrawTriangles(1, type, 3, v); +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + flip = ~flip; + } + flip = ~flip; +--- GlideV2/glide3x/cvg/glide3/src/gdraw.c.orig 2000-04-20 23:26:39.000000000 +0200 ++++ GlideV2/glide3x/cvg/glide3/src/gdraw.c 2012-01-09 16:06:50.666310453 +0100 +@@ -457,7 +457,7 @@ + vPtr = pointers; + if (mode) vPtr = *(float **)vPtr; + +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + + GDBG_INFO_MORE(gc->myLevel, "(%f %f)\n", + FARRAY(vPtr,gc->state.vData.vertexInfo.offset), +@@ -546,7 +546,7 @@ + if (mode) + vPtr = *(float **)vPtr; + oow = 1.0f / FARRAY(vPtr, gc->state.vData.wInfo.offset); +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + + { + FxU32 x, y; +@@ -666,9 +666,9 @@ + a = *(float **)a; + b = *(float **)b; + } +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + if (ltype == GR_LINES) +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + + /* + ** compute absolute deltas and draw from low Y to high Y +@@ -828,10 +828,10 @@ + a = *(float **)a; + b = *(float **)b; + } +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + owa = oowa = 1.0f / FARRAY(a, gc->state.vData.wInfo.offset); + owb = oowb = 1.0f / FARRAY(b, gc->state.vData.wInfo.offset); +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + } + else { + owa = oowa = oowb; +@@ -841,7 +841,7 @@ + a = *(float **)a; + b = *(float **)b; + } +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + owb = oowb = 1.0f / FARRAY(b, gc->state.vData.wInfo.offset); + } + fay = tmp1 = FARRAY(a, gc->state.vData.vertexInfo.offset+4) +@@ -1011,7 +1011,7 @@ + vPtr = pointers; + if (mode) + vPtr = *(float **)vPtr; +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + + i = gc->tsuDataList[dataElem]; + +@@ -1051,7 +1051,7 @@ + *oow*gc->state.Viewport.hwidth + gc->state.Viewport.ox); + TRI_SETF(FARRAY(vPtr, 4) + *oow*gc->state.Viewport.hheight + gc->state.Viewport.oy); +- (float *)pointers += stride; ++ pointers = (float *)pointers + stride; + + TRI_VP_SETFS(vPtr,oow); + } +--- GlideV2/glide3x/cvg/glide3/tests/test31.c.orig 2000-04-20 23:26:39.000000000 +0200 ++++ GlideV2/glide3x/cvg/glide3/tests/test31.c 2012-01-09 17:08:13.793100443 +0100 +@@ -307,12 +307,12 @@ + packedrgb = !packedrgb; + if (packedrgb) { + grVertexLayout(GR_PARAM_PARGB, GR_VERTEX_R_OFFSET << 2, GR_PARAM_ENABLE); +- (FxU32)vtxList[0].r = 0xff0000ff; +- (FxU32)vtxList[1].r = 0xff00ff00; +- (FxU32)vtxList[2].r = 0xffff0000; +- (FxU32)vtxList[3].r = 0xffff0000; +- (FxU32)vtxList[4].r = 0xff00ff00; +- (FxU32)vtxList[5].r = 0xff0000ff; ++ *(FxU32*)&vtxList[0].r = 0xff0000ff; ++ *(FxU32*)&vtxList[1].r = 0xff00ff00; ++ *(FxU32*)&vtxList[2].r = 0xffff0000; ++ *(FxU32*)&vtxList[3].r = 0xffff0000; ++ *(FxU32*)&vtxList[4].r = 0xff00ff00; ++ *(FxU32*)&vtxList[5].r = 0xff0000ff; + } + else { + grVertexLayout(GR_PARAM_RGB, GR_VERTEX_R_OFFSET << 2, GR_PARAM_ENABLE); +--- GlideV2/glide3x/cvg/glide3/tests/test32.c.orig 2000-04-20 23:26:39.000000000 +0200 ++++ GlideV2/glide3x/cvg/glide3/tests/test32.c 2012-01-09 17:13:56.743111927 +0100 +@@ -449,10 +449,10 @@ + packedrgb = !packedrgb; + if (packedrgb) { + grVertexLayout(GR_PARAM_PARGB, GR_VERTEX_R_OFFSET << 2, GR_PARAM_ENABLE); +- (FxU32)srcVerts[0].r = 0xff0000ff; +- (FxU32)srcVerts[1].r = 0xff00ff00; +- (FxU32)srcVerts[2].r = 0xffff0000; +- (FxU32)srcVerts[3].r = 0xffff0000; ++ *(FxU32*)&srcVerts[0].r = 0xff0000ff; ++ *(FxU32*)&srcVerts[1].r = 0xff00ff00; ++ *(FxU32*)&srcVerts[2].r = 0xffff0000; ++ *(FxU32*)&srcVerts[3].r = 0xffff0000; + } + else { + grVertexLayout(GR_PARAM_RGB, GR_VERTEX_R_OFFSET << 2, GR_PARAM_ENABLE); +--- GlideV2/glide3x/cvg/glide3/tests/sbench.c.orig 2000-04-20 23:26:39.000000000 +0200 ++++ GlideV2/glide3x/cvg/glide3/tests/sbench.c 2012-01-09 17:50:20.359851708 +0100 +@@ -281,11 +281,11 @@ + 0.5f, 0.5f); + + if (packedrgb) { +- (FxU32) vPtrArray[v][GR_VERTEX_R_OFFSET] = ++ *(FxU32*) &vPtrArray[v][GR_VERTEX_R_OFFSET] = + ((unsigned char) (vPtrArray[v][GR_VERTEX_R_OFFSET]) << 16) | + ((unsigned char) (vPtrArray[v][GR_VERTEX_G_OFFSET]) << 8) | + ((unsigned char) (vPtrArray[v][GR_VERTEX_B_OFFSET])); +- (FxU32) vPtrArray[v][GR_VERTEX_R_OFFSET] |= 0xff000000; ++ *(FxU32*) &vPtrArray[v][GR_VERTEX_R_OFFSET] |= 0xff000000; + } + } + } else { /* listType == GR_TRIANGLE_FAN */ +@@ -356,11 +356,11 @@ + vPtrArray[v][GR_VERTEX_A_OFFSET] = 255.f; + } + if (packedrgb) { +- (FxU32) vPtrArray[v][GR_VERTEX_R_OFFSET] = ++ *(FxU32*) &vPtrArray[v][GR_VERTEX_R_OFFSET] = + ((unsigned char) (vPtrArray[v][GR_VERTEX_R_OFFSET]) << 16) | + ((unsigned char) (vPtrArray[v][GR_VERTEX_G_OFFSET]) << 8) | + ((unsigned char) (vPtrArray[v][GR_VERTEX_B_OFFSET])); +- (FxU32) vPtrArray[v][GR_VERTEX_R_OFFSET] |= 0xff000000; ++ *(FxU32*) &vPtrArray[v][GR_VERTEX_R_OFFSET] |= 0xff000000; + } + } + #endif diff --git a/glide-link.patch b/glide-link.patch new file mode 100644 index 0000000..947a97c --- /dev/null +++ b/glide-link.patch @@ -0,0 +1,10 @@ +--- GlideV2/glide2x/cvg/glide/src/makefile.linux.orig 2000-04-20 23:26:36.000000000 +0200 ++++ GlideV2/glide2x/cvg/glide/src/makefile.linux 2012-01-09 17:58:16.809867662 +0100 +@@ -205,6 +205,7 @@ + SHARED_LIBRARY = libglide.so.2.53 + endif + RCFILE = glide.rc ++LINKLIBRARIES += -lm + + # Make a static link library for things like the diags. + ifeq ($(FX_DLL_BUILD),1)