003
27.06.2004, 17:53 Uhr
Anfänger00
|
Ich hatte nur einen Speicherfehler in meiner Funktion,jetzt gehts mit allen 256*256. Aber nicht mit 128*128,512*512 usw. ich poste mal den code:
C++: |
// min_GLtexdat ist die Struktur die nur die minimalen Daten die opengl // für dieses beispiel braucht aufnimmt.(int x,int y, unsigned char *Daten) bool bmpload(char *Dateiname,min_GLtexdat *Daten) { BITMAPFILEHEADER *bmfh; BITMAPINFOHEADER *bmih; unsigned char *Speicher; int Size=0; ifstream File; int i=0;
File.open(Dateiname,ios::binary); if(!File) { return false; } File.seekg(0L,ios::end); Size = File.tellg(); Speicher= new unsigned char[Size]; File.seekg(0L,ios::beg);
while(i<Size) { Speicher[i]=File.get(); i++; }//while
bmfh = (BITMAPFILEHEADER*) Speicher; bmih = (BITMAPINFOHEADER*) (Speicher + sizeof(BITMAPFILEHEADER));
delete[] Speicher; Daten->Daten = new unsigned char[Size-(bmfh->bfOffBits)]; i=0;
File.seekg(bmfh->bfOffBits);
while(i<Size-bmfh->bfOffBits) { Daten->Daten[i]=File.get(); i++; }//while
for(int i=0;i<(Size-bmfh->bfOffBits)-3;i+=3) { unsigned char buf; buf=Daten->Daten[i]; Daten->Daten[i]= Daten->Daten[i+2]; Daten->Daten[i+2] = buf; }//for
Daten->x= bmih->biWidth; Daten->y= bmih->biHeight;
return true; }//bool()
|
Die Funktion setzt ich dann einfach in LoadGLTextures() beim Nehe 06 Tut ein. Kann es sein,dass es nicht an meiner Funktion liegt,sondern dass NeHe 06 einfach nur für diese Größe ausgelegt ist? Ich hab schon nach solchen Hinweisen im tut gesucht,aber keine gefunden. Dieser Post wurde am 27.06.2004 um 17:55 Uhr von Anfänger00 editiert. |