Ignore:
Timestamp:
Dec 22, 2016, 8:49:19 PM (8 years ago)
Author:
chronos
Message:
  • Modified: Updated BGRABitmap package.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GraphicTest/Packages/bgrabitmap/bgraqtbitmap.pas

    r452 r494  
    2828
    2929uses
    30   Classes, SysUtils, BGRADefaultBitmap, Graphics,
    31   GraphType;
     30  Classes, SysUtils, BGRALCLBitmap, Graphics,
     31  GraphType, BGRABitmapTypes;
    3232
    3333type
    3434  { TBGRAQtBitmap }
    3535
    36   TBGRAQtBitmap = class(TBGRADefaultBitmap)
     36  TBGRAQtBitmap = class(TBGRALCLBitmap)
    3737  private
    38     procedure SlowDrawTransparent(ABitmap: TBGRADefaultBitmap;
     38    procedure SlowDrawTransparent(ABitmap: TBGRACustomBitmap;
    3939      ACanvas: TCanvas; ARect: TRect);
    4040  public
     
    4444    procedure Draw(ACanvas: TCanvas; x, y: integer; Opaque: boolean = True); override;
    4545    procedure Draw(ACanvas: TCanvas; Rect: TRect; Opaque: boolean = True); override;
    46     procedure DataDrawOpaque(ACanvas: TCanvas; Rect: TRect; AData: Pointer;
    47       ALineOrder: TRawImageLineOrder; AWidth, AHeight: integer);
    48       override;
    4946    procedure GetImageFromCanvas(CanvasSource: TCanvas; x, y: integer); override;
    5047  end;
     
    5249implementation
    5350
    54 uses BGRABitmapTypes, LCLType,
     51uses LCLType,
    5552  LCLIntf, IntfGraphics,
    5653  qtobjects, qt4,
    5754  FPImage;
    5855
    59 procedure TBGRAQtBitmap.SlowDrawTransparent(ABitmap: TBGRADefaultBitmap;
     56procedure TBGRAQtBitmap.SlowDrawTransparent(ABitmap: TBGRACustomBitmap;
    6057  ACanvas: TCanvas; ARect: TRect);
    6158begin
     
    6663  AData: Pointer; ALineOrder: TRawImageLineOrder; AWidth, AHeight: integer);
    6764var
    68   Temp: TBGRAPtrBitmap;
     65  Temp: TBGRALCLPtrBitmap;
    6966begin
    70   Temp := TBGRAPtrBitmap.Create(AWidth, AHeight, AData);
     67  Temp := TBGRALCLPtrBitmap.Create(AWidth, AHeight, AData);
    7168  Temp.LineOrder := ALineOrder;
    7269  SlowDrawTransparent(Temp, ACanvas, Rect);
     
    9592end;
    9693
    97 procedure TBGRAQtBitmap.DataDrawOpaque(ACanvas: TCanvas; Rect: TRect;
    98   AData: Pointer; ALineOrder: TRawImageLineOrder; AWidth, AHeight: integer);
    99 var
    100   Temp:     TBitmap;
    101   RawImage: TRawImage;
    102   BitmapHandle, MaskHandle: HBitmap;
    103   CreateSuccess: boolean;
    104 begin
    105   if (AHeight = 0) or (AWidth = 0) then
    106     exit;
    107 
    108   RawImage.Init;
    109   RawImage.Description.Init_BPP32_B8G8R8_BIO_TTB(AWidth, AHeight);
    110   RawImage.Description.LineOrder := ALineOrder;
    111   RawImage.Description.LineEnd := rileDWordBoundary;
    112   RawImage.Data     := PByte(AData);
    113   RawImage.DataSize := AWidth * AHeight * Sizeof(TBGRAPixel);
    114   CreateSuccess     := RawImage_CreateBitmaps(RawImage, BitmapHandle, MaskHandle, False);
    115 
    116   if not CreateSuccess then
    117     raise FPImageException.Create('Failed to create bitmap handle');
    118   Temp := TBitmap.Create;
    119   Temp.Handle := BitmapHandle;
    120   Temp.MaskHandle := MaskHandle;
    121   ACanvas.StretchDraw(Rect, Temp);
    122   Temp.Free;
    123 end;
    124 
    12594procedure TBGRAQtBitmap.GetImageFromCanvas(CanvasSource: TCanvas; x, y: integer);
    12695var
     
    144113  SrcY     := y + Ofs.Y;
    145114
    146   {$warning QT: recheck this}
    147115  if (dcSource.vImage <> nil) and (dcSource.vImage.Handle <> nil) then
    148116  begin
     
    157125  end;
    158126
    159   (*
    160   gdk_window_copy_area(dcDest.Drawable, dcDest.GC, 0, 0, dcSource.Drawable,
    161     SrcX, SrcY, Width, Height);
    162   *)
    163127  LoadFromRawImage(bmp.RawImage, 255, True);
    164128  bmp.Free;
Note: See TracChangeset for help on using the changeset viewer.