Problem mit CreateTexture() !!!
-
Hi all,
Irgentwie kommt hier eine komische Sache auf:
Ich erstell eine Texture und setzt danach alle Pixel auf Weiß und verwende die Texture dann. Das Funktioniert soweit. Aber wenn ich als POOL DEFAULT angeben kann er mir die Texture nicht loggen, woran kann das liegen ??
Code mit D3DPOOL_DEFAULT:
IDirect3DTexture9 *pTexture = NULL; hr = Video.GetDevice()->CreateTexture( 300, 300, 1, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &pTexture, 0 ); if( FAILED( hr ) ) { MessageBox(0, "Texture konnte nicht erstellt werden", "", MB_OK ); Video.Release(); return 0; } D3DLOCKED_RECT LockedRect; hr = pTexture->LockRect( 0, &LockedRect, NULL, 0 ); if( FAILED( hr ) ) { MessageBox(0, "Texture konnte nicht geloggt werden.", "", MB_OK ); } DWORD *pBits = (DWORD*)LockedRect.pBits; for( int y=0; y < 100; y++ ) { for( int x=0; x < 100; x++, pBits++ ) { (*pBits) = D3DCOLOR_ARGB( 255, 255, 0, 0 ); } } pTexture->UnlockRect(0);
Vielen Dank für jegliche Hilfen.
Mfg
-
Sry, dass ist jetzt die Version mit D3DPOOL_MANAGED, was funktioniert.
D3DPOOL_DEFAULT funktioniert nicht.
Cu
-
steht in der d3d doc, pool und usage richtig angeben, dann müßte mit dem richtigen Lock auch alles klappen, die drei sachen kansnte ja ma eben selbst nachlesen denk ich mir *zufaulsei*
rapso->greets();
-
Thx