mirror of
https://git.vladimir.cc/vladimir/lazopenglcontextex.git
synced 2026-08-25 17:37:31 +00:00
Форк штатного пакета LazOpenGLContext (Lazarus components/opengl). Qt5/Qt6-бэкенд (glqtnativecontext.pas) использует собственный контекст настоящего QOpenGLWidget вместо ручного GLX на winId(): EGL на Wayland, GLX на X11, WGL/CGL на Windows/macOS под ws=qt6. QOpenGLWidget-наследник с paintGL-хуком живёт в маленькой C++-либе csrc/qlclglwidget.cpp (QLCLOpenGLWidget из libQt6Pas — не QOpenGLWidget, а голый QWidget под внешний GLX). Сборка: csrc/Makefile (linux/macos/windows-кросс mingw-w64/windows-native MSYS2, install, install-app) + build-msvc.bat для MSVC-Qt. Либа грузится в рантайме рядом с бинарником приложения. Бэкенды gtk2/gtk3/win32/cocoa скопированы из стока без изменений (юниты переименованы с суффиксом Ex). Детали и нюансы — в README.md. Проверено: EWSDR, спектр/водопад через GL в нативном Wayland (KDE, qt6), живой эфир QO-100. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
70 lines
2.4 KiB
ObjectPascal
70 lines
2.4 KiB
ObjectPascal
<?xml version="1.0" encoding="UTF-8"?>
|
|
<CONFIG>
|
|
<Package Version="4">
|
|
<Name Value="LazOpenGLContextEx"/>
|
|
<Type Value="RunAndDesignTime"/>
|
|
<AddToProjectUsesSection Value="True"/>
|
|
<Author Value="Mattias Gaertner (original), Vladimir (Qt native backend)"/>
|
|
<CompilerOptions>
|
|
<Version Value="11"/>
|
|
<SearchPaths>
|
|
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)/$(LCLWidgetType)"/>
|
|
</SearchPaths>
|
|
<Conditionals Value="if LCLWidgetType='cocoa' then begin
|
|
UsageLinkerOptions := ' -framework OpenGL'
|
|
+' ''-dylib_file'' ''/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib''';
|
|
end;"/>
|
|
</CompilerOptions>
|
|
<Description Value="Cross-platform OpenGL control. Fork of LazOpenGLContext with a Qt5/Qt6 backend on top of QOpenGLWidget: works on Wayland and with the Qt widgetset on Windows/macOS."/>
|
|
<License Value="modified LGPL-2"/>
|
|
<Version Release="1"/>
|
|
<Files Count="6">
|
|
<Item1>
|
|
<Filename Value="openglcontextex.pas"/>
|
|
<HasRegisterProc Value="True"/>
|
|
<UnitName Value="OpenGLContextEx"/>
|
|
</Item1>
|
|
<Item2>
|
|
<Filename Value="glgtkglxcontextex.pas"/>
|
|
<AddToUsesPkgSection Value="False"/>
|
|
<UnitName Value="GLGtkGlxContextEx"/>
|
|
</Item2>
|
|
<Item3>
|
|
<Filename Value="glgtk3glxcontextex.pas"/>
|
|
<AddToUsesPkgSection Value="False"/>
|
|
<UnitName Value="GLGtk3GlxContextEx"/>
|
|
</Item3>
|
|
<Item4>
|
|
<Filename Value="glwin32wglcontextex.pas"/>
|
|
<AddToUsesPkgSection Value="False"/>
|
|
<UnitName Value="GLWin32WGLContextEx"/>
|
|
</Item4>
|
|
<Item5>
|
|
<Filename Value="glcocoanscontextex.pas"/>
|
|
<AddToUsesPkgSection Value="False"/>
|
|
<UnitName Value="GLCocoaNSContextEx"/>
|
|
</Item5>
|
|
<Item6>
|
|
<Filename Value="glqtnativecontext.pas"/>
|
|
<AddToUsesPkgSection Value="False"/>
|
|
<UnitName Value="GLQtNativeContext"/>
|
|
</Item6>
|
|
</Files>
|
|
<RequiredPkgs Count="2">
|
|
<Item1>
|
|
<PackageName Value="FCL"/>
|
|
<MinVersion Major="1" Valid="True"/>
|
|
</Item1>
|
|
<Item2>
|
|
<PackageName Value="LCL"/>
|
|
</Item2>
|
|
</RequiredPkgs>
|
|
<UsageOptions>
|
|
<UnitPath Value="$(PkgOutDir)"/>
|
|
</UsageOptions>
|
|
<PublishOptions>
|
|
<Version Value="2"/>
|
|
</PublishOptions>
|
|
</Package>
|
|
</CONFIG>
|