Code:
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseIndex,
UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCount)
{
LPDIRECT3DVERTEXBUFFER9 Stream_Data;
UINT Offset,iStride;
if(pDevice->GetStreamSource(0, &Stream_Data, &Offset, &iStride) == D3D_OK)
Stream_Data->Release();
////////////////Chams Start////////////////////////////////////////////////////////
if (chams)
{
if (iStride == 40)
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0, Red);
pDrawIndexedPrimitive(pDevice, Type, BaseIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0, Blue );
}
if (iStride == 32)
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0, Red);
pDrawIndexedPrimitive(pDevice, Type, BaseIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0, Blue );
}
if (iStride == 44)
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
pDevice->SetTexture(0, Red);
pDrawIndexedPrimitive(pDevice, Type, BaseIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount);
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
pDevice->SetTexture(0, Blue );
}
}
//------------------- Naked Chams Start------------------------------------------
{
if(naked)
{
if(iStride==44)
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
}
if(iStride==40)
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
}
if(iStride==32)
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
}
}
//-------------------Semi- wireframe Start------------------------------------
if (swire)
{
if (iStride==44)
{
pDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_WIREFRAME );
}
if (iStride==40)
{
pDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_WIREFRAME );
}
if (iStride==32)
{
pDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_WIREFRAME );
}
}
//-------------------World- wireframe Start------------------------------------
if (fullwire)
{
if (iStride==44)
{
pDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_WIREFRAME );
}
if (iStride==40)
{
pDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_WIREFRAME );
}
if (iStride==32)
{
pDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_WIREFRAME );
}
if (iStride==28)
{
pDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_WIREFRAME );
}
if (iStride==16)
{
pDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_WIREFRAME );
}
}
}
/////////////////////////////////////////////////
if(fbright)
{
if(iStride==44)
{
pDevice->SetRenderState(D3DRS_LIGHTING, false);
pDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_ARGB(255,255,255,255));
}
if(iStride==40)
{
pDevice->SetRenderState(D3DRS_LIGHTING, false);
pDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_ARGB(255,255,255,255));
}
if(iStride==32)
{
pDevice->SetRenderState(D3DRS_LIGHTING, false);
pDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_ARGB(255,255,255,255));
}
}
if(asus)
{
if(iStride==28)
{
pDevice->SetRenderState( D3DRS_SRCBLEND, 3 );
pDevice->SetRenderState( D3DRS_DESTBLEND, 4 );
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, true );
}
if(iStride==44)
{
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, true );
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
}
if(iStride==40)
{
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, true );
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
}
if(iStride==32)
{
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, true );
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
}
}
if(xray)
{
if(iStride==28)
{
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
}
}
if(nofog)
{
pDevice->SetRenderState(D3DRS_FOGENABLE, false);
}
return pDrawIndexedPrimitive(pDevice, Type, BaseIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount);
}