summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeoBrainX <NeoBrainX@gmail.com>2013-08-12 12:52:28 +0200
committerNeoBrainX <NeoBrainX@gmail.com>2013-08-12 18:30:42 +0200
commit22d97367873f91efe0fa0d7e2883d2d53154ee7d (patch)
tree3804aa880e87811075f2ee4629870b201f979b63
parent69a5a79c0313f512493b7cdb90b6457f09c3dbac (diff)
ShaderGen: Static inline everything.
-rw-r--r--Source/Core/VideoCommon/Src/BPMemory.cpp35
-rw-r--r--Source/Core/VideoCommon/Src/BPMemory.h35
-rw-r--r--Source/Core/VideoCommon/Src/PixelShaderGen.cpp18
-rw-r--r--Source/Core/VideoCommon/Src/ShaderGenCommon.h6
4 files changed, 46 insertions, 48 deletions
diff --git a/Source/Core/VideoCommon/Src/BPMemory.cpp b/Source/Core/VideoCommon/Src/BPMemory.cpp
index 77f2f6bab3..7272ed0993 100644
--- a/Source/Core/VideoCommon/Src/BPMemory.cpp
+++ b/Source/Core/VideoCommon/Src/BPMemory.cpp
@@ -299,38 +299,3 @@ void GetBPRegInfo(const u8* data, char* name, size_t name_size, char* desc, size
#undef SetRegName
}
}
-
-AlphaTest::TEST_RESULT AlphaTest::TestResult()
-{
- switch(logic)
- {
- case 0: // AND
- if (comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_ALWAYS)
- return PASS;
- if (comp0 == ALPHACMP_NEVER || comp1 == ALPHACMP_NEVER)
- return FAIL;
- break;
-
- case 1: // OR
- if (comp0 == ALPHACMP_ALWAYS || comp1 == ALPHACMP_ALWAYS)
- return PASS;
- if (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_NEVER)
- return FAIL;
- break;
-
- case 2: // XOR
- if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_NEVER) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_ALWAYS))
- return PASS;
- if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_ALWAYS) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_NEVER))
- return FAIL;
- break;
-
- case 3: // XNOR
- if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_NEVER) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_ALWAYS))
- return FAIL;
- if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_ALWAYS) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_NEVER))
- return PASS;
- break;
- }
- return UNDETERMINED;
-}
diff --git a/Source/Core/VideoCommon/Src/BPMemory.h b/Source/Core/VideoCommon/Src/BPMemory.h
index 7ce19376f5..83dbefed50 100644
--- a/Source/Core/VideoCommon/Src/BPMemory.h
+++ b/Source/Core/VideoCommon/Src/BPMemory.h
@@ -885,7 +885,40 @@ union AlphaTest
PASS = 2,
};
- TEST_RESULT TestResult();
+ inline TEST_RESULT TestResult() const
+ {
+ switch(logic)
+ {
+ case 0: // AND
+ if (comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_ALWAYS)
+ return PASS;
+ if (comp0 == ALPHACMP_NEVER || comp1 == ALPHACMP_NEVER)
+ return FAIL;
+ break;
+
+ case 1: // OR
+ if (comp0 == ALPHACMP_ALWAYS || comp1 == ALPHACMP_ALWAYS)
+ return PASS;
+ if (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_NEVER)
+ return FAIL;
+ break;
+
+ case 2: // XOR
+ if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_NEVER) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_ALWAYS))
+ return PASS;
+ if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_ALWAYS) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_NEVER))
+ return FAIL;
+ break;
+
+ case 3: // XNOR
+ if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_NEVER) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_ALWAYS))
+ return FAIL;
+ if ((comp0 == ALPHACMP_ALWAYS && comp1 == ALPHACMP_ALWAYS) || (comp0 == ALPHACMP_NEVER && comp1 == ALPHACMP_NEVER))
+ return PASS;
+ break;
+ }
+ return UNDETERMINED;
+ }
};
union UPE_Copy
diff --git a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp
index fcf87215db..56b2667a48 100644
--- a/Source/Core/VideoCommon/Src/PixelShaderGen.cpp
+++ b/Source/Core/VideoCommon/Src/PixelShaderGen.cpp
@@ -216,7 +216,7 @@ static char swapModeTable[4][5];
static char text[16384];
-static void BuildSwapModeTable()
+static inline void BuildSwapModeTable()
{
static const char *swapColors = "rgba";
for (int i = 0; i < 4; i++)
@@ -229,13 +229,13 @@ static void BuildSwapModeTable()
}
}
-template<class T> static void WriteStage(T& out, pixel_shader_uid_data& uid_data, int n, API_TYPE ApiType, RegisterState RegisterStates[4]);
-template<class T> static void SampleTexture(T& out, const char *texcoords, const char *texswap, int texmap, API_TYPE ApiType);
-template<class T> static void WriteAlphaTest(T& out, pixel_shader_uid_data& uid_data, API_TYPE ApiType,DSTALPHA_MODE dstAlphaMode, bool per_pixel_depth);
-template<class T> static void WriteFog(T& out, pixel_shader_uid_data& uid_data);
+template<class T> static inline void WriteStage(T& out, pixel_shader_uid_data& uid_data, int n, API_TYPE ApiType, RegisterState RegisterStates[4]);
+template<class T> static inline void SampleTexture(T& out, const char *texcoords, const char *texswap, int texmap, API_TYPE ApiType);
+template<class T> static inline void WriteAlphaTest(T& out, pixel_shader_uid_data& uid_data, API_TYPE ApiType,DSTALPHA_MODE dstAlphaMode, bool per_pixel_depth);
+template<class T> static inline void WriteFog(T& out, pixel_shader_uid_data& uid_data);
template<class T>
-static void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType, u32 components)
+static inline void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_TYPE ApiType, u32 components)
{
// Non-uid template parameters will write to the dummy data (=> gets optimized out)
pixel_shader_uid_data dummy_data;
@@ -762,7 +762,7 @@ static const char *TEVCMPAlphaOPTable[16] =
};
template<class T>
-static void WriteStage(T& out, pixel_shader_uid_data& uid_data, int n, API_TYPE ApiType, RegisterState RegisterStates[4])
+static inline void WriteStage(T& out, pixel_shader_uid_data& uid_data, int n, API_TYPE ApiType, RegisterState RegisterStates[4])
{
int texcoord = bpmem.tevorders[n/2].getTexCoord(n&1);
bool bHasTexCoord = (u32)texcoord < bpmem.genMode.numtexgens;
@@ -1160,7 +1160,7 @@ static const char *tevAlphaFunclogicTable[] =
};
template<class T>
-static void WriteAlphaTest(T& out, pixel_shader_uid_data& uid_data, API_TYPE ApiType, DSTALPHA_MODE dstAlphaMode, bool per_pixel_depth)
+static inline void WriteAlphaTest(T& out, pixel_shader_uid_data& uid_data, API_TYPE ApiType, DSTALPHA_MODE dstAlphaMode, bool per_pixel_depth)
{
static const char *alphaRef[2] =
{
@@ -1231,7 +1231,7 @@ static const char *tevFogFuncsTable[] =
};
template<class T>
-static void WriteFog(T& out, pixel_shader_uid_data& uid_data)
+static inline void WriteFog(T& out, pixel_shader_uid_data& uid_data)
{
uid_data.fog_fsel = bpmem.fog.c_proj_fsel.fsel;
if(bpmem.fog.c_proj_fsel.fsel == 0)
diff --git a/Source/Core/VideoCommon/Src/ShaderGenCommon.h b/Source/Core/VideoCommon/Src/ShaderGenCommon.h
index ec4fe27416..a804c08f13 100644
--- a/Source/Core/VideoCommon/Src/ShaderGenCommon.h
+++ b/Source/Core/VideoCommon/Src/ShaderGenCommon.h
@@ -173,7 +173,7 @@ private:
};
template<class T>
-static void WriteRegister(T& object, API_TYPE ApiType, const char *prefix, const u32 num)
+static inline void WriteRegister(T& object, API_TYPE ApiType, const char *prefix, const u32 num)
{
if (ApiType == API_OPENGL)
return; // Nothing to do here
@@ -182,7 +182,7 @@ static void WriteRegister(T& object, API_TYPE ApiType, const char *prefix, const
}
template<class T>
-static void WriteLocation(T& object, API_TYPE ApiType, bool using_ubos)
+static inline void WriteLocation(T& object, API_TYPE ApiType, bool using_ubos)
{
if (using_ubos)
return;
@@ -191,7 +191,7 @@ static void WriteLocation(T& object, API_TYPE ApiType, bool using_ubos)
}
template<class T>
-static void DeclareUniform(T& object, API_TYPE api_type, bool using_ubos, const u32 num, const char* type, const char* name)
+static inline void DeclareUniform(T& object, API_TYPE api_type, bool using_ubos, const u32 num, const char* type, const char* name)
{
WriteLocation(object, api_type, using_ubos);
object.Write("%s %s ", type, name);