


void DrawBox(IDirect3DDevice8 *pDevice, int x, int y, int w, int h, D3DCOLOR col)
{
struct QuadVertex {
float x,y,z,rhw;
DWORD dwColor;
};
IDirect3DVertexBuffer8 *pVertexBuffer = NULL;
QuadVertex qV[4];
BYTE *pVertexData = NULL;
if (pDevice->CreateVertexBuffer((4*sizeof(QuadVertex)),(D3DUSAGE_WRITEONLY|D3DUSAGE_DYNAMIC),(D3DFVF_XYZRHW|D3DFVF_DIFFUSE),D3DPOOL_DEFAULT,&pVertexBuffer)<0) return;
pDevice->SetRenderState(D3DRS_ZENABLE , FALSE);
pDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
pDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
pVertexBuffer->Lock(0,0,&pVertexData,D3DLOCK_NOSYSLOCK | D3DLOCK_DISCARD);
if(pVertexData)
{
qV[0].dwColor = qV[1].dwColor = qV[2].dwColor = qV[3].dwColor = col;
qV[0].z = qV[1].z = qV[2].z = qV[3].z = 0.0f;
qV[0].rhw = qV[1].rhw = qV[2].rhw = qV[3].rhw = 0.0f;
qV[0].x = (float)x;
qV[0].y = (float)(y + h);
qV[1].x = (float)x;
qV[1].y = (float)y;
qV[2].x = (float)(x + w);
qV[2].y = (float)(y + h);
qV[3].x = (float)(x + w);
qV[3].y = (float)y;
memcpy(pVertexData,qV,sizeof(QuadVertex)*4);
pVertexBuffer->Unlock();
pVertexData = NULL;
pDevice->SetStreamSource(0,pVertexBuffer, sizeof(QuadVertex));
pDevice->SetVertexShader( D3DFVF_XYZRHW | D3DFVF_DIFFUSE );
pDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
}
if (pVertexBuffer) {
pVertexBuffer->Release();
pVertexBuffer=NULL;
}
pDevice->SetRenderState(D3DRS_LIGHTING, true);
}
void DrawCursor1(int x, int y, DWORD Color1, DWORD Color2, LPDIRECT3DDEVICE8 pDevice )
{
//Credits to Kernal.Olly and A
DrawBox(pDevice, x, y, 1, 1, Color1 );
DrawBox(pDevice, x, y, 1, 12, Color1 );
DrawBox(pDevice, x+1, y+11, 1, 1, Color1 );
DrawBox(pDevice, x+2, y+10, 1, 1, Color1 );
DrawBox(pDevice, x+3, y+9, 1, 1, Color1 );
DrawBox(pDevice, x+4, y+10, 1, 2, Color1 );
DrawBox(pDevice, x+5, y+12, 1, 2, Color1 );
DrawBox(pDevice, x+6, y+14, 2, 1, Color1 );
DrawBox(pDevice, x+7, y+10, 1, 2, Color1 );
DrawBox(pDevice, x+6, y+9 , 1, 1, Color1 );
DrawBox(pDevice, x+8, y+12, 1, 2, Color1 );
DrawBox(pDevice, x+1, y, 1, 1, Color1 );
DrawBox(pDevice, x+2, y+1, 1, 1, Color1 );
DrawBox(pDevice, x+3, y+2, 1, 1, Color1 );
DrawBox(pDevice, x+4, y+3, 1, 1, Color1 );
DrawBox(pDevice, x+5, y+4, 1, 1, Color1 );
DrawBox(pDevice, x+6, y+5, 1, 1, Color1 );
DrawBox(pDevice, x+7, y+6, 1, 1, Color1 );
DrawBox(pDevice, x+8, y+7, 1, 1, Color1 );
DrawBox(pDevice, x+8, y+8, 1, 1, Color1 );
DrawBox(pDevice, x+7, y+8, 1, 1, Color1 );
DrawBox(pDevice, x+6, y+8, 1, 1, Color1 );
DrawBox(pDevice, x+1, y+1, 1, 1, Color2 );
DrawBox(pDevice, x+1, y+2, 2, 1, Color2 );
DrawBox(pDevice, x+1, y+3, 3, 1, Color2 );
DrawBox(pDevice, x+1, y+4, 4, 1, Color2 );
DrawBox(pDevice, x+1, y+5, 5, 1, Color2 );
DrawBox(pDevice, x+1, y+6, 6, 1, Color2 );
DrawBox(pDevice, x+1, y+7, 7, 1, Color2 );
DrawBox(pDevice, x+1, y+8, 5, 1, Color2 );
DrawBox(pDevice, x+1, y+9, 2, 1, Color2 );
DrawBox(pDevice, x+1, y+10, 1, 1, Color2 );
DrawBox(pDevice, x+4, y+9, 2, 1, Color2 );
DrawBox(pDevice, x+5, y+10, 2, 2, Color2 );
DrawBox(pDevice, x+6, y+12, 2, 2, Color2 );
}