DirectX 8 wypros
8 отговора
213 прегледа
DirectX 8 wypros
problema mi e sledniq kogato se zaredi edna tekstura tq se zarevda w interface i sled towa we4e nqmam dotyp do neq interesuwame kak da q promenq sled towa i po to4no ima li na4in da q wzema kato bitowa karta ili ne6to ot sorta t.e. da moga da q promenqma swobodno
Re: DirectX 8 wypros
wizh LockRect, UnlockRect i UpdateTexture - obache ima znachenie kak si alokiral texturata - kude i dali e manageble. Sushto trjabwa da imash predvid che ako imash mipmapi - trjabwa sam da si gi opravish (ako si gi vkljuchil de).
tirulirutatuutuu
tirulirutatuutuu
Mi az Polzvam Tova - dali e greshno ???
// Mi az Polzvam Tova - dali e greshno ???
// Znachi mnogo mnogo ne me biva .. shto ne zemete da me opluete i da
// mi oprawite koda.. :))
// Osobeno se weselete na .. delete [] xxxxx .. i podobni
int CArenaMap::LoadArenaTexture( char *FileName)
{
CDIBitmap *tmpBMP;
BYTE *DIBR5G6B5 =NULL;
int textureW;
int textureH;
tmpBMP = new (CDIBitmap);
//LOAD TEXTURE
tmpBMP->BitmapLoad( FileName);
textureW = tmpBMP->l_width;
textureH = tmpBMP->l_height;
//CONVERT TEXTURE
Make_R5G6B5_from_24dib(textureW , textureH , tmpBMP->picture, DIBR5G6B5);
if (KwadCounter >= MaxKwadTextures) // Razreshenie za Nowa Textura
return -1; // Ako njama razreshenie -> EXIT
if ( D3DXCreateTexture( dxDevice, textureW, textureH,
0, 0,
D3DFMT_R5G6B5, D3DPOOL_MANAGED, &KwadTexture[KwadCounter]) != D3D_OK)
return E_FAIL;
D3DLOCKED_RECT* pLockedRect;
BYTE* surface = NULL;
int surfsize = 0;
RECT ReCi;
ReCi.top = 0;
ReCi.left = 0;
ReCi.right = textureW -1;
ReCi.bottom = textureH -1;
pLockedRect = new(D3DLOCKED_RECT);
if ( KwadTexture[ KwadCounter]->LockRect( 0, pLockedRect, 0, 0 ) == D3D_OK)
{
INT pitch = (INT)pLockedRect->Pitch;
surface = (BYTE*)pLockedRect->pBits;
surfsize = (INT)pitch*textureH;
memcpy((BYTE*)surface, (BYTE*)DIBR5G6B5, surfsize );
KwadTexture[KwadCounter]->UnlockRect( 0 );
}
delete []pLockedRect;
delete []DIBR5G6B5;
delete tmpBMP;
KwadCounter++;
return 0;
}
// Znachi mnogo mnogo ne me biva .. shto ne zemete da me opluete i da
// mi oprawite koda.. :))
// Osobeno se weselete na .. delete [] xxxxx .. i podobni
int CArenaMap::LoadArenaTexture( char *FileName)
{
CDIBitmap *tmpBMP;
BYTE *DIBR5G6B5 =NULL;
int textureW;
int textureH;
tmpBMP = new (CDIBitmap);
//LOAD TEXTURE
tmpBMP->BitmapLoad( FileName);
textureW = tmpBMP->l_width;
textureH = tmpBMP->l_height;
//CONVERT TEXTURE
Make_R5G6B5_from_24dib(textureW , textureH , tmpBMP->picture, DIBR5G6B5);
if (KwadCounter >= MaxKwadTextures) // Razreshenie za Nowa Textura
return -1; // Ako njama razreshenie -> EXIT
if ( D3DXCreateTexture( dxDevice, textureW, textureH,
0, 0,
D3DFMT_R5G6B5, D3DPOOL_MANAGED, &KwadTexture[KwadCounter]) != D3D_OK)
return E_FAIL;
D3DLOCKED_RECT* pLockedRect;
BYTE* surface = NULL;
int surfsize = 0;
RECT ReCi;
ReCi.top = 0;
ReCi.left = 0;
ReCi.right = textureW -1;
ReCi.bottom = textureH -1;
pLockedRect = new(D3DLOCKED_RECT);
if ( KwadTexture[ KwadCounter]->LockRect( 0, pLockedRect, 0, 0 ) == D3D_OK)
{
INT pitch = (INT)pLockedRect->Pitch;
surface = (BYTE*)pLockedRect->pBits;
surfsize = (INT)pitch*textureH;
memcpy((BYTE*)surface, (BYTE*)DIBR5G6B5, surfsize );
KwadTexture[KwadCounter]->UnlockRect( 0 );
}
delete []pLockedRect;
delete []DIBR5G6B5;
delete tmpBMP;
KwadCounter++;
return 0;
}
Re: Mi az Polzvam Tova.. ..
Leko sam propusnal njakoi raboti..
LPDIRECT3DTEXTURE8* KwadTexture;
...
...
LPDIRECT3DTEXTURE8* KwadTexture;
...
...
Re: DirectX 8 wypros
ako teksturite ti sa create-nati kato D3DPOOL_MANAGED mozhesh da lock-wash rectowe s LockRect() - toi ti wryshta directno ukazatel kym pametta (tuj razbira se e system memory kopieto na teksturata, ne e wyw video mem-a). Wnimawai da ne lockwash po-golqm rect otkolkoto ti trqbwa (primerno cqlata tekstura :) shot posle dx-a go kopira celiq rect ot system wyw video memory-to
teksturi koito si create-nal kato D3DPOOL_DEFAULT (demek wyw video/agp mem) mozhesh da promenqsh samo prez UpdateTexture(), za takiwa teksturi shte trqbwa da si dyrzhish D3DPOOL_SYSTEMMEM kopie za da lockwash i promenqsh nego, a sled tuj s UpdateTexture() da prashtash promenite wyrhu videoto...obache ne znam kolko ima smisyl da praish tyj, mozhe da probwash i taka no mi se chini che texturi deto mnogo she gi promenqsh nai-dobre da si gi prawish kato D3DPOOL_MANAGED...w kraq na kraishtata bi trqbwalo da se izwyrshwa syshtata operaciq samo che wytreshno...
teksturi koito si create-nal kato D3DPOOL_DEFAULT (demek wyw video/agp mem) mozhesh da promenqsh samo prez UpdateTexture(), za takiwa teksturi shte trqbwa da si dyrzhish D3DPOOL_SYSTEMMEM kopie za da lockwash i promenqsh nego, a sled tuj s UpdateTexture() da prashtash promenite wyrhu videoto...obache ne znam kolko ima smisyl da praish tyj, mozhe da probwash i taka no mi se chini che texturi deto mnogo she gi promenqsh nai-dobre da si gi prawish kato D3DPOOL_MANAGED...w kraq na kraishtata bi trqbwalo da se izwyrshwa syshtata operaciq samo che wytreshno...
Re: Mi az Polzvam Tova - dali e greshno ???
mi na wqrno mqza....
obache s ei tuj
pLockedRect = new(D3DLOCKED_RECT);
naprawo me tryshna w zemqta
D3DLOCKED_RECT locked_rect;
...->LockRect( 0, &locked_rect, 0, 0 );
ei taka izglezhda po-chitawo :)
obache s ei tuj
pLockedRect = new(D3DLOCKED_RECT);
naprawo me tryshna w zemqta
D3DLOCKED_RECT locked_rect;
...->LockRect( 0, &locked_rect, 0, 0 );
ei taka izglezhda po-chitawo :)
Re: DirectX 8 wypros
Аве гледам ги разбираш, я кажи това DirektX откъде мога да си го купя,а? На женския пазар нямаше, днес гледах...
Re: DirectX 8 wypros
abe Zemedelecyt gi razdawa, powechko mu ostanali ot minalogodishnata rekolta...trebe ot nego edno sa si poiskash :P
Re: DirectX 8 wypros
ami razdawa - dvoino po-skupo gi prodava ot normalnoto - wuobshte ne hodi ot nego da kupuwash - po dobre wish Skotowydetza
tirulirutatuutuu
tirulirutatuutuu