|
|

楼主 |
发表于 2007-7-20 20:31:00
|
显示全部楼层
Re:我想改?某一piexel的?色,但是?色是成功的改了,但是?s?]更新
我的程式?如下,我?⒆笊辖堑囊恍?K???T成?色,可是?面上的?]?(可是我如果??urface?Υ娉?D?n,?t?D?n的?有?色的?^?K)
我的m_surface->LockRect的flag???,??佑?????
感?是更新的???
void CAppDrawAdv: ivideGrid()
{
m_surface=NULL;
D3DDISPLAYMODE display;
m_pD3DDevice->GetDisplayMode(0,&display);
m_pD3DDevice->CreateOffscreenPlainSurface(display.Width,display.Height,D3DFMT_A8R8G8B8,D3DPOOL_DEFAULT,&m_surface,NULL);
m_pD3DDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&m_surface);
D3DXSaveSurfaceToFile(L"file.bmp",D3DXIFF_BMP,m_surface,NULL,NULL);
CSize GridSize=m_pMainFrame->m_pView->m_GridSetBar.GetGridSize();
D3DLOCKED_RECT lrect;
m_surface->LockRect(&lrect,NULL,0 );
for (int y=0;y<GridSize.cy;y++)
{
for (int x=0;x<GridSize.cy;x++)
{
//int x,y;
//x=point.x;
//y=point.y;
DWORD* p=(DWORD*)(lrect.pBits);
p[y*(lrect.Pitch/sizeof(DWORD))+x]=RGB(255,0,0);
DWORD dwColor = ((DWORD*)lrect.pBits)[y*(lrect.Pitch/sizeof(DWORD))+x];//Y*Width+X
USHORT r=GetRValue(dwColor);
USHORT g=GetGValue(dwColor);
USHORT b=GetBValue(dwColor);
}
}
m_surface->UnlockRect();
POINT p;
p.x=0;
p.y=0;
m_pD3DDevice->UpdateSurface(m_surface,NULL,m_surface,&p); |
|