diff --git a/components/virtualtreeview/include/intf/qt/laz.vtgraphicsi.inc b/components/virtualtreeview/include/intf/qt/laz.vtgraphicsi.inc index a62cd84ef1..87aa2945ee 100644 --- a/components/virtualtreeview/include/intf/qt/laz.vtgraphicsi.inc +++ b/components/virtualtreeview/include/intf/qt/laz.vtgraphicsi.inc @@ -758,6 +758,13 @@ var SourceHeight, DestWidth, DestHeight: Integer; + {$ifdef CPU64} + ATransform: QTransformH; + DX, DY: QReal; + AColor: QColorH; + ADst: TQtDeviceContext absolute Destination; + AFillColor: TQColor; + {$endif} //BlendColor: TQColor; begin @@ -838,6 +845,22 @@ begin } // Source is ignored since there is a constant color value. + {$IFDEF CPU64} + if ADst <> nil then + begin + ATransform := QPainter_transform(ADst.Widget); + DX := QTransform_dx(ATransform); + DY := QTransform_dy(ATransform); + ADst.translate(-DX, -DY); + AColor := QColor_create((Bias and $000000FF), ((Bias shr 8) and $000000FF), ((Bias shr 16) and $000000FF), ConstantAlpha); + QColor_convertTo(AColor, @AFillColor, QColorRgb); + QPainter_fillRect(ADst.Widget, R.Left + Target.x, R.Top + Target.y, + R.Right - R.Left, R.Bottom - R.Top, PQColor(@AFillColor)); + ADst.translate(DX, DY); + QColor_destroy(AColor); + end; + {$ELSE} + DestBits := GetBitmapBitsFromDeviceContext(Destination, DestWidth, DestHeight); if Assigned(DestBits) then begin @@ -849,6 +872,7 @@ begin end; end; EMMS; + {$ENDIF} end; end; end; diff --git a/components/virtualtreeview/include/intf/qt5/laz.vtgraphicsi.inc b/components/virtualtreeview/include/intf/qt5/laz.vtgraphicsi.inc index 5217195ea9..b5f97710d3 100644 --- a/components/virtualtreeview/include/intf/qt5/laz.vtgraphicsi.inc +++ b/components/virtualtreeview/include/intf/qt5/laz.vtgraphicsi.inc @@ -786,11 +786,11 @@ var DestWidth, DestHeight: Integer; {$IFDEF CPU64} + ATransform: QTransformH; + DX, DY: QReal; AColor: QColorH; ADst: TQtDeviceContext absolute Destination; AFillColor: TQColor; - ATransform: QTransformH; - DX, DY: QReal; {$ENDIF} //BlendColor: TQColor;