====== 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. → [[lyx_-_programmiersprache:units:android|std.android]] · [[lyx_-_programmiersprache:units:android:native_window|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