Skip to content

Commit 064028f

Browse files
committed
Implement TSpriteShaderHAL::Invalidate()
1 parent 9ba4fb7 commit 064028f

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

Toshi/Plugins/Source/PGUIRenderer/PGUITRDisplayContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ void PGUITRDisplayContext::PopAdditiveColour()
7979
// $PGUIRenderer: FUNCTION 100012e0
8080
void PGUITRDisplayContext::BeginScene()
8181
{
82-
m_pShader->BeginMeshGeneration();
8382
m_pShader->SetMaterial(TNULL);
83+
m_pShader->BeginMeshGeneration();
8484
}
8585

8686
// $PGUIRenderer: FUNCTION 10005a50

Toshi/Shaders/TSpriteShader/Include/D3D/TSpriteShaderD3D.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ class TSPRITESHADERD3D_EXPORTS TSpriteShaderHAL : public TSpriteShader
7676
virtual void Flush();
7777
virtual void Render(TRenderPacket *a_pRenderPacket);
7878
virtual TBOOL Validate();
79+
virtual void Invalidate();
7980
virtual void SetMaterial(TSpriteMaterial *a_pMaterial);
8081
virtual void BeginMeshGeneration();
8182
virtual void EndMeshGeneration();

Toshi/Shaders/TSpriteShader/Source/D3D/TSpriteShaderD3D.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ TBOOL TSpriteShaderHAL::OnResetDevice()
152152
}
153153
m_pVertexPool = static_cast<TVertexPoolResource *>(pVertexFactory->CreatePoolResource(m_usMaxStaticVertices, uiFlags));
154154
// Same with IndexPool
155-
TIMPLEMENT();
155+
TIMPLEMENT("Same with IndexPool");
156156
for (auto it = m_aMeshes.Begin(); it != m_aMeshes.End(); it++) {
157157
it->Get()->SetVertexPool(m_pVertexPool);
158158
// Same with IndexPool
@@ -201,8 +201,6 @@ void TSpriteShaderHAL::Render(TRenderPacket *a_pRenderPacket)
201201
if (pMesh->IsDying()) {
202202
return;
203203
}
204-
TIMPLEMENT();
205-
return;
206204
pMesh->GetMaterial()->PreRender();
207205
if (m_bVertexShaderSuccess) {
208206
D3DXVECTOR4 vec4(1.0f, 1.0f, 1.0f, 1.0f);
@@ -273,6 +271,18 @@ TBOOL TSpriteShaderHAL::Validate()
273271
return TResource::Validate();
274272
}
275273

274+
void TSpriteShaderHAL::Invalidate()
275+
{
276+
if (!TResource::IsValid()) {
277+
return;
278+
}
279+
if (m_bVertexShaderSuccess) {
280+
GetRenderer()->GetD3DDevice()->DeleteVertexShader(m_dwVertexShaderHandle);
281+
}
282+
m_dwVertexShaderHandle = INVALIDSHADERHANDLE;
283+
TResource::Invalidate();
284+
}
285+
276286
void TSpriteShaderHAL::SetMaterial(TSpriteMaterial *a_pMaterial)
277287
{
278288
TSpriteShader::SetMaterial(a_pMaterial);

0 commit comments

Comments
 (0)