Zaslal: if.then
Popis: Část kódu z NeHe, lekce 6. Dev-cpp s MinGW má problémy s funkcemi free().
Jazyk: C++
Vloženo: 26.5.2009, 07:18
Stáhnout jako soubor
AUX_RGBImageRec *LoadBMP(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 auxDIBImageLoad(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; AUX_RGBImageRec *TextureImage[1]; // Ukládá bitmapu memset(TextureImage,0,sizeof(void *)*1);// Vynuluje paměť if (TextureImage[0]=LoadBMP("Textures/Crate.bmp")) // Nahraje bitmapu a kontroluje vzniklé chyby { Status=TRUE; // Vše je bez problémů glGenTextures(1, &texture[0]);// Generuje texturu glBindTexture(GL_TEXTURE_2D, texture[0]);// Typické vytváření textury z bitmapy glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);// Vlastní vytváření textury glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);// Filtrování při zmenšení glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);// Filtrování při zvětšení } if (TextureImage[0])// Pokud obrázek existuje { if (TextureImage[0]->data)// Pokud existují data obrázku { free(TextureImage[0]->data);// Uvolní paměť obrázku TextureImage[0]->data = NULL; } free(TextureImage[0]);// Uvolní strukturu obrázku TextureImage[0] = NULL; } return Status;// Oznámí případné chyby } int InitGL(GLvoid) // All Setup For OpenGL Goes Here { if (!LoadGLTextures())// Nahraje texturu { return FALSE; } glEnable(GL_TEXTURE_2D); // Povolení textur glShadeModel(GL_SMOOTH); // Enable Smooth Shading glClearColor(0.0f,0.0f, 0.0f, 0.0f); // Black Background glClearDepth(1.0f); // Depth Buffer Setup glEnable(GL_DEPTH_TEST); // Enables Depth Testing glDepthFunc(GL_LEQUAL); // The Type Of Depth Testing To Do glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really Nice Perspective Calculations return TRUE; // Initialization Went OK }
© 2006 Michal Tuláček, Syntax Highlight - GeSHi (thx bref)