From 08ba2c42afa50e7d8e08e196a76be9c170acd29e Mon Sep 17 00:00:00 2001 From: paul Date: Sat, 22 Sep 2007 13:02:04 +0000 Subject: [PATCH] Qt: trial to sppedup qt paintings through -dQtGraphicsSpeedUp git-svn-id: trunk@12134 - --- lcl/interfaces/qt/qtobjects.pas | 11 +++++++++++ lcl/interfaces/qt/qtwidgets.pas | 8 ++++++-- lcl/interfaces/qt/qtwinapi.inc | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lcl/interfaces/qt/qtobjects.pas b/lcl/interfaces/qt/qtobjects.pas index 95ada0bf39..abb45f7b5d 100644 --- a/lcl/interfaces/qt/qtobjects.pas +++ b/lcl/interfaces/qt/qtobjects.pas @@ -294,6 +294,7 @@ type function getDeviceSize: TPoint; function getRegionType(ARegion: QRegionH): integer; function region: TQtRegion; + procedure setClipping(const AValue: Boolean); procedure setClipRegion(ARegion: QRegionH; AOperation: QtClipOperation = QtReplaceClip); procedure setRegion(ARegion: TQtRegion); procedure drawImage(targetRect: PRect; image: QImageH; sourceRect: PRect; flags: QtImageConversionFlags = QtAutoColor); @@ -1291,7 +1292,12 @@ begin Widget := QPainter_create(QPaintDeviceH(ParentPixmap)); end else + begin Widget := QPainter_create(QWidget_to_QPaintDevice(Parent)); + {$ifdef QtGraphicsSpeedUp} + QPainter_setRenderHint(Widget, QPainterTextAntialiasing, False); + {$endif} + end; end; FOwnPainter := True; CreateObjects; @@ -1939,6 +1945,11 @@ begin Result := vRegion; end; +procedure TQtDeviceContext.setClipping(const AValue: Boolean); +begin + QPainter_setClipping(Widget, AValue); +end; + procedure TQtDeviceContext.setClipRegion(ARegion: QRegionH; AOperation: QtClipOperation = QtReplaceClip); begin diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index 7a6db48790..3610bafe5b 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -6178,7 +6178,7 @@ begin {$ifdef VerboseQt} WriteLn('TQtAbstractScrollArea.Create'); {$endif} - FViewPortWidget := NiL; + FViewPortWidget := niL; Result := QScrollArea_create(); QWidget_setAttribute(Result, QtWA_NoMousePropagation); end; @@ -6371,8 +6371,12 @@ begin FillChar(AParams, SizeOf(AParams), #0); FViewPortWidget := TQtWidget.Create(LCLObject, AParams); +{$ifdef QtGraphicsSpeedUp} + QWidget_setAttribute(Widget, QtWA_OpaquePaintEvent); + QWidget_setBackgroundRole(FViewPortWidget.Widget, QPaletteNoRole); +{$endif} FViewPortWidget.AttachEvents; - + QAbstractScrollArea_setViewport(QAbstractScrollAreaH(Widget), FViewPortWidget.Widget); end; diff --git a/lcl/interfaces/qt/qtwinapi.inc b/lcl/interfaces/qt/qtwinapi.inc index 99e4b8006b..770a02dce0 100644 --- a/lcl/interfaces/qt/qtwinapi.inc +++ b/lcl/interfaces/qt/qtwinapi.inc @@ -99,6 +99,7 @@ begin //Write('>>> Setting Paint ClipRegion: '); //DebugRegion('PaintData.ClipRegion: ', Widget.PaintData.ClipRegion); DC.setClipRegion(Widget.PaintData.ClipRegion); + DC.setClipping(True); end; if Widget.PaintData.ClipRect <> nil then begin