Qt5-OpenGL-Widget-Integration: QOpenGLWidget als Rendering-Surface, OpenGL-Kontext verwalten und Render-Loop einbinden. Verbindet Qt5-Fenster mit OpenGL-Rendering.
→ std.qt5_app · std.qt5_egl · std.qt5_glx
import std.qt5_gl;
// OpenGL-Widget in Qt5-Fenster einbetten
var glWidget: Qt5GlWidget := Qt5GlWidgetNew(parent);
Qt5GlWidgetSetInitCallback(glWidget, OnGlInit);
Qt5GlWidgetSetPaintCallback(glWidget, OnGlPaint);
Qt5GlWidgetSetResizeCallback(glWidget, OnGlResize);
Qt5WidgetResize(glWidget, 800, 600);
Qt5WidgetShow(glWidget);
fn OnGlInit(): void {
// OpenGL-Ressourcen initialisieren (Shader, Buffers)
}
fn OnGlPaint(): void {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Zeichenbefehle
Qt5GlWidgetSwapBuffers(glWidget);
}
fn OnGlResize(w: int64, h: int64): void {
glViewport(0, 0, w, h);
}
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
Qt5GlWidgetNew(parent: Qt5Widget): Qt5GlWidget | pub | Erzeugt QOpenGLWidget als Rendering-Surface |
Qt5GlWidgetSetInitCallback(w: Qt5GlWidget, cb: pchar): void | pub | Callback beim ersten GL-Kontext-Erstellen |
Qt5GlWidgetSetPaintCallback(w: Qt5GlWidget, cb: pchar): void | pub | Callback für jeden Render-Frame |
Qt5GlWidgetSetResizeCallback(w: Qt5GlWidget, cb: pchar): void | pub | Callback bei Widget-Größenänderung |
Qt5GlWidgetUpdate(w: Qt5GlWidget): void | pub | Fordert neuen Frame an (löst Paint-Callback aus) |
Qt5GlWidgetSwapBuffers(w: Qt5GlWidget): void | pub | Tauscht Front/Back-Buffer (Double Buffering) |
Qt5GlWidgetMakeCurrent(w: Qt5GlWidget): void | pub | Macht GL-Kontext des Widgets aktiv |
Letzte Aktualisierung: 2026-05-22