[ danijela kukic @ 12.08.2010. 09:01 ] @
Bok!
Ovako zelim da mi se u mojem openGL prozoru(u kojem ucitavam neki video) na pomak misa nesto dogodi, problem je slijedeci:

imam jednu fju OnTwo(point) koja mi provjerava da li je moja koordinata misa tamo di zelim da bude. Dakle, ako napisem iduci kod..ono radi bez problema:




Code:
void COpenGLWnd::OnMouseMove(UNIT nFlags, Cpoint point){
    if(nFlags){
       if (OnTwo(point))MessageBox("hello",NULL,MB_OK);
    }
}




znaci da radi na klik misa..neka fora s tim nFlagsom da to radi...
No ako napisem iduci kod javljaju mi se bugovi unutar moje OnTwo fje.




Code:
void COpenGLWnd::OnMouseMove(UNIT nFlags, Cpoint point){
    if (OnTwo(point))MessageBox("hello",NULL,MB_OK);

}


Dakle ja hocu da to isto radi na pomak misa unutar odredjenog podrucja koje je odredjeno unutar fje OnTwo(point)..

Bug koji mi se javlja je "unhandled exception...."
zuta strelica je unutar OnTwo fje na slijedecem dijelu:


Code:
float image_width = vt2->gl_image->width;



kod vt2->gl_image imam upitnik na nSize =?? ID=?? nChannels = ???

image_width je sirina slike i pretpostavljam da mi do toga dolazi jer kada krenem ucitati sliku..odem na file-open slika jos nije niti ucitana a pomak misa se dogodio.
ima li ko kakvu ideju kako da to rijesim? hvala
[ glorius @ 21.08.2010. 15:09 ] @
nFlags, koliko sam razumeo iz tvog objasnjenja problema, sadrzi informaciju da li je pointer na image (gl_image) inicijalizovan tj. da li je slika ucitana ili ne. Znaci, pri svakom pokretu misa ti koristis taj pointer koji pre ucitavanja slike nije inicijalizovan.

Problem mozes resiti na dva nacina.

1. Ucitas sliku, postavis nFlags na true i koristis prvu funkciju.

2. U konstruktoru klase koja sadrzi gl_image, gl_image postavis na null i u funkciji OnTwo() stavis:

Code:

if(vt2->gl_image != null)
{

}


i koristis drugu funkciju.

Ne znam sta je vt2 promenljiva. Ako je i ona bila neinicializovana pre ucitavanja slike moras i za nju proveriti da li je null. ( Dobra praksa je da sve pointere uvek postavis na null u konstruktoru ).

U tom slucaju:

Code:


if(vt2 != null)
{
    if(vt2->gl_image != null)
   {

   }
}