std.qt5_gl

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


Verwendung

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);
}


Funktionen

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