Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int insert_texture()
- {
- int width, height;
- BYTE* data;
- FILE* file;
- // Datei öffnen
- file = fopen("texture.raw", "rb");
- // Speicherplatz zuweisen
- width = 256;
- height = 256;
- data = malloc(width * height * 3);
- // Textur einlesen und Datei wieder schließen
- fread(data, width * height * 3, 1, file);
- fclose(file);
- // Texturname zuweisen
- Gl.glGenTextures(1, texturspeicher);
- // Umgebungszustand für die Textur festlegen
- // MODULATE multipliziert die Farb- und Alpha-Werte der Textur mit denen vom Lichtsystem
- Gl.glTexEnvf(Gl.GL_TEXTURE_ENV, Gl.GL_TEXTURE_ENV_MODE, Gl.GL_MODULATE);
- // Bei kleiner Texturfläche wird die nähste Textur bilinear gefiltert
- Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR_MIPMAP_NEAREST);
- // Bei großer Texturfläche wird das ganze Original bilinear gefiltert
- Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR);
- // Textur wird über die Kanten geschlagen (Wiederholt)
- Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_REPEAT);
- Gl.glTexParameterf(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_REPEAT);
- // Kopiert die Texturdaten nach OpenGl und womöglich auch in den Grafikkartenspeicher
- Glu.gluBuild2DMipmaps(Gl.GL_TEXTURE_2D, 3, width, height, Gl.GL_RGB, Gl.GL_UNSIGNED_BYTE, data);
- // Gibt den Speicher danach wieder frei
- free(data);
- return texturspeicher;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement