Zdravím lidi, jsem tu zas. Předně bych chtěl podotknout, že už dělám pokroky v odhalování chyb a bugů v kódu, jen abyste si nemysleli, že se sem obracím s každou kravinou a pak mi nechtěli odepisovat :)
Začnu stručně. Pustil jsem se do OpenGL, v NeHe tutoriálech se používala knihovna glaux a někde sem se dočet že už je zastaralá, tak sem použil k nahrání textury SDL_Image (a povedlo se bez problémů).
Při použití glaux v tutoriálu ale uvolnovali pamět pomocí
if (TextureImage[0])// Pokud obrázek existuje
{
if (TextureImage[0]->data)// Pokud existují data obrázku
{
free(TextureImage[0]->data);// Uvolní paměť obrázku
}
free(TextureImage[0]);// Uvolní strukturu obrázku
}
Což mám za to já nemůžu použít, jelikož sem nahrál obrázek pomocí SDL_image. To nahrává obrázky do SDL_Surface (stále píšu moje domněnky, opravte mě pokud se pletu). Tak sem měl za to, že to musím logicky uvolnit pomocí SDL_FreeSurface().
Jenže kdyz tam dám (dodávám i nahrání obrázku pro ukázku)
SDL_Surface *IMG_Load ( char *Filename ) // Nahraje bitmapu
{
FILE *File=NULL;// Ukazatel na soubor
if (!Filename)// Byla předána cesta k souboru?
{
return NULL;// Pokud ne, konec
}
File=fopen(Filename,"r");// Otevření pro čtení
if (File)// Existuje soubor?
{
fclose(File);// Zavře ho
return IMG_Load(Filename);// Načte bitmapu a vrátí na ni ukazatel
}
return NULL;// Při chybě vrátíme NULL
}
int LoadGLTextures()// Loading bitmapy a konverze na texturu
{
int Status=FALSE;// Indikuje chyby
SDL_Surface *TextureImage[2];
memset(TextureImage,0,sizeof(void *)*1);// Vynuluje paměť
if (TextureImage[0]=IMG_Load("Data/flower.jpg"))// Nahraje bitmapu a kontroluje vzniklé chyby
{
Status=TRUE;// Vše je bez problémů
... //pokračování nějakého kódu
if (TextureImage[0])// Pokud obrázek existuje
{
SDL_FreeSurface(TextureImage[0]);// Uvolní strukturu obrázku
}
Tak mi to hlásí toto:
error LNK2001: unresolved external symbol _SDL_FreeSurface
1>C:\DATA\C++\OpenGL\OpenGL_2\Debug\OpenGL_2.exe : fatal error LNK1120: 1 unresolved externals
Řešil sem to tak, že sem tu paměť neuvolnoval ale vím že se to nemá tak se ptám. Je tam někde zakopanej pes a nemůžu na to přijít :(
Díky za reakce