mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Added more overlay stats options.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2268 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -15,6 +15,8 @@
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
#include "CommonTypes.h"
|
||||
|
||||
#ifndef _STATISTICS_H
|
||||
#define _STATISTICS_H
|
||||
|
||||
@ -37,6 +39,22 @@ struct Statistics
|
||||
|
||||
int numVertexLoaders;
|
||||
|
||||
int logicOpMode;
|
||||
int srcFactor;
|
||||
int dstFactor;
|
||||
int dither;
|
||||
int alphaUpdate;
|
||||
int colorUpdate;
|
||||
int dstAlphaEnable;
|
||||
u32 dstAlpha;
|
||||
|
||||
float proj_0, proj_1, proj_2, proj_3, proj_4, proj_5, proj_6;
|
||||
float gproj_0, gproj_1, gproj_2, gproj_3, gproj_4, gproj_5;
|
||||
float gproj_6, gproj_7, gproj_8, gproj_9, gproj_10, gproj_11, gproj_12, gproj_13, gproj_14, gproj_15;
|
||||
|
||||
float g2proj_0, g2proj_1, g2proj_2, g2proj_3, g2proj_4, g2proj_5;
|
||||
float g2proj_6, g2proj_7, g2proj_8, g2proj_9, g2proj_10, g2proj_11, g2proj_12, g2proj_13, g2proj_14, g2proj_15;
|
||||
|
||||
struct ThisFrame
|
||||
{
|
||||
int numBPLoads;
|
||||
@ -71,6 +89,8 @@ extern Statistics stats;
|
||||
#define INCSTAT(a) (a)++;
|
||||
#define ADDSTAT(a,b) (a)+=(b);
|
||||
#define SETSTAT(a,x) (a)=(int)(x);
|
||||
#define SETSTAT_UINT(a,x) (a)=(u32)(x);
|
||||
#define SETSTAT_FT(a,x) (a)=(float)(x);
|
||||
#else
|
||||
#define INCSTAT(a) ;
|
||||
#define ADDSTAT(a,b) ;
|
||||
|
@ -198,6 +198,7 @@ void VertexShaderManager::SetConstants(bool proj_hax_1, bool proj_hax_2)
|
||||
bProjectionChanged = false;
|
||||
static float GC_ALIGNED16(g_fProjectionMatrix[16]);
|
||||
|
||||
|
||||
if (xfregs.rawProjection[6] == 0) {
|
||||
g_fProjectionMatrix[0] = xfregs.rawProjection[0];
|
||||
g_fProjectionMatrix[1] = 0.0f;
|
||||
@ -233,6 +234,23 @@ void VertexShaderManager::SetConstants(bool proj_hax_1, bool proj_hax_2)
|
||||
// -(1 + epsilon) so objects are clipped as they are on the real HW
|
||||
g_fProjectionMatrix[14] = -1.00000011921f;
|
||||
g_fProjectionMatrix[15] = 0.0f;
|
||||
|
||||
SETSTAT_FT(stats.gproj_0, g_fProjectionMatrix[0]);
|
||||
SETSTAT_FT(stats.gproj_1, g_fProjectionMatrix[1]);
|
||||
SETSTAT_FT(stats.gproj_2, g_fProjectionMatrix[2]);
|
||||
SETSTAT_FT(stats.gproj_3, g_fProjectionMatrix[3]);
|
||||
SETSTAT_FT(stats.gproj_4, g_fProjectionMatrix[4]);
|
||||
SETSTAT_FT(stats.gproj_5, g_fProjectionMatrix[5]);
|
||||
SETSTAT_FT(stats.gproj_6, g_fProjectionMatrix[6]);
|
||||
SETSTAT_FT(stats.gproj_7, g_fProjectionMatrix[7]);
|
||||
SETSTAT_FT(stats.gproj_8, g_fProjectionMatrix[8]);
|
||||
SETSTAT_FT(stats.gproj_9, g_fProjectionMatrix[9]);
|
||||
SETSTAT_FT(stats.gproj_10, g_fProjectionMatrix[10]);
|
||||
SETSTAT_FT(stats.gproj_11, g_fProjectionMatrix[11]);
|
||||
SETSTAT_FT(stats.gproj_12, g_fProjectionMatrix[12]);
|
||||
SETSTAT_FT(stats.gproj_13, g_fProjectionMatrix[13]);
|
||||
SETSTAT_FT(stats.gproj_14, g_fProjectionMatrix[14]);
|
||||
SETSTAT_FT(stats.gproj_15, g_fProjectionMatrix[15]);
|
||||
}
|
||||
else {
|
||||
g_fProjectionMatrix[0] = xfregs.rawProjection[0];
|
||||
@ -268,8 +286,33 @@ void VertexShaderManager::SetConstants(bool proj_hax_1, bool proj_hax_2)
|
||||
g_fProjectionMatrix[13] = 0;
|
||||
g_fProjectionMatrix[14] = 0.0f;
|
||||
g_fProjectionMatrix[15] = 1.0f;
|
||||
|
||||
SETSTAT_FT(stats.g2proj_0, g_fProjectionMatrix[0]);
|
||||
SETSTAT_FT(stats.g2proj_1, g_fProjectionMatrix[1]);
|
||||
SETSTAT_FT(stats.g2proj_2, g_fProjectionMatrix[2]);
|
||||
SETSTAT_FT(stats.g2proj_3, g_fProjectionMatrix[3]);
|
||||
SETSTAT_FT(stats.g2proj_4, g_fProjectionMatrix[4]);
|
||||
SETSTAT_FT(stats.g2proj_5, g_fProjectionMatrix[5]);
|
||||
SETSTAT_FT(stats.g2proj_6, g_fProjectionMatrix[6]);
|
||||
SETSTAT_FT(stats.g2proj_7, g_fProjectionMatrix[7]);
|
||||
SETSTAT_FT(stats.g2proj_8, g_fProjectionMatrix[8]);
|
||||
SETSTAT_FT(stats.g2proj_9, g_fProjectionMatrix[9]);
|
||||
SETSTAT_FT(stats.g2proj_10, g_fProjectionMatrix[10]);
|
||||
SETSTAT_FT(stats.g2proj_11, g_fProjectionMatrix[11]);
|
||||
SETSTAT_FT(stats.g2proj_12, g_fProjectionMatrix[12]);
|
||||
SETSTAT_FT(stats.g2proj_13, g_fProjectionMatrix[13]);
|
||||
SETSTAT_FT(stats.g2proj_14, g_fProjectionMatrix[14]);
|
||||
SETSTAT_FT(stats.g2proj_15, g_fProjectionMatrix[15]);
|
||||
}
|
||||
|
||||
SETSTAT_FT(stats.proj_0, xfregs.rawProjection[0]);
|
||||
SETSTAT_FT(stats.proj_1, xfregs.rawProjection[1]);
|
||||
SETSTAT_FT(stats.proj_2, xfregs.rawProjection[2]);
|
||||
SETSTAT_FT(stats.proj_3, xfregs.rawProjection[3]);
|
||||
SETSTAT_FT(stats.proj_4, xfregs.rawProjection[4]);
|
||||
SETSTAT_FT(stats.proj_5, xfregs.rawProjection[5]);
|
||||
SETSTAT_FT(stats.proj_6, xfregs.rawProjection[6]);
|
||||
|
||||
PRIM_LOG("Projection: %f %f %f %f %f %f\n", xfregs.rawProjection[0], xfregs.rawProjection[1], xfregs.rawProjection[2], xfregs.rawProjection[3], xfregs.rawProjection[4], xfregs.rawProjection[5]);
|
||||
SetVSConstant4fv(C_PROJECTION, &g_fProjectionMatrix[0]);
|
||||
SetVSConstant4fv(C_PROJECTION+1, &g_fProjectionMatrix[4]);
|
||||
|
Reference in New Issue
Block a user