0.9.8: backport the gcc 4.6 fix for zzogl and zerospu2

git-svn-id: http://pcsx2.googlecode.com/svn/branches/0.9.8@4621 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
gregory.hainaut@gmail.com 2011-05-04 16:41:21 +00:00
parent 2b99eaff4b
commit bc765be90c
3 changed files with 15 additions and 7 deletions

View File

@ -178,7 +178,7 @@ static __forceinline u16 c_offset(u32 ch)
return channel_test(ch) ? 0x0 : 0x400;
}
static __forceinline tSPU_ATTR spu2attr(u32 channel)
static __forceinline tSPU_ATTR &spu2attr(u32 channel)
{
return channel_test(channel) ? spu2attr0 : spu2attr1;
}

View File

@ -41,13 +41,14 @@ void Prim()
curvb.SetCurrentPrim();
}
// Replaced by a macro -> see ZZoglDrawing.h
// return true if triangle SHOULD be painted.
// Hackish and should be replaced.
bool __forceinline NoHighlights(int i)
{
//Old code
return (!(conf.settings().xenosaga_spec) || !vb[i].zbuf.zmsk || prim->iip) ;
}
// bool __forceinline NoHighlights(int i)
// {
// //Old code
// return (!(conf.settings().xenosaga_spec) || !vb[i].zbuf.zmsk || prim->iip) ;
// }
// Not inlining for the moment to avoid getting 'unresolved external symbol' errors in Windows.
// This could also be resolved by moving the function into the header...

View File

@ -23,7 +23,14 @@
#include "Util.h"
#include "GS.h"
extern bool __forceinline NoHighlights(int i);
// extern bool __forceinline NoHighlights(int i);
// return true if triangle SHOULD be painted.
// Hackish and should be replaced.
// Previous version was an inlined function but gcc-4.6 does not want to inline it.
// Because the code is in the middle of vertex which are very often call,
// a basic macro is more effective -- Gregory
#define NoHighlights(I) (!(conf.settings().xenosaga_spec) || !vb[(I)].zbuf.zmsk || prim->iip)
enum PRIM_TYPE {
PRIM_POINT = 0,