|
|
发表于 2007-6-1 21:40:00
|
显示全部楼层
Re:如何用鼠标画图?
我帮你写个类似SetPixel用法的函数,传入一张贴图,贴图要A8R8G8B8格式,传入坐标和颜色
HRESULT SetPixelToTexture( LPDIRECT3DTEXTURE9 pTex , int x , int y , DWORD dwColor )
{
HRESULT hr;
D3DSURFACE_DESC desc;
ZeroMemory( &desc , sizeof( D3DSURFACE_DESC ) );
if( pTex )
{
LPDIRECT3DSURFACE9 pSur;
pTex->GetSurfaceLevel ( 0 , &pSur );
pSur->GetDesc ( &desc );
pSur->Release ();
}
D3DLOCKED_RECT lock;
hr = pTex->LockRect ( 0 , &lock , 0 , 0 );
if( FAILED( hr ) )return hr;
DWORD *pColor = (DWORD*)lock.pBits ;
pColor[ y*desc.Width+x ] = dwColor;
pTex->UnlockRect ( 0 );
return S_OK;
}
如果想要透明色就传0,否则需要注意颜色是带Alpha的,比如红色要传0xFFFF0000,
至于画线想要只传起点和终点,就要自己写了.
有问题可以去群里找我
------------------------------------------------
游戏开发程序交流QQ群:40280598 |
|