Changeset 494 for GraphicTest/Packages/bgrabitmap/bgraqtbitmap.pas
- Timestamp:
- Dec 22, 2016, 8:49:19 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GraphicTest/Packages/bgrabitmap/bgraqtbitmap.pas
r452 r494 28 28 29 29 uses 30 Classes, SysUtils, BGRA DefaultBitmap, Graphics,31 GraphType ;30 Classes, SysUtils, BGRALCLBitmap, Graphics, 31 GraphType, BGRABitmapTypes; 32 32 33 33 type 34 34 { TBGRAQtBitmap } 35 35 36 TBGRAQtBitmap = class(TBGRA DefaultBitmap)36 TBGRAQtBitmap = class(TBGRALCLBitmap) 37 37 private 38 procedure SlowDrawTransparent(ABitmap: TBGRA DefaultBitmap;38 procedure SlowDrawTransparent(ABitmap: TBGRACustomBitmap; 39 39 ACanvas: TCanvas; ARect: TRect); 40 40 public … … 44 44 procedure Draw(ACanvas: TCanvas; x, y: integer; Opaque: boolean = True); override; 45 45 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;49 46 procedure GetImageFromCanvas(CanvasSource: TCanvas; x, y: integer); override; 50 47 end; … … 52 49 implementation 53 50 54 uses BGRABitmapTypes,LCLType,51 uses LCLType, 55 52 LCLIntf, IntfGraphics, 56 53 qtobjects, qt4, 57 54 FPImage; 58 55 59 procedure TBGRAQtBitmap.SlowDrawTransparent(ABitmap: TBGRA DefaultBitmap;56 procedure TBGRAQtBitmap.SlowDrawTransparent(ABitmap: TBGRACustomBitmap; 60 57 ACanvas: TCanvas; ARect: TRect); 61 58 begin … … 66 63 AData: Pointer; ALineOrder: TRawImageLineOrder; AWidth, AHeight: integer); 67 64 var 68 Temp: TBGRA PtrBitmap;65 Temp: TBGRALCLPtrBitmap; 69 66 begin 70 Temp := TBGRA PtrBitmap.Create(AWidth, AHeight, AData);67 Temp := TBGRALCLPtrBitmap.Create(AWidth, AHeight, AData); 71 68 Temp.LineOrder := ALineOrder; 72 69 SlowDrawTransparent(Temp, ACanvas, Rect); … … 95 92 end; 96 93 97 procedure TBGRAQtBitmap.DataDrawOpaque(ACanvas: TCanvas; Rect: TRect;98 AData: Pointer; ALineOrder: TRawImageLineOrder; AWidth, AHeight: integer);99 var100 Temp: TBitmap;101 RawImage: TRawImage;102 BitmapHandle, MaskHandle: HBitmap;103 CreateSuccess: boolean;104 begin105 if (AHeight = 0) or (AWidth = 0) then106 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 then117 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 125 94 procedure TBGRAQtBitmap.GetImageFromCanvas(CanvasSource: TCanvas; x, y: integer); 126 95 var … … 144 113 SrcY := y + Ofs.Y; 145 114 146 {$warning QT: recheck this}147 115 if (dcSource.vImage <> nil) and (dcSource.vImage.Handle <> nil) then 148 116 begin … … 157 125 end; 158 126 159 (*160 gdk_window_copy_area(dcDest.Drawable, dcDest.GC, 0, 0, dcSource.Drawable,161 SrcX, SrcY, Width, Height);162 *)163 127 LoadFromRawImage(bmp.RawImage, 255, True); 164 128 bmp.Free;
Note:
See TracChangeset
for help on using the changeset viewer.