|
void CRender::InitData()
{
D3DXCreateTexture(m_pD3DDevice,1024, 768, D3DX_DEFAULT, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &m_pTexture);
m_pImgData = new unsigned char[1024*768*4];
// 自定义的1024*768的红色像素数据
for (int i=0; i<1024*768*4; )
{
m_pImgData[i++] = 255; // alpha
m_pImgData[i++] = 255; // red
m_pImgData[i++] = 0; // green
m_pImgData[i++] = 0; // blue
}
HRESULT hr = D3DXCreateTexture(m_pD3DDevice,1024, 768, D3DX_DEFAULT, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &m_pTexture);
if (FAILED(hr)) return;
D3DLOCKED_RECT lrDst;
m_pTexture->LockRect(0, &lrDst, 0, 0);
lrDst.pBits = m_pImgData;
m_pTexture->UnlockRect(0);
}
// 负责渲染的两个关键代码
m_pD3DDevice->SetTexture(0, m_pTexture);
m_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 2, &objData, sizeof(SVertex2D));
我这个像素的写入方式不对么??
怎么回事,为什么渲染不出红色来?? |
|