std.android.gles2
OpenGL ES 2.0 Bindings für Android: Shader compilieren und linken, Texturen laden, Vertex Buffer Objects erstellen und Draw Calls ausführen. Setzt eine aktive EGL-Surface voraus.
→ std.android · std.android.native_window
Typen
| Typ | Beschreibung |
|---|---|
GLuint | OpenGL-Objekt-Handle (Shader, Texture, Buffer, Program) |
GLenum | OpenGL-Enum-Wert |
GLint | 32-Bit-Integer für GL-Parameter |
GLfloat | 32-Bit-Float für GL-Daten |
Verwendung
import std.android.gles2;
// Shader compilieren
var vs: GLuint := GlCreateShader(GL_VERTEX_SHADER);
GlShaderSource(vs, vertSrc);
GlCompileShader(vs);
var fs: GLuint := GlCreateShader(GL_FRAGMENT_SHADER);
GlShaderSource(fs, fragSrc);
GlCompileShader(fs);
// Programm linken
var prog: GLuint := GlCreateProgram();
GlAttachShader(prog, vs);
GlAttachShader(prog, fs);
GlLinkProgram(prog);
GlUseProgram(prog);
// Zeichnen
GlClearColor(0.0, 0.0, 0.0, 1.0);
GlClear(GL_COLOR_BUFFER_BIT);
GlDrawArrays(GL_TRIANGLES, 0, 3);
Konstanten (Auswahl)
| Konstante | Beschreibung |
|---|---|
GL_VERTEX_SHADER | Vertex-Shader-Typ |
GL_FRAGMENT_SHADER | Fragment-Shader-Typ |
GL_COLOR_BUFFER_BIT | Farb-Puffer für glClear |
GL_DEPTH_BUFFER_BIT | Tiefen-Puffer für glClear |
GL_TRIANGLES | Dreieck-Primitive |
GL_TRIANGLE_STRIP | Dreieckstreifen |
GL_TEXTURE_2D | 2D-Textur-Target |
GL_RGBA | RGBA-Farbformat |
GL_FLOAT | Float-Datentyp |
GL_ARRAY_BUFFER | Vertex-Buffer-Ziel |
Funktionen (Auswahl)
| Signatur | Beschreibung |
|---|---|
GlClear(mask: GLenum): void | Löscht Puffer |
GlClearColor(r: GLfloat, g: GLfloat, b: GLfloat, a: GLfloat): void | Setzt Clear-Farbe |
GlCreateShader(type: GLenum): GLuint | Erzeugt Shader-Objekt |
GlShaderSource(shader: GLuint, src: pchar): void | Setzt Shader-Quelltext |
GlCompileShader(shader: GLuint): void | Compiliert Shader |
GlCreateProgram(): GLuint | Erzeugt Shader-Programm |
GlAttachShader(prog: GLuint, shader: GLuint): void | Hängt Shader an Programm |
GlLinkProgram(prog: GLuint): void | Linkt Shader-Programm |
GlUseProgram(prog: GLuint): void | Aktiviert Shader-Programm |
GlDrawArrays(mode: GLenum, first: GLint, count: GLint): void | Zeichnet Primitive |
GlGenTextures(n: GLint, textures: *GLuint): void | Erzeugt Textur-Handles |
GlBindTexture(target: GLenum, texture: GLuint): void | Bindet Textur |
GlTexImage2D(target: GLenum, level: GLint, internalFormat: GLenum, width: GLint, height: GLint, border: GLint, format: GLenum, type: GLenum, data: pchar): void | Lädt Textur-Daten |
GlGetUniformLocation(prog: GLuint, name: pchar): GLint | Gibt Uniform-Location zurück |
GlUniform1i(location: GLint, v0: GLint): void | Setzt Integer-Uniform |
GlUniform4f(location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat): void | Setzt Vec4-Uniform |
Letzte Aktualisierung: 2026-05-22
