IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

Centre du Gradient , utilisation de GlobalUseGPUCanvas ou SKIA


Sujet :

Composants FMX Delphi

  1. #21
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour Paul,

    Ta réponse me laisse perplexe, cela dit hier je n'étais même plus capable de réfléchir clairement lorsque je l'ai lue trop fatigué après ma sénace de kiné.

    Plusieurs points
    - La version que j'avais déployée n'était pas du debug mais une release
    - la version sans utilisation de SKIA s'exécute (mal, puisque bogue pour le déplacement du centre du radiant)

    l'appli plante avec un Range check error,
    Je n'ai même pas ça j'ai tout simplment rien du tout
    il faut désactiver l'option pour que ça fonctionne
    je ne suis pas sûr d'avoir compris où ? (pas encore bien remis malgrè, presque, mon tour de cadran)
    mais surtout que j'ai "normalement" une version release

    je vais :
    - enlever le paquet zlib1g-dev pour récupérer le message complet histoire d'être plus clair sur mon post de 9h30 d'hier
    - retenter ensuite en debug
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  2. #22
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    alors c'est un peu vieux, mais si mon souvenir est bon, il faut activer le verbose (-v) sur PAServer pour voir l'erreur

    le symptôme était que quand je démarre l'appli en mode pas à pas, elle s'arrête dès le début

    ah j'ai retrouvé mon bug

    https://quality.embarcadero.com/browse/RSP-37531

    sur une simple fiche FMX, le fait de mettre un Viewport3D provoque le plantage si la vérification de débordement est activée

    donc voilà ça n'a peut-être rien à voir en fait
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #23
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Hum, merci Paul, je pense que c'est bien un problème du même acabit.
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #24
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Alors, suite de mes tests, je n'ai pas pu faire fonctionner SKIA avec une version Ubuntu 18.04 par contre avec la version 20.4 c'est ok.
    SKIA fonctionne mais pour mon composant Diode cela n'a rien changé, le centre du gradient reste définitivement bloqué au centre, j'en conclu que c'est bien un problème Delphi Linux.

    Cette version 20.4 je n'ai pas pu la faire fonctionner avec WSL et XCFE4 mais c'est un "détail", rageant !
    Cela va me pousser à installer une VM Ubuntu chose que j'avais pour l'instant procrastinée.
    Hier soir je me suis trompé en téléchargeant Ubuntu c'est la 22.04 que j'ai chargée , la question, avant de reprendre un nouveau chargement, est-ce que 22.04 est "déjà" supportée ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #25
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Suite de mes investigations.

    Tout d'abord je me suis penché sur le dessin
    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
    procedure TForm1.Button1Click(Sender: TObject);
    var
      MyRect: TRectF;
      aBrush : TBrush;
    begin
      Image1.Bitmap.SetSize(Round(Image1.Width), Round(Image1.Height));
      Image1.Bitmap.Clear(TAlphaColors.Null);
      // sets the circumscribed rectangle of the ellipse
      MyRect := TRectF.Create(5, 5, 120, 120);
      // draws the ellipse on the canvas
      Image1.Bitmap.Canvas.BeginScene;
     
     
      Image1.Bitmap.Canvas.DrawEllipse(MyRect, 40);
      ABrush:=TBrush.Create(TBrushKind.Gradient,TalphaColors.red);
      try
        ABrush.Gradient.Color:=TalphaColors.red;
        ABrush.Gradient.Color1:=TalphaColors.black;
        ABrush.Gradient.Style:=TGradientStyle.Radial;
    // modification du centre de rotation 
    //    Abrush.Gradient.RadialTransform.RotationCenter.X:=0.7;
    //    Abrush.Gradient.RadialTransform.RotationCenter.Y:=0.4;
    // ou modification de la position 
        Abrush.Gradient.RadialTransform.Position.X:=50;
        Abrush.Gradient.RadialTransform.Position.Y:=10;
     
        Image1.Bitmap.Canvas.Fill:=ABrush;
      finally
        Abrush.Free;
      end;
      Image1.Bitmap.Canvas.FillEllipse(MyRect, 40);
      Image1.Bitmap.Canvas.EndScene;
    end;
    Nom : Capture.PNG
Affichages : 104
Taille : 84,7 Ko
    résultat, sous linux (écran à gauche) rien ne fonctionne contraitement au résultat attendu windows (écran droite)
    je n'ai pas pris d'image Android, s'il y a bien "déplacement" du centre du gardient il y a toujours le point blanc au centre
    Conclusion : clairement un bogue Delphi que SKIA corrige, du moins pour Android

    étape suivante
    ça y est j'ai réussi à utiliser wsl avec Ubuntu 20.04 et même installé une VM (sauf que je ne sais pas quelle adresse configurer en IP donc, là, je suis coincé, ce serait un bon truc d'avoir l'ip au moment du lancement de paserver)

    Donc avec WSL et XCFE4
    Nom : Capture_1.PNG
Affichages : 92
Taille : 98,7 Ko
    le déplacement du centre du gradient ne se fait pas, et après tests sur le premier enregistrement le passage à l'enregistrement suivant produit une belle erreur que Paul reconnaitra
    Quant à mon test du haut (que j'ai modifié pour bien montrer que SKIA il y avait) même souci
    Nom : Capture_2.PNG
Affichages : 87
Taille : 36,3 Ko
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #26
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    en fait c'est un bug FMX

    quand tu regardes le code de TCanvasHelper.GradientEllipse de FMX.Canvas.GPU.Helpers, le centre ne tient pas compte de RadialTransform

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      Center.X := (ARect.Left + ARect.Right) / 2.0;
      Center.Y := (ARect.Top + ARect.Bottom) / 2.0;
    peu importe le moteur de rendu, c'est FMX qui calcule la forme à dessiner, et il place le centre ... au milieu
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. [VB6] mettre en commentaires...
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/04/2004, 15h15
  2. Mettre un popup menu invisible ??
    Par Alberto dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/12/2002, 09h02
  3. [VB6] - Mettre un morceau de ligne en commentaire
    Par inotna2099 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/11/2002, 11h03
  4. Comment faire pour mettre l'ecran en veille ?
    Par March' dans le forum MFC
    Réponses: 6
    Dernier message: 29/08/2002, 14h25
  5. [langage] Problème de taille de fichier à mettre dans
    Par And_the_problem_is dans le forum Langage
    Réponses: 10
    Dernier message: 13/08/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo