dx9
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;
}
/*
调用
GenerateTexture(d3dDecice, &am