Ignore:
Timestamp:
Jan 3, 2024, 3:05:32 PM (4 months ago)
Author:
chronos
Message:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Packages/CevoComponents/ScreenTools.pas

    r512 r514  
    9797  T: TTexture);
    9898procedure PaintLogo(Canvas: TCanvas; X, Y, LightColor, ShadeColor: Integer);
     99procedure DrawBufferEnsureSize(Width, Height: Integer);
    99100procedure LoadPhrases;
    100101procedure Texturize(Dest, Texture: TBitmap; TransparentColor: Cardinal);
     
    190191  Paper: TBitmap;
    191192  BigImp: TBitmap;
    192   LogoBuffer: TBitmap;
     193  DrawBuffer: TBitmap;
    193194  FullScreen: Boolean;
    194195  GenerateNames: Boolean;
     
    15671568procedure PaintLogo(Canvas: TCanvas; X, Y, LightColor, ShadeColor: Integer);
    15681569begin
    1569   if not Assigned(LogoBuffer) then Exit;
    1570   UnshareBitmap(LogoBuffer);
    1571   BitBltCanvas(LogoBuffer.Canvas, 0, 0, Logo.Width, Logo.Height, Canvas, X, Y);
    1572   ImageOp_BCC(LogoBuffer, Templates.Data, Point(0, 0), Logo.BoundsRect,
     1570  if not Assigned(DrawBuffer) then Exit;
     1571  DrawBufferEnsureSize(Logo.Width, Logo.Height);
     1572  UnshareBitmap(DrawBuffer);
     1573  BitBltCanvas(DrawBuffer.Canvas, 0, 0, Logo.Width, Logo.Height, Canvas, X, Y);
     1574  ImageOp_BCC(DrawBuffer, Templates.Data, Point(0, 0), Logo.BoundsRect,
    15731575    LightColor, ShadeColor);
    1574   BitBltCanvas(Canvas, X, Y, Logo.Width, Logo.Height, LogoBuffer.Canvas, 0, 0);
     1576  BitBltCanvas(Canvas, X, Y, Logo.Width, Logo.Height, DrawBuffer.Canvas, 0, 0);
     1577end;
     1578
     1579procedure DrawBufferEnsureSize(Width, Height: Integer);
     1580begin
     1581  if (DrawBuffer.Width >= Width) and (DrawBuffer.Height >= Height) then Exit;
     1582  if (DrawBuffer.Width < Width) and (DrawBuffer.Height < Height) then
     1583    DrawBuffer.SetSize(Width, Height)
     1584  else if DrawBuffer.Width < Width then DrawBuffer.Width := Width
     1585  else if DrawBuffer.Height < Height then DrawBuffer.Height := Height;
     1586  DrawBuffer.Canvas.FillRect(0, 0, DrawBuffer.Width, DrawBuffer.Height);
    15751587end;
    15761588
     
    18131825  end;
    18141826
    1815   if not Assigned(LogoBuffer) then begin
    1816     LogoBuffer := TBitmap.Create;
    1817     LogoBuffer.PixelFormat := TPixelFormat.pf24bit;
    1818     LogoBuffer.SetSize(BigBook.Width, BigBook.Height);
    1819   end;
    1820 
    18211827  LoadGraphicFile(Colors, GetGraphicsDir + DirectorySeparator + 'Colors.png');
    18221828  LoadGraphicFile(Paper, GetGraphicsDir + DirectorySeparator + 'Paper.jpg');
     
    18381844  for Section := Low(TFontType) to High(TFontType) do
    18391845    UniFont[Section] := TFont.Create;
     1846
     1847  DrawBuffer := TBitmap.Create;
     1848  DrawBuffer.PixelFormat := TPixelFormat.pf24bit;
    18401849
    18411850  GrExt := TGraphicSets.Create;
     
    18771886  FreeAndNil(Phrases);
    18781887  FreeAndNil(Phrases2);
    1879   if Assigned(LogoBuffer) then FreeAndNil(LogoBuffer);
     1888  FreeAndNil(DrawBuffer);
    18801889  FreeAndNil(BigImp);
    18811890  FreeAndNil(Paper);
Note: See TracChangeset for help on using the changeset viewer.