I am getting unexpected results when building for QT. Everything works fine with GTK2, but with QT the following code snippet does not produce the expected line. The grid layer, generated in another procedure, is displayed properly.
Strangely the timer results are as expected, indicating everything is processing normally, other than taking somewhat longer than when compiled with GTK2. The line just isn't being drawn on the screen.
Up :begin // Mouse button up, part of case statement
if (x1 <> x2) or (y1 <> y2) then // If yes, then draw the completed line on the main layer
begin
StartTimer; // Epik timer measures how long it takes to redraw the form
form1.image.Fill(uPrefs.bkgnd); // Required, prevents dimming of existing lines
form1.mainLayer.DrawLineAntiAlias(x1, y1, x2, y2, BGRABlack, 1.0); // Works with GTK2, but not QT
form1.image.PutImage(0, 0, form1.gridLayer, dmDrawWithTransparency); // Grid layer is drawn in another procedure
form1.image.PutImage(0, 0, form1.mainLayer, dmDrawWithTransparency);
form1.image.Draw(form1.Canvas, 0, 0, False);
CheckTimer; // Writes the ET to the status panel
end;
end;
I do notice a warning when compiling for QT:
..../BGRABitMap/bgrabitmap5.7/bgraqtbitmap.pas(146,4) Warning: User defined: QT: recheck this
I get exactly the same results on two different machines with completely different graphics processors.
Any thoughts?
Linux
Laz 1.1
FPC 2.6.0