mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
fixed an off by one error I created in the texture copy function in bpstructs.cpp. SSBM no longer has black on ground. sorry about that ;p
noticed the real HW doesn't clip some things it should. modified the projection matrix to account for this. changed normal loader to better handle 1 or 3 index NBT data which fixed an underrun. added missing z component in biasing section of indirect texturing. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1048 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -24,15 +24,14 @@ class VertexLoader_Normal
|
||||
{
|
||||
public:
|
||||
|
||||
static bool index3;
|
||||
// Init
|
||||
static void Init(void);
|
||||
|
||||
// GetSize
|
||||
static unsigned int GetSize(unsigned int _type, unsigned int _format, unsigned int _elements);
|
||||
static unsigned int GetSize(unsigned int _type, unsigned int _format, unsigned int _elements, unsigned int _index3);
|
||||
|
||||
// GetFunction
|
||||
static TPipelineFunction GetFunction(unsigned int _type, unsigned int _format, unsigned int _elements);
|
||||
static TPipelineFunction GetFunction(unsigned int _type, unsigned int _format, unsigned int _elements, unsigned int _index3);
|
||||
|
||||
private:
|
||||
enum ENormalType
|
||||
@ -61,9 +60,17 @@ private:
|
||||
NUM_NRM_ELEMENTS
|
||||
};
|
||||
|
||||
enum ENormalIndices
|
||||
{
|
||||
NRM_INDICES1 = 0,
|
||||
NRM_INDICES3 = 1,
|
||||
NUM_NRM_INDICES
|
||||
};
|
||||
|
||||
|
||||
// tables
|
||||
static u8 m_sizeTable[NUM_NRM_TYPE][NUM_NRM_FORMAT][NUM_NRM_ELEMENTS];
|
||||
static TPipelineFunction m_funcTable[NUM_NRM_TYPE][NUM_NRM_FORMAT][NUM_NRM_ELEMENTS];
|
||||
static u8 m_sizeTable[NUM_NRM_TYPE][NUM_NRM_FORMAT][NUM_NRM_ELEMENTS][NUM_NRM_INDICES];
|
||||
static TPipelineFunction m_funcTable[NUM_NRM_TYPE][NUM_NRM_FORMAT][NUM_NRM_ELEMENTS][NUM_NRM_INDICES];
|
||||
|
||||
// direct
|
||||
static void LOADERDECL Normal_DirectByte(const void *_p);
|
||||
@ -77,17 +84,23 @@ private:
|
||||
static void LOADERDECL Normal_Index8_Byte(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Short(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Float(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Byte3(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Short3(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Float3(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Byte3_Indices1(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Short3_Indices1(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Float3_Indices1(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Byte3_Indices3(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Short3_Indices3(const void *_p);
|
||||
static void LOADERDECL Normal_Index8_Float3_Indices3(const void *_p);
|
||||
|
||||
// index16
|
||||
static void LOADERDECL Normal_Index16_Byte(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Short(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Float(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Byte3(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Short3(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Float3(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Byte3_Indices1(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Short3_Indices1(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Float3_Indices1(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Byte3_Indices3(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Short3_Indices3(const void *_p);
|
||||
static void LOADERDECL Normal_Index16_Float3_Indices3(const void *_p);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user