its nothing special.
To let that work you need to place that in your DIP
Colours must in endscene and you must add generate texture function.
Here you ahve the generatetexture function
Code:
HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32)
{
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex, NULL)) )
return E_FAIL;
WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
|(WORD)(((colour32>>20)&0xF)<<8)
|(WORD)(((colour32>>12)&0xF)<<4)
|(WORD)(((colour32>>4)&0xF)<<0);
D3DLOCKED_RECT d3dlr;
(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
WORD *pDst16 = (WORD*)d3dlr.pBits;
for(int xy=0; xy < 8*8; xy++)
*pDst16++ = colour16;
(*ppD3Dtex)->UnlockRect(0);
return S_OK;
}
HRESULT WINAPI myEndScene (PDEVICE pDevice)
{
_asm NOP;
HRESULT hRet = pEndScene (pDevice);
if(Color)
{
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255,255,0 ,0 ));
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255,255,255,0 ));
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255,0 ,255,0 ));
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255,0 ,0 ,255));
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255,102,0 ,153));
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255,255,20 ,147));
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255,255,165,0 ));
GenerateTexture(pDevice, &Black, D3DCOLOR_ARGB (255,0 ,0 ,0 ));
GenerateTexture(pDevice, &White, D3DCOLOR_ARGB (255,255,255,255));
Color=false;
}