Ignore:
Timestamp:
Apr 17, 2019, 12:58:41 AM (5 years ago)
Author:
chronos
Message:
  • Modified: Propagate project build mode options to used packages.
  • Added: Check memory leaks using heaptrc.
  • Modified: Update BGRABitmap package.
Location:
GraphicTest
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • GraphicTest

    • Property svn:ignore
      •  

        old new  
        88GraphicTest.lps
        99GraphicTest.dbg
         10heaptrclog.trc
  • GraphicTest/Packages/bgrabitmap/bgraqtbitmap.pas

    r494 r521  
    4040  public
    4141    procedure DataDrawTransparent(ACanvas: TCanvas; Rect: TRect;
    42       AData: Pointer; ALineOrder: TRawImageLineOrder; AWidth, AHeight: integer);
    43       override;
     42      AData: Pointer; ALineOrder: TRawImageLineOrder; AWidth, AHeight: integer); override;
     43    procedure DataDrawOpaque(ACanvas: TCanvas; ARect: TRect; AData: Pointer;
     44      ALineOrder: TRawImageLineOrder; AWidth, AHeight: integer); override;
    4445    procedure Draw(ACanvas: TCanvas; x, y: integer; Opaque: boolean = True); override;
    4546    procedure Draw(ACanvas: TCanvas; Rect: TRect; Opaque: boolean = True); override;
     
    6970  SlowDrawTransparent(Temp, ACanvas, Rect);
    7071  Temp.Free;
     72end;
     73
     74procedure TBGRAQtBitmap.DataDrawOpaque(ACanvas: TCanvas; ARect: TRect;
     75  AData: Pointer; ALineOrder: TRawImageLineOrder; AWidth, AHeight: integer);
     76var psrc,pdest: PBGRAPixel;
     77  bmp: TBGRAQtBitmap;
     78begin
     79  {$IFDEF DARWIN}
     80  bmp := TBGRAQtBitmap.Create(AWidth,AHeight);
     81  try
     82    if ALineOrder = riloTopToBottom then psrc := AData
     83    else psrc := PBGRAPixel(AData) + (AWidth*AHeight);
     84    for y := 0 to AHeight-1 do
     85    begin
     86      pdest := bmp.ScanLine[y];
     87      for x := 0 to AWidth-1 do
     88      begin
     89        pdest^.red := psrc^.red;
     90        pdest^.green:= psrc^.green;
     91        pdest^.blue := psrc^.blue;
     92        pdest^.alpha := 255;
     93      end;
     94      if ALineOrder = riloBottomToTop then psrc -= 2*AWidth;
     95    end;
     96    bmp.Draw(ACanvas, ARect, false);
     97  finally
     98    bmp.Free;
     99  end;
     100  {$ELSE}
     101  inherited DataDrawOpaque(ACanvas, ARect, AData, ALineOrder, AWidth, AHeight);
     102  {$ENDIF}
    71103end;
    72104
Note: See TracChangeset for help on using the changeset viewer.