.[ ČeskéHry.cz ].

Laboratoř ČeskýchHer.cz - PasteBin

Vložit nový kód

ČeskéHry.cz - KOMUNITA HERNÍCH VÝVOJÁŘŮ

  1. sjsrt
    6 hod
  2. 500GB C-P Teeen
    8 hod
  3. 500GB C-P Teeen
    8 hod
  4. 500GB C-P Teeen
    8 hod
  5. 500GB C-P Teeen
    8 hod
  6. 500GB C-P Teeen
    8 hod
  7. 500GB C-P Teeen
    8 hod
  8. 500GB C-P Teeen
    8 hod
  9. 500GB C-P Teeen
    8 hod
  10. 500GB C-P Teeen
    8 hod
Link: http://nopaste.ceske-hry.cz/subdom/nopaste222699
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
  1. AUX_RGBImageRec *LoadBMP(char *Filename) // Nahraje bitmapu
  2. {
  3. FILE *File=NULL; // Ukazatel na soubor
  4. if (!Filename) // Byla předána cesta k souboru?
  5. {
  6. return NULL; // Pokud ne, konec
  7. }
  8. File=fopen(Filename,"r"); // Otevření pro čtení
  9. if (File) // Existuje soubor?
  10. {
  11. fclose(File); // Zavře ho
  12. return auxDIBImageLoad(Filename); // Načte bitmapu a vrátí na ni ukazatel
  13. }
  14. return NULL; // Při chybě vrátíme NULL
  15.  
  16. }
  17.  
  18. int LoadGLTextures() // Loading bitmapy a konverze na texturu
  19. {
  20. int Status=FALSE;
  21. AUX_RGBImageRec *TextureImage[1]; // Ukládá bitmapu
  22. memset(TextureImage,0,sizeof(void *)*1);// Vynuluje paměť
  23. if (TextureImage[0]=LoadBMP("Textures/Crate.bmp")) // Nahraje bitmapu a kontroluje vzniklé chyby
  24. {
  25. Status=TRUE; // Vše je bez problémů
  26. glGenTextures(1, &texture[0]);// Generuje texturu
  27. glBindTexture(GL_TEXTURE_2D, texture[0]);// Typické vytváření textury z bitmapy
  28. 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
  29. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);// Filtrování při zmenšení
  30. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);// Filtrování při zvětšení
  31. }
  32. if (TextureImage[0])// Pokud obrázek existuje
  33. {
  34. if (TextureImage[0]->data)// Pokud existují data obrázku
  35. {
  36. free(TextureImage[0]->data);// Uvolní paměť obrázku
  37. TextureImage[0]->data = NULL;
  38. }
  39. free(TextureImage[0]);// Uvolní strukturu obrázku
  40. TextureImage[0] = NULL;
  41. }
  42. return Status;// Oznámí případné chyby
  43. }
  44.  
  45. int InitGL(GLvoid) // All Setup For OpenGL Goes Here
  46. {
  47. if (!LoadGLTextures())// Nahraje texturu
  48. {
  49. return FALSE;
  50. }
  51. glEnable(GL_TEXTURE_2D); // Povolení textur
  52. glShadeModel(GL_SMOOTH); // Enable Smooth Shading
  53. glClearColor(0.0f,0.0f, 0.0f, 0.0f); // Black Background
  54. glClearDepth(1.0f); // Depth Buffer Setup
  55. glEnable(GL_DEPTH_TEST); // Enables Depth Testing
  56. glDepthFunc(GL_LEQUAL); // The Type Of Depth Testing To Do
  57. glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really Nice Perspective Calculations
  58. return TRUE; // Initialization Went OK
  59. }
  60.