- procedure TFormStart.TexturenErstellen(const TexturLink : PAnsiChar);
- var
- Tex : PSDL_Surface;
- HV : String[4];
- begin
- Tex := IMG_Load(TexturLink);
- If Assigned(Tex) //entspricht "Textur <> Nil"
- Then begin
- glGenTextures (1, @AktKarte.TexturAnzahl); //Anzahl Texturen, Zeiger
- glBindTexture (GL_TEXTURE_2D, AktKarte.TexturAnzahl);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- HV := LowerCase(DateiEnde(TexturLink));
- If HV = 'bmp' Then glTexImage2D(GL_TEXTURE_2D, //Typ der Textur
- 0, 3, //Detailstufe, Anzahl Farbkomponenten
- Tex^.w, Tex^.h, 0, //Breite, Höhe und Rahmenbreite der Textur
- GL_BGR, //Reihenfolge der Farbmischung
- GL_UNSIGNED_BYTE, //Typ der einzelnen Farbwerte
- Tex^.pixels) //Übergabe der Pixel
- Else
- If HV = 'tga' Then glTexImage2D(GL_TEXTURE_2D, 0, 3, Tex^.w, Tex^.h, 0, GL_BGRA, GL_UNSIGNED_BYTE, Tex^.pixels) Else
- If HV = 'jpg' Then glTexImage2D(GL_TEXTURE_2D, 0, 3, Tex^.w, Tex^.h, 0, GL_RGB , GL_UNSIGNED_BYTE, Tex^.pixels) Else
- If HV = 'png' Then glTexImage2D(GL_TEXTURE_2D, 0, 3, Tex^.w, Tex^.h, 0, GL_BGRA, GL_UNSIGNED_BYTE, Tex^.pixels) Else
- If HV = 'gif' Then glTexImage2D(GL_TEXTURE_2D, 0, 3, Tex^.w, Tex^.h, 0, GL_RGB , GL_UNSIGNED_BYTE, Tex^.pixels);
- SDL_FreeSurface(Tex);
- FormKontrollStation.MemoKonsole.Lines.Add ('Textur erfolgreich geladen: ' +TexturLink);
- FormTexturManager.TexturHinzu(DateiName(TexturLink));
- end
- Else FormKontrollStation.MemoKonsole.Lines.Add('Textur konnte nicht geladen werden: '+TexturLink);
- end;