Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: [DX9]Tekstuuriin pikseleitä

jcd3nton [01.01.2005 12:57:28]

#

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?

Metabolix [01.01.2005 20:22:24]

#

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
);

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta