mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-23 20:25:53 +02:00
Qt6: fixed building for Qt6
This commit is contained in:
parent
364a94d82b
commit
eec91b3a05
@ -28,6 +28,7 @@ uses
|
||||
// Bindings
|
||||
{$IFDEF LCLQt}qt4,{$ENDIF}
|
||||
{$IFDEF LCLQt5}qt5, qlclopenglwidget,{$ENDIF}
|
||||
{$IFDEF LCLQt6}qt6, qlclopenglwidget,{$ENDIF}
|
||||
qtwidgets, qtobjects, qtproc, qtint,
|
||||
QtWSControls;
|
||||
|
||||
@ -119,10 +120,10 @@ end;
|
||||
type
|
||||
{ TQtGLWidget }
|
||||
|
||||
TQtGLWidget = class({$IFDEF LCLQt5}TQtOpenGLWidget{$ELSE}TQtWidget{$ENDIF})
|
||||
TQtGLWidget = class({$IF DEFINED(LCLQt5) OR DEFINED(LCLQt6)}TQtOpenGLWidget{$ELSE}TQtWidget{$ENDIF})
|
||||
protected
|
||||
function PaintGLControl(Sender: QObjectH; Event: QEventH): boolean; cdecl;
|
||||
{$IFDEF LCLQt5}
|
||||
{$IF DEFINED(LCLQt5) OR DEFINED(LCLQt6)}
|
||||
procedure paintGL(); cdecl; override;
|
||||
{$ENDIF}
|
||||
public
|
||||
@ -186,7 +187,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
{$IFDEF LCLQt5}
|
||||
{$IF DEFINED(LCLQt5) OR DEFINED(LCLQt6)}
|
||||
procedure TQtGLWidget.paintGL(); cdecl;
|
||||
var
|
||||
AEvent: QPaintEventH;
|
||||
@ -309,7 +310,7 @@ var
|
||||
AttrList: TContextAttribs;
|
||||
NewQtWidget: TQtGLWidget;
|
||||
direct: boolean;
|
||||
{$IFDEF LCLQt5}
|
||||
{$IF DEFINED(LCLQt5) OR DEFINED(LCLQt6)}
|
||||
AWinFormat: QSurfaceFormatH;
|
||||
{$ENDIF}
|
||||
{$IFDEF VerboseMultiSampling}
|
||||
@ -327,11 +328,15 @@ begin
|
||||
NewQtWidget.setAttribute(QtWA_OpaquePaintEvent);
|
||||
{$endif}
|
||||
NewQtWidget.HasPaint := false;
|
||||
{$IFDEF LCLQt6}
|
||||
NewQtWidget.xdisplay := QtWidgetSet.x11Display;
|
||||
{$ELSE}
|
||||
NewQtWidget.xdisplay := QX11Info_display;
|
||||
{$ENDIF}
|
||||
NewQtWidget.visual := glXChooseVisual(NewQtWidget.xdisplay,
|
||||
DefaultScreen(NewQtWidget.xdisplay), @attrList.AttributeList[0]);
|
||||
direct := false;
|
||||
{$IFDEF LCLQt5}
|
||||
{$IF DEFINED(LCLQt5) OR DEFINED(LCLQt6)}
|
||||
QWindow_setSurfaceType(QWidget_windowHandle(NewQtWidget.Widget), QSurfaceSurfaceTypeOpenGLSurface);
|
||||
|
||||
AWinFormat := QSurfaceFormat_Create();
|
||||
@ -564,8 +569,12 @@ begin
|
||||
{$IFDEF VerboseMultiSampling}
|
||||
debugln(['CreateOpenGLContextAttrList MultiSampling=',MultiSampling]);
|
||||
{$ENDIF}
|
||||
{$IFDEF ModernGL}
|
||||
{$IFDEF ModernGL}
|
||||
{$IFDEF LCLQt6}
|
||||
UseFBConfig := GLX_version_1_3(QtWidgetSet.x11Display());
|
||||
{$ELSE}
|
||||
UseFBConfig := GLX_version_1_3(QX11Info_display());
|
||||
{$ENDIF}
|
||||
{$ELSE}
|
||||
UseFBConfig := false;
|
||||
{$ENDIF}
|
||||
|
@ -78,7 +78,7 @@ unit OpenGLContext;
|
||||
{$DEFINE HasRGBBits}
|
||||
{$DEFINE OpenGLTargetDefined}
|
||||
{$ENDIF}
|
||||
{$IFDEF LCLQT5}
|
||||
{$IF DEFINED(LCLQT5) OR DEFINED(LCLQt6)}
|
||||
{$DEFINE UseQTGLX}
|
||||
{$DEFINE UsesModernGL}
|
||||
{$DEFINE HasRGBA}
|
||||
|
@ -14,16 +14,21 @@ unit qlclopenglwidget;
|
||||
interface
|
||||
|
||||
uses
|
||||
qt5, qtobjects, qtwidgets,
|
||||
{$IFDEF LCLQt5}qt5,{$ENDIF}
|
||||
{$IFDEF LCLQt6}qt6,{$ENDIF}
|
||||
qtobjects, qtwidgets,
|
||||
Classes, SysUtils, Types, Controls, LCLType;
|
||||
|
||||
type
|
||||
QLCLOpenGLWidget_gl_Override = procedure of object cdecl;
|
||||
|
||||
function QLCLOpenGLWidget_Create(parent: QWidgetH = nil; f: QtWindowFlags = 0): QWidgetH; cdecl; external Qt5PasLib name 'QLCLOpenGLWidget_Create';
|
||||
procedure QLCLOpenGLWidget_Destroy(handle: QWidgetH); cdecl; external Qt5PasLib name 'QLCLOpenGLWidget_Destroy';
|
||||
procedure QLCLOpenGLWidget_override_paintGL(handle: QLCLOpenGLWidgetH; hook: QLCLOpenGLWidget_gl_Override); cdecl; external Qt5PasLib name 'QLCLOpenGLWidget_override_paintGL';
|
||||
procedure QLCLOpenGLWidget_InheritedPaintGL(handle: QLCLOpenGLWidgetH); cdecl; external Qt5PasLib name 'QLCLOpenGLWidget_InheritedPaintGL';
|
||||
const
|
||||
QtPasLibrary = {$IFDEF LCLQt5}Qt5PasLib;{$ENDIF}{$IFDEF LCLQt6}Qt6PasLib;{$ENDIF}
|
||||
|
||||
function QLCLOpenGLWidget_Create(parent: QWidgetH = nil; f: QtWindowFlags = 0): QWidgetH; cdecl; external QtPasLibrary name 'QLCLOpenGLWidget_Create';
|
||||
procedure QLCLOpenGLWidget_Destroy(handle: QWidgetH); cdecl; external QtPasLibrary name 'QLCLOpenGLWidget_Destroy';
|
||||
procedure QLCLOpenGLWidget_override_paintGL(handle: QLCLOpenGLWidgetH; hook: QLCLOpenGLWidget_gl_Override); cdecl; external QtPasLibrary name 'QLCLOpenGLWidget_override_paintGL';
|
||||
procedure QLCLOpenGLWidget_InheritedPaintGL(handle: QLCLOpenGLWidgetH); cdecl; external QtPasLibrary name 'QLCLOpenGLWidget_InheritedPaintGL';
|
||||
|
||||
type
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user