DirectX 8 wypros

8 отговора 213 прегледа
#1

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

Отговор
в отговор на Spyder #2

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
Отговор
в отговор на Spyder #3

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

Отговор
в отговор на Draka #4

Re: Mi az Polzvam Tova.. ..

Leko sam propusnal njakoi raboti..

LPDIRECT3DTEXTURE8* KwadTexture;
...
...

Отговор
в отговор на Spyder #5

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...

Отговор
в отговор на Draka #6

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

Отговор
в отговор на Mist #7

Re: DirectX 8 wypros

Аве гледам ги разбираш, я кажи това DirektX откъде мога да си го купя,а? На женския пазар нямаше, днес гледах...

Отговор
в отговор на EvilProgrammer #8

Re: DirectX 8 wypros

abe Zemedelecyt gi razdawa, powechko mu ostanali ot minalogodishnata rekolta...trebe ot nego edno sa si poiskash :P

Отговор
в отговор на Mist #9

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
Отговор