Bonjour,
J'essaie d'utiliser BGRAbitmap avec Delphi XE7pro (VCL).
J'ai récupéré le dépot BGRAbitmapDelphi sur GitHub.
Faut-il installer les .dpk (ou autres) fournis ?
Merci d'avance pour vos réponses.
BDE78
Bonjour,
J'essaie d'utiliser BGRAbitmap avec Delphi XE7pro (VCL).
J'ai récupéré le dépot BGRAbitmapDelphi sur GitHub.
Faut-il installer les .dpk (ou autres) fournis ?
Merci d'avance pour vos réponses.
BDE78
Cela dépend le besoin,
Pour faciliter l'utilisation des Controls de bgracontrols qui accompage BGRABitmap, l'installation du DPK permet l'ajout à la palette même si ce n'est pas indispensable si l'on fait une allocation en RunTime.
Définir les chemins de bibliothèque sera la première chose à faire et puis lire le README.md ça serait bien !!!
Merci pour votre retour,
J'ai bien lu le readme.md => pas d'indication sur l'installation/utilisation avec Delphi, et mes recherches sur les forums ne traitent que de l'utilisation avec Lazarus !
Je ne compte l'utiliser qu'en runtime.
j'ai intégré les 1ères déclarations d'unités dans le uses : BRGAbitmaptypes et BGRAbitmap, et compilé...
il faut compiler en 32b et non pas en 64b !
=> y-a-t-il un moyen "simple et rapide" de rendre compatibles les routines de BRGAbitmap avec une compilation en 64b !
BDE78
Rien que la vision d'assembleur annonce de mauvaise chose
Pourquoi ne pas créer un petit programme 32Bits qui ne fait que la partie graphique via échange de ligne de commande, TCP IP, Fichiers ... utilisé par un programme 64Bits
Sinon, le code contient de {$IFDEF CPU64} laissant à penser que c'est supporté.
Pourquoi n'utilises-tu pas Direct2D plutôt ?
C'était déjà présent dans XE7.
euh je ne vois pas de CPU64 dans le code https://github.com/bgrabitmap/BGRABi...search?q=CPU64
les Bitmaps sont 32Bits, mais ça n'a rien à voir avec la CPU
@andnotor : j'ai besoin de gérer la transparence, de dessiner des "textes inclinés",...
@shailLeTroll et @Paul Toth :
Quand je compile en 64b :
1ère erreur : [dcc64 Erreur] FPReadJPEG.pas(381): E1012 L'expression constante dépasse les limites de sous-étendue
sur la ligne "FInfo.output_scanline := $ffffff;" déclarer en "cardinal" !
et quand je "force brutalement" "FInfo.output_scanline := $ffff;"
ça génère des erreurs sur les parties "assembleur" des fonctions !!!
c'est mal parti...
FPReadJPEG ne fait pas parti de BGRABitmap, c'est pour ça
sinon j'ai publié un code pour faire des rotations de bitmap
https://github.com/tothpaul/DelphiTi...ster/DrawCards
et pour la transparence tu as DrawTransparentBitmap dans l'unité Vcl.GraphUtil
On s'en doutait un peu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 uses Vcl.Direct2D, WinApi.D2D1; procedure TForm1.FormPaint(Sender: TObject); var D2DCanvas :TDirect2DCanvas; Brush :ID2D1SolidColorBrush; Matrix :TD2DMatrix3x2F; i :Integer; begin D2DCanvas := TDirect2DCanvas.Create(Canvas, ClientRect); try D2DCanvas.BeginDraw; D2DCanvas.RenderTarget.CreateSolidColorBrush(D2D1ColorF(clRed, 0.2), nil, Brush); Matrix := TD2DMatrix3X2F.Rotation(-30, 250, 250); D2DCanvas.RenderTarget.SetTransform(Matrix); D2DCanvas.TextOut(150, 200, 'Andnotor'); for i := 1 to 4 do begin Matrix := TD2DMatrix3X2F.Rotation(i *10, 250, 250); D2DCanvas.RenderTarget.SetTransform(Matrix); D2DCanvas.RenderTarget.FillRectangle(D2D1RectF(100, 100, 400, 400), Brush); end; D2DCanvas.EndDraw; finally D2DCanvas.Free; end; end;
C'est bon à savoir que la recherche ne fonctionne pas : https://github.com/bgrabitmap/BGRABi.../bgratypes.pas, ligne 74 pour la version non FPC
Bonjour,
Merci pour vos retours.
Y-a plus qu'à...
BDE78
Bonjour,
BGRABitmap à la base fonctionne avec les CPU 64bit mais en ce qui concerne du portage pour Delphi, je ne sais pas ce qu'il en est. En tout cas il date de 4 ans. N'ayant pas Delphi moi-même, je n'ai pas essayé de rendre la base de code compatible avec Delphi, même si j'imagine qu'on pourrait arriver à quelque chose avec des directives.
C'est cool qu'on puisse utiliser Direct2D comme ça dans Delphi.
Partager