Miten voin syöttää DirectX9:n tekstuurille pikselin kohtaan x, y (tai u, v)jonka väri on c? Miten ylipäätänsä pystyy muokkaamaan tekstuuria lataamatta uutta kuvaa tiedostosta?
En tiedä, mutta kerronpa kuitenkin. Lisätietoja MSDN:stä, VC++:n helpistä ja DX90SDK:n Helpistä.
IDirect3DTexture9 *Tekstuuri;
IDirect3DSurface9 *Pinta;
HDC hdc;
D3DSURFACE_DESC Desc;
//================================
Tekstuuri->GetSurfaceLevel(0, &Pinta); // Haetaan tekstuurin 0. taso
Pinta->GetDC(&hdc); // Haetaan HDC
SetPixel(hdc, X, Y, Color); // GDI:n pikselinpiirto
Pinta->ReleaseDC(hdc); // Muistetaan vapauttaa HDC
//================================
// Tällä voi luoda tekstuurin
HRESULT WINAPI D3DXCreateTexture(
LPDIRECT3DDEVICE9 pDevice,
UINT Width,
UINT Height,
UINT MipLevels,
DWORD Usage,
D3DFORMAT Format,
D3DPOOL Pool,
LPDIRECT3DTEXTURE9 *ppTexture
);
// Tähän kannattaa ehkä tutustua, ettei tarvitse käyttää GDI:n SetPixeliä ja HDC-systeemeitä:
HRESULT IDirect3DDevice9::SetRenderTarget(
DWORD RenderTargetIndex,
IDirect3DSurface9 *pRenderTarget
);Aihe on jo aika vanha, joten et voi enää vastata siihen.