Use alwaysinline with COLOR functions in gfx.h, MATH functions in tile.cpp, and CachedTile class in tile.cpp.
This commit is contained in:
parent
c71429c2b7
commit
3b9820d75b
12
gfx.h
12
gfx.h
@ -129,7 +129,7 @@ extern struct SGFX GFX;
|
||||
|
||||
struct COLOR_ADD
|
||||
{
|
||||
static uint16 fn(uint16 C1, uint16 C2)
|
||||
static alwaysinline uint16 fn(uint16 C1, uint16 C2)
|
||||
{
|
||||
const int RED_MASK = 0x1F << RED_SHIFT_BITS;
|
||||
const int GREEN_MASK = 0x1F << GREEN_SHIFT_BITS;
|
||||
@ -147,7 +147,7 @@ struct COLOR_ADD
|
||||
return retval;
|
||||
}
|
||||
|
||||
static uint16 fn1_2(uint16 C1, uint16 C2)
|
||||
static alwaysinline uint16 fn1_2(uint16 C1, uint16 C2)
|
||||
{
|
||||
return ((((C1 & RGB_REMOVE_LOW_BITS_MASK) +
|
||||
(C2 & RGB_REMOVE_LOW_BITS_MASK)) >> 1) +
|
||||
@ -157,7 +157,7 @@ struct COLOR_ADD
|
||||
|
||||
struct COLOR_ADD_BRIGHTNESS
|
||||
{
|
||||
static uint16 fn(uint16 C1, uint16 C2)
|
||||
static alwaysinline uint16 fn(uint16 C1, uint16 C2)
|
||||
{
|
||||
return ((brightness_cap[ (C1 >> RED_SHIFT_BITS) + (C2 >> RED_SHIFT_BITS) ] << RED_SHIFT_BITS) |
|
||||
(brightness_cap[((C1 >> GREEN_SHIFT_BITS) & 0x1f) + ((C2 >> GREEN_SHIFT_BITS) & 0x1f)] << GREEN_SHIFT_BITS) |
|
||||
@ -168,7 +168,7 @@ struct COLOR_ADD_BRIGHTNESS
|
||||
(brightness_cap[ (C1 & 0x1f) + (C2 & 0x1f)] ));
|
||||
}
|
||||
|
||||
static uint16 fn1_2(uint16 C1, uint16 C2)
|
||||
static alwaysinline uint16 fn1_2(uint16 C1, uint16 C2)
|
||||
{
|
||||
return COLOR_ADD::fn1_2(C1, C2);
|
||||
}
|
||||
@ -177,7 +177,7 @@ struct COLOR_ADD_BRIGHTNESS
|
||||
|
||||
struct COLOR_SUB
|
||||
{
|
||||
static uint16 fn(uint16 C1, uint16 C2)
|
||||
static alwaysinline uint16 fn(uint16 C1, uint16 C2)
|
||||
{
|
||||
int rb1 = (C1 & (THIRD_COLOR_MASK | FIRST_COLOR_MASK)) | ((0x20 << 0) | (0x20 << RED_SHIFT_BITS));
|
||||
int rb2 = C2 & (THIRD_COLOR_MASK | FIRST_COLOR_MASK);
|
||||
@ -192,7 +192,7 @@ struct COLOR_SUB
|
||||
return retval;
|
||||
}
|
||||
|
||||
static uint16 fn1_2(uint16 C1, uint16 C2)
|
||||
static alwaysinline uint16 fn1_2(uint16 C1, uint16 C2)
|
||||
{
|
||||
return GFX.ZERO[((C1 | RGB_HI_BITS_MASKx2) -
|
||||
(C2 & RGB_REMOVE_LOW_BITS_MASK)) >> 1];
|
||||
|
16
tile.cpp
16
tile.cpp
@ -335,7 +335,7 @@ namespace {
|
||||
public:
|
||||
CachedTile(uint32 tile) : Tile(tile) {}
|
||||
|
||||
void GetCachedTile()
|
||||
alwaysinline void GetCachedTile()
|
||||
{
|
||||
TileAddr = BG.TileAddress + ((Tile & 0x3ff) << BG.TileShift);
|
||||
if (Tile & 0x100)
|
||||
@ -356,12 +356,12 @@ namespace {
|
||||
}
|
||||
}
|
||||
|
||||
bool IsBlankTile() const
|
||||
alwaysinline bool IsBlankTile() const
|
||||
{
|
||||
return ((Tile & H_FLIP) ? BG.BufferedFlip[TileNumber] : BG.Buffered[TileNumber]) == BLANK_TILE;
|
||||
}
|
||||
|
||||
void SelectPalette() const
|
||||
alwaysinline void SelectPalette() const
|
||||
{
|
||||
if (BG.DirectColourMode)
|
||||
{
|
||||
@ -372,7 +372,7 @@ namespace {
|
||||
GFX.ScreenColors = GFX.ClipColors ? BlackColourMap : GFX.RealScreenColors;
|
||||
}
|
||||
|
||||
uint8* Ptr() const
|
||||
alwaysinline uint8* Ptr() const
|
||||
{
|
||||
return pCache;
|
||||
}
|
||||
@ -386,7 +386,7 @@ namespace {
|
||||
|
||||
struct NOMATH
|
||||
{
|
||||
static uint16 Calc(uint16 Main, uint16 Sub, uint8 SD)
|
||||
static alwaysinline uint16 Calc(uint16 Main, uint16 Sub, uint8 SD)
|
||||
{
|
||||
return Main;
|
||||
}
|
||||
@ -396,7 +396,7 @@ namespace {
|
||||
template<class Op>
|
||||
struct REGMATH
|
||||
{
|
||||
static uint16 Calc(uint16 Main, uint16 Sub, uint8 SD)
|
||||
static alwaysinline uint16 Calc(uint16 Main, uint16 Sub, uint8 SD)
|
||||
{
|
||||
return Op::fn(Main, (SD & 0x20) ? Sub : GFX.FixedColour);
|
||||
}
|
||||
@ -408,7 +408,7 @@ namespace {
|
||||
template<class Op>
|
||||
struct MATHF1_2
|
||||
{
|
||||
static uint16 Calc(uint16 Main, uint16 Sub, uint8 SD)
|
||||
static alwaysinline uint16 Calc(uint16 Main, uint16 Sub, uint8 SD)
|
||||
{
|
||||
return GFX.ClipColors ? Op::fn(Main, GFX.FixedColour) : Op::fn1_2(Main, GFX.FixedColour);
|
||||
}
|
||||
@ -419,7 +419,7 @@ namespace {
|
||||
template<class Op>
|
||||
struct MATHS1_2
|
||||
{
|
||||
static uint16 Calc(uint16 Main, uint16 Sub, uint8 SD)
|
||||
static alwaysinline uint16 Calc(uint16 Main, uint16 Sub, uint8 SD)
|
||||
{
|
||||
return GFX.ClipColors ? REGMATH<Op>::Calc(Main, Sub, SD) : (SD & 0x20) ? Op::fn1_2(Main, Sub) : Op::fn(Main, GFX.FixedColour);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user