====== std.qt5_gl ====== Qt5-OpenGL-Widget-Integration: QOpenGLWidget als Rendering-Surface, OpenGL-Kontext verwalten und Render-Loop einbinden. Verbindet Qt5-Fenster mit OpenGL-Rendering. → [[lyx_-_programmiersprache:units:qt5_app|std.qt5_app]] · [[lyx_-_programmiersprache:units:qt5_egl|std.qt5_egl]] · [[lyx_-_programmiersprache:units:qt5_glx|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