1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-04-17 06:57:13 +02:00

Clip drawing area for Firemonkey browsers in OSR mode using TFMXBufferPanel

This commit is contained in:
Salvador Díaz Fau 2020-02-05 18:52:32 +01:00
parent e9601e4ee3
commit 7a6a008128
2 changed files with 16 additions and 9 deletions

@ -275,24 +275,31 @@ end;
function TFMXBufferPanel.CopyBuffer : boolean; function TFMXBufferPanel.CopyBuffer : boolean;
var var
TempSrc, TempDst : TRectF; TempSrc, TempDst, TempClip : TRectF;
TempState : TCanvasSaveState;
begin begin
Result := False; Result := False;
if Canvas.BeginScene then if Canvas.BeginScene then
try try
if BeginBufferDraw then if BeginBufferDraw then
begin try
if (FBuffer <> nil) then if (FBuffer <> nil) then
begin begin
TempSrc := TRectF.Create(0, 0, FBuffer.Width, FBuffer.Height); TempSrc := TRectF.Create(0, 0, FBuffer.Width, FBuffer.Height);
TempDst := TRectF.Create(0, 0, FBuffer.Width / ScreenScale, FBuffer.Height / ScreenScale); TempDst := TRectF.Create(0, 0, FBuffer.Width / ScreenScale, FBuffer.Height / ScreenScale);
TempClip := TRectF.Create(0, 0, Width, Height);
Canvas.DrawBitmap(FBuffer, TempSrc, TempDst, 1, FHighSpeedDrawing); TempState := Canvas.SaveState;
try
Result := True; CAnvas.IntersectClipRect(TempClip);
Canvas.DrawBitmap(FBuffer, TempSrc, TempDst, 1, FHighSpeedDrawing);
Result := True;
finally
Canvas.RestoreState(TempState);
end;
end; end;
finally
EndBufferDraw; EndBufferDraw;
end; end;
finally finally

@ -2,7 +2,7 @@
"UpdateLazPackages" : [ "UpdateLazPackages" : [
{ {
"ForceNotify" : true, "ForceNotify" : true,
"InternalVersion" : 93, "InternalVersion" : 94,
"Name" : "cef4delphi_lazarus.lpk", "Name" : "cef4delphi_lazarus.lpk",
"Version" : "79.1.36.0" "Version" : "79.1.36.0"
} }