fix DrawIndexedTriangles bug that caused uninited verticies to be drawn
This commit is contained in:
@@ -33,13 +33,13 @@ DancingCharacters::DancingCharacters()
|
|||||||
if( PREFSMAN->m_bShowDancingCharacters )
|
if( PREFSMAN->m_bShowDancingCharacters )
|
||||||
{
|
{
|
||||||
m_Character[PLAYER_1].SetX( MODEL_X[PLAYER_1] );
|
m_Character[PLAYER_1].SetX( MODEL_X[PLAYER_1] );
|
||||||
m_Character[PLAYER_1].LoadMilkshapeAscii( "D:\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\char0000\\model.txt" );
|
m_Character[PLAYER_1].LoadMilkshapeAscii( "C:\\My Documents\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\char0000\\model.txt" );
|
||||||
m_Character[PLAYER_1].LoadMilkshapeAsciiBones( "D:\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\dance0001.bones.txt" );
|
m_Character[PLAYER_1].LoadMilkshapeAsciiBones( "C:\\My Documents\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\dance0001.bones.txt" );
|
||||||
this->AddChild( &m_Character[PLAYER_1] );
|
this->AddChild( &m_Character[PLAYER_1] );
|
||||||
|
|
||||||
m_Character[PLAYER_2].SetX( MODEL_X[PLAYER_2] );
|
m_Character[PLAYER_2].SetX( MODEL_X[PLAYER_2] );
|
||||||
m_Character[PLAYER_2].LoadMilkshapeAscii( "D:\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\char0011\\model.txt" );
|
m_Character[PLAYER_2].LoadMilkshapeAscii( "C:\\My Documents\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\char0011\\model.txt" );
|
||||||
m_Character[PLAYER_2].LoadMilkshapeAsciiBones( "D:\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\dance0002.bones.txt" );
|
m_Character[PLAYER_2].LoadMilkshapeAsciiBones( "C:\\My Documents\\Dev\\ddrpc char hacking\\DDRPCRip\\models\\dance0002.bones.txt" );
|
||||||
this->AddChild( &m_Character[PLAYER_2] );
|
this->AddChild( &m_Character[PLAYER_2] );
|
||||||
|
|
||||||
StartCameraSweep();
|
StartCameraSweep();
|
||||||
|
|||||||
@@ -794,7 +794,7 @@ void Model::DrawPrimitives()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DISPLAY->DrawIndexedTriangles( &TempVertices[0], (Uint16*)&pMesh->Triangles[0], pMesh->Triangles.size()*3 );
|
DISPLAY->DrawIndexedTriangles( &TempVertices[0], pMesh->Vertices.size(), (Uint16*)&pMesh->Triangles[0], pMesh->Triangles.size()*3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
DISPLAY->SetZBuffer( false );
|
DISPLAY->SetZBuffer( false );
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ public:
|
|||||||
virtual void DrawFan( const RageVertex v[], int iNumVerts ) = 0;
|
virtual void DrawFan( const RageVertex v[], int iNumVerts ) = 0;
|
||||||
virtual void DrawStrip( const RageVertex v[], int iNumVerts ) = 0;
|
virtual void DrawStrip( const RageVertex v[], int iNumVerts ) = 0;
|
||||||
virtual void DrawTriangles( const RageVertex v[], int iNumVerts ) = 0;
|
virtual void DrawTriangles( const RageVertex v[], int iNumVerts ) = 0;
|
||||||
virtual void DrawIndexedTriangles( const RageVertex v[], const Uint16* pIndices, int iNumIndices ) = 0;
|
virtual void DrawIndexedTriangles( const RageVertex v[], int iNumVerts, const Uint16* pIndices, int iNumIndices ) = 0;
|
||||||
virtual void DrawLineStrip( const RageVertex v[], int iNumVerts, float LineWidth );
|
virtual void DrawLineStrip( const RageVertex v[], int iNumVerts, float LineWidth );
|
||||||
|
|
||||||
void DrawCircle( const RageVertex &v, float radius );
|
void DrawCircle( const RageVertex &v, float radius );
|
||||||
|
|||||||
@@ -644,7 +644,7 @@ void RageDisplay_D3D::DrawTriangles( const RageVertex v[], int iNumVerts )
|
|||||||
StatsAddVerts( iNumVerts );
|
StatsAddVerts( iNumVerts );
|
||||||
}
|
}
|
||||||
|
|
||||||
void RageDisplay_D3D::DrawIndexedTriangles( const RageVertex v[], const Uint16 pIndices[], int iNumIndices )
|
void RageDisplay_D3D::DrawIndexedTriangles( const RageVertex v[], int iNumVerts, const Uint16 pIndices[], int iNumIndices )
|
||||||
{
|
{
|
||||||
if( iNumIndices == 0 )
|
if( iNumIndices == 0 )
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public:
|
|||||||
void DrawFan( const RageVertex v[], int iNumVerts );
|
void DrawFan( const RageVertex v[], int iNumVerts );
|
||||||
void DrawStrip( const RageVertex v[], int iNumVerts );
|
void DrawStrip( const RageVertex v[], int iNumVerts );
|
||||||
void DrawTriangles( const RageVertex v[], int iNumVerts );
|
void DrawTriangles( const RageVertex v[], int iNumVerts );
|
||||||
void DrawIndexedTriangles( const RageVertex v[], const Uint16* pIndices, int iNumIndices );
|
void DrawIndexedTriangles( const RageVertex v[], int iNumVerts, const Uint16* pIndices, int iNumIndices );
|
||||||
// void DrawLineStrip( const RageVertex v[], int iNumVerts, float LineWidth );
|
// void DrawLineStrip( const RageVertex v[], int iNumVerts, float LineWidth );
|
||||||
|
|
||||||
void SaveScreenshot( CString sPath );
|
void SaveScreenshot( CString sPath );
|
||||||
|
|||||||
@@ -596,7 +596,7 @@ void RageDisplay_OGL::DrawTriangles( const RageVertex v[], int iNumVerts )
|
|||||||
StatsAddVerts( iNumVerts );
|
StatsAddVerts( iNumVerts );
|
||||||
}
|
}
|
||||||
|
|
||||||
void RageDisplay_OGL::DrawIndexedTriangles( const RageVertex v[], const Uint16 pIndices[], int iNumIndices )
|
void RageDisplay_OGL::DrawIndexedTriangles( const RageVertex v[], int iNumVerts, const Uint16 pIndices[], int iNumIndices )
|
||||||
{
|
{
|
||||||
if( iNumIndices == 0 )
|
if( iNumIndices == 0 )
|
||||||
return;
|
return;
|
||||||
@@ -607,10 +607,6 @@ void RageDisplay_OGL::DrawIndexedTriangles( const RageVertex v[], const Uint16 p
|
|||||||
glMatrixMode( GL_MODELVIEW );
|
glMatrixMode( GL_MODELVIEW );
|
||||||
glLoadMatrixf( (const float*)GetModelViewTop() );
|
glLoadMatrixf( (const float*)GetModelViewTop() );
|
||||||
|
|
||||||
/* XXX: This is ugly. */
|
|
||||||
int iNumVerts = 0;
|
|
||||||
for(int i = 0; i < iNumIndices; ++i)
|
|
||||||
iNumVerts = max(iNumVerts, (int) pIndices[i]);
|
|
||||||
SetupVertices( v, iNumVerts );
|
SetupVertices( v, iNumVerts );
|
||||||
// glInterleavedArrays( RageVertexFormat, sizeof(RageVertex), v );
|
// glInterleavedArrays( RageVertexFormat, sizeof(RageVertex), v );
|
||||||
glDrawElements( GL_TRIANGLES, iNumIndices, GL_UNSIGNED_SHORT, pIndices );
|
glDrawElements( GL_TRIANGLES, iNumIndices, GL_UNSIGNED_SHORT, pIndices );
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public:
|
|||||||
void DrawFan( const RageVertex v[], int iNumVerts );
|
void DrawFan( const RageVertex v[], int iNumVerts );
|
||||||
void DrawStrip( const RageVertex v[], int iNumVerts );
|
void DrawStrip( const RageVertex v[], int iNumVerts );
|
||||||
void DrawTriangles( const RageVertex v[], int iNumVerts );
|
void DrawTriangles( const RageVertex v[], int iNumVerts );
|
||||||
void DrawIndexedTriangles( const RageVertex v[], const Uint16* pIndices, int iNumIndices );
|
void DrawIndexedTriangles( const RageVertex v[], int iNumVerts, const Uint16* pIndices, int iNumIndices );
|
||||||
void DrawLineStrip( const RageVertex v[], int iNumVerts, float LineWidth );
|
void DrawLineStrip( const RageVertex v[], int iNumVerts, float LineWidth );
|
||||||
|
|
||||||
void SaveScreenshot( CString sPath );
|
void SaveScreenshot( CString sPath );
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ enum {
|
|||||||
BO_MODE,
|
BO_MODE,
|
||||||
BO_BRIGHTNESS,
|
BO_BRIGHTNESS,
|
||||||
BO_DANGER,
|
BO_DANGER,
|
||||||
// BO_DANCING_CHARACTERS,
|
BO_DANCING_CHARACTERS,
|
||||||
BO_RANDOM_BACKGROUNDS,
|
BO_RANDOM_BACKGROUNDS,
|
||||||
NUM_BACKGROUND_OPTIONS_LINES
|
NUM_BACKGROUND_OPTIONS_LINES
|
||||||
};
|
};
|
||||||
@@ -36,7 +36,7 @@ OptionRow g_BackgroundOptionsLines[NUM_BACKGROUND_OPTIONS_LINES] = {
|
|||||||
OptionRow( "Mode", "OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES" ),
|
OptionRow( "Mode", "OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES" ),
|
||||||
OptionRow( "Brightness", "0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%" ),
|
OptionRow( "Brightness", "0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%" ),
|
||||||
OptionRow( "Danger", "HIDE","SHOW" ),
|
OptionRow( "Danger", "HIDE","SHOW" ),
|
||||||
// OptionRow( "Dancing\nCharacters", "HIDE","SHOW" )
|
OptionRow( "Dancing\nCharacters", "HIDE","SHOW" ),
|
||||||
OptionRow( "Random\nBackgrounds", "5","10","15","20" ),
|
OptionRow( "Random\nBackgrounds", "5","10","15","20" ),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ void ScreenBackgroundOptions::ImportOptions()
|
|||||||
m_iSelectedOption[0][BO_MODE] = PREFSMAN->m_BackgroundMode;
|
m_iSelectedOption[0][BO_MODE] = PREFSMAN->m_BackgroundMode;
|
||||||
m_iSelectedOption[0][BO_BRIGHTNESS] = (int)( PREFSMAN->m_fBGBrightness*10+0.5f );
|
m_iSelectedOption[0][BO_BRIGHTNESS] = (int)( PREFSMAN->m_fBGBrightness*10+0.5f );
|
||||||
m_iSelectedOption[0][BO_DANGER] = PREFSMAN->m_bShowDanger ? 1:0;
|
m_iSelectedOption[0][BO_DANGER] = PREFSMAN->m_bShowDanger ? 1:0;
|
||||||
// m_iSelectedOption[0][BO_DANCING_CHARACTERS] = PREFSMAN->m_bShowDancingCharacters? 1:0;
|
m_iSelectedOption[0][BO_DANCING_CHARACTERS] = PREFSMAN->m_bShowDancingCharacters? 1:0;
|
||||||
m_iSelectedOption[0][BO_RANDOM_BACKGROUNDS] = clamp((PREFSMAN->m_iNumBackgrounds/5)-1, 0, 3);
|
m_iSelectedOption[0][BO_RANDOM_BACKGROUNDS] = clamp((PREFSMAN->m_iNumBackgrounds/5)-1, 0, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ void ScreenBackgroundOptions::ExportOptions()
|
|||||||
(int&)PREFSMAN->m_BackgroundMode = m_iSelectedOption[0][BO_MODE];
|
(int&)PREFSMAN->m_BackgroundMode = m_iSelectedOption[0][BO_MODE];
|
||||||
PREFSMAN->m_fBGBrightness = m_iSelectedOption[0][BO_BRIGHTNESS] / 10.0f;
|
PREFSMAN->m_fBGBrightness = m_iSelectedOption[0][BO_BRIGHTNESS] / 10.0f;
|
||||||
PREFSMAN->m_bShowDanger = m_iSelectedOption[0][BO_DANGER] == 1;
|
PREFSMAN->m_bShowDanger = m_iSelectedOption[0][BO_DANGER] == 1;
|
||||||
// PREFSMAN->m_bShowDancingCharacters = m_iSelectedOption[0][BO_DANCING_CHARACTERS] == 1;
|
PREFSMAN->m_bShowDancingCharacters = m_iSelectedOption[0][BO_DANCING_CHARACTERS] == 1;
|
||||||
PREFSMAN->m_iNumBackgrounds = (m_iSelectedOption[0][BO_RANDOM_BACKGROUNDS]+1) * 5;
|
PREFSMAN->m_iNumBackgrounds = (m_iSelectedOption[0][BO_RANDOM_BACKGROUNDS]+1) * 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+15
-15
@@ -64,7 +64,7 @@ IntDir=.\../Debug6
|
|||||||
TargetDir=\stepmania\stepmania
|
TargetDir=\stepmania\stepmania
|
||||||
TargetName=StepMania-debug
|
TargetName=StepMania-debug
|
||||||
SOURCE="$(InputPath)"
|
SOURCE="$(InputPath)"
|
||||||
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
||||||
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
|
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
|
||||||
# End Special Build Tool
|
# End Special Build Tool
|
||||||
|
|
||||||
@@ -82,25 +82,25 @@ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania
|
|||||||
# PROP Intermediate_Dir "StepMania___Xbox_Debug___VC6"
|
# PROP Intermediate_Dir "StepMania___Xbox_Debug___VC6"
|
||||||
# PROP Ignore_Export_Lib 0
|
# PROP Ignore_Export_Lib 0
|
||||||
# PROP Target_Dir ""
|
# PROP Target_Dir ""
|
||||||
CPP=cl.exe
|
XBCP=xbecopy.exe
|
||||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /D "WIN32" /D "_XBOX" /D "_DEBUG" /Fr /YX"global.h" /FD /c
|
# ADD BASE XBCP /NOLOGO
|
||||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /D "WIN32" /D "_XBOX" /D "_DEBUG" /Fr /YX"global.h" /FD /c
|
# ADD XBCP /NOLOGO
|
||||||
BSC32=bscmake.exe
|
XBE=imagebld.exe
|
||||||
# ADD BASE BSC32 /nologo
|
# ADD BASE XBE /nologo /stack:0x10000 /debug
|
||||||
# ADD BSC32 /nologo
|
# ADD XBE /nologo /stack:0x10000 /debug
|
||||||
LINK32=link.exe
|
LINK32=link.exe
|
||||||
# ADD BASE LINK32 $(intdir)\verstub.obj kernel32.lib shell32.lib user32.lib gdi32.lib advapi32.lib winmm.lib /nologo /pdb:"../debug6/StepMania-debug.pdb" /map /debug /machine:IX86 /nodefaultlib:"libcmtd.lib" /out:"../StepMania-debug.exe"
|
# ADD BASE LINK32 $(intdir)\verstub.obj kernel32.lib shell32.lib user32.lib gdi32.lib advapi32.lib winmm.lib /nologo /pdb:"../debug6/StepMania-debug.pdb" /map /debug /machine:IX86 /nodefaultlib:"libcmtd.lib" /out:"../StepMania-debug.exe"
|
||||||
# SUBTRACT BASE LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib
|
# SUBTRACT BASE LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib
|
||||||
# ADD LINK32 $(intdir)\verstub.obj kernel32.lib shell32.lib user32.lib gdi32.lib advapi32.lib winmm.lib /nologo /pdb:"../debug6/StepMania-debug.pdb" /map /debug /machine:IX86 /nodefaultlib:"libcmtd.lib" /out:"../StepMania-debug.exe"
|
# ADD LINK32 $(intdir)\verstub.obj kernel32.lib shell32.lib user32.lib gdi32.lib advapi32.lib winmm.lib /nologo /pdb:"../debug6/StepMania-debug.pdb" /map /debug /machine:IX86 /nodefaultlib:"libcmtd.lib" /out:"../StepMania-debug.exe"
|
||||||
# SUBTRACT LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib
|
# SUBTRACT LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib
|
||||||
XBE=imagebld.exe
|
BSC32=bscmake.exe
|
||||||
# ADD BASE XBE /nologo /stack:0x10000 /debug
|
# ADD BASE BSC32 /nologo
|
||||||
# ADD XBE /nologo /stack:0x10000 /debug
|
# ADD BSC32 /nologo
|
||||||
XBCP=xbecopy.exe
|
CPP=cl.exe
|
||||||
# ADD BASE XBCP /NOLOGO
|
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /D "WIN32" /D "_XBOX" /D "_DEBUG" /Fr /YX"global.h" /FD /c
|
||||||
# ADD XBCP /NOLOGO
|
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I "SDL-1.2.5\include" /I "SDL_image-1.2" /I "plib-1.6.0" /D "WIN32" /D "_XBOX" /D "_DEBUG" /Fr /YX"global.h" /FD /c
|
||||||
# Begin Special Build Tool
|
# Begin Special Build Tool
|
||||||
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
||||||
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
|
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
|
||||||
# End Special Build Tool
|
# End Special Build Tool
|
||||||
|
|
||||||
@@ -140,7 +140,7 @@ IntDir=.\../Release6
|
|||||||
TargetDir=\stepmania\stepmania
|
TargetDir=\stepmania\stepmania
|
||||||
TargetName=StepMania
|
TargetName=StepMania
|
||||||
SOURCE="$(InputPath)"
|
SOURCE="$(InputPath)"
|
||||||
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
||||||
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
|
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
|
||||||
# End Special Build Tool
|
# End Special Build Tool
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user