1
0
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-20 20:29:10 +00:00
Files
CWE-ou-minkata/Sources/Plasma/NucleusLib/inc/hsGMatState.inl
Joseph Davies e462ef04b3 Fix Endian functions names in hsTypes and hsStream.
Function and macro names for endianness were previously vague,
and on big-endian systems entirely misleading.  The names are
now properly descriptive of what they actually do.
2011-10-25 20:23:25 -07:00

54 lines
1.6 KiB
C++

#ifndef hsGMatStateInline_inc
#define hsGMatStateInline_inc
#include "hsGMatState.h"
#include "hsStream.h"
void hsGMatState::Read(hsStream* s)
{
fBlendFlags = s->ReadLE32();
fClampFlags = s->ReadLE32();
fShadeFlags = s->ReadLE32();
fZFlags = s->ReadLE32();
fMiscFlags = s->ReadLE32();
}
void hsGMatState::Write(hsStream* s)
{
s->WriteLE32(fBlendFlags);
s->WriteLE32(fClampFlags);
s->WriteLE32(fShadeFlags);
s->WriteLE32(fZFlags);
s->WriteLE32(fMiscFlags);
}
void hsGMatState::Clear(const hsGMatState& state)
{
fBlendFlags &= ~state.fBlendFlags;
fClampFlags &= ~state.fClampFlags;
fShadeFlags &= ~state.fShadeFlags;
fZFlags &= ~state.fZFlags;
fMiscFlags &= ~state.fMiscFlags;
}
void hsGMatState::Composite(const hsGMatState& want, const hsGMatState& on, const hsGMatState& off)
{
fBlendFlags = want.fBlendFlags & ~off.fBlendFlags;
if( !(fBlendFlags & (kBlendMask & ~(kBlendAlpha|kBlendAntiAlias))) )
fBlendFlags |= on.fBlendFlags;
fClampFlags = (want.fClampFlags | on.fClampFlags) & ~off.fClampFlags;
fShadeFlags = (want.fShadeFlags | on.fShadeFlags) & ~off.fShadeFlags;
#if 0 // This restriction is only valid for glide - handle in glideDevice
if( fBlendFlags & (kBlendAntiAlias | kBlendAlpha) )
fShadeFlags &= ~(kShadeSpecularAlpha | kShadeSpecularHighlight);
#endif // This restriction is only valid for glide - handle in glideDevice
fZFlags = (want.fZFlags | on.fZFlags) & ~off.fZFlags;
fMiscFlags = (want.fMiscFlags | on.fMiscFlags) & ~off.fMiscFlags;
}
#endif // hsGMatStateInline_inc