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 :

FMX.PathData, Utilisation de GDIPlus


Sujet :

Composants FMX Delphi

  1. #1
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 166
    Points : 41 348
    Points
    41 348
    Billets dans le blog
    63
    Par défaut FMX.PathData, Utilisation de GDIPlus
    Bonjour, et tant qu'il est encore temps meilleurs vœux pour 2020 (notez que cela pourrait s'écrire vin vin )

    En ce début d'année, je me bagarre encore avec quelques points après avoir testé diverses solutions toute faites.
    Les étoiles me posent des soucis en FMX et quelquefois en VCL !
    Nom : FMXetoile.PNG
Affichages : 367
Taille : 7,5 Ko

    Selon les différentes bibliothèques testées (TMS FNC UI, RiverSoftAVG, DelphiSVG) toutes me font cette même lacune en FMX seule une solution OpenSource, trouvée sur GitHub, fourni une étoile "pleine"
    en FMX. La différence, semble être l'initialisation de GDIPlus par cette dernière. Une plongée plus profonde dans les sources Embarcadero me mène dans les mêmes perspectives.

    Ma question : qu'est-ce que cette bestiole ! Bon j'en ai bien une vague idée mais j'aimerai avoir un topo plus précis, les diverses solutions et comment cela peut se répercuter pour les divers OS cibles. Comment savoir ce qui est réellement utilisé, comment cela s'initialise vraiment, quelles alternatives, etc. ?
      0  0

  2. #2
    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 : 55
    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 457
    Points
    28 457
    Par défaut
    GDIPlus est apparue avec XP je crois, c'est une API 2D plus performante que GDI qui gère l'antialiasing et l'aphablending notamment ...mais elle a depuis été abandonnée au profit du Direct2D si je ne m'abuse

    pour ton étoile, ça ressemble tout simplement à un problème de FillMode

    https://docs.microsoft.com/en-us/win...enums-fillmode

    https://purebasic.developpez.com/tut...llPolygon.html

    Nom : GdipFillPolygon_1.gif
Affichages : 314
Taille : 4,7 Ko
      0  0

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 166
    Points : 41 348
    Points
    41 348
    Billets dans le blog
    63
    Par défaut
    Question subsidiaire, si je lis ceci
    Firemonkey already uses GDI+ and Direct2D for all drawing operations.
    If you want to force to use GDI+ instead of Direct2D just set
    GlobaluseDirect2d to false. Firemonkey will use GDI+ context
    Il semblerait donc que je n'ai qu'à mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GlobaluseDirect2d:=False
    dans mon programme, ok, facile mais quand il s'agit d'image vectorielle préchargée dans le dfm ? Y a-t-il moyen que l'EDI prenne en compte cette directive au moment du design ?
      0  0

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 166
    Points : 41 348
    Points
    41 348
    Billets dans le blog
    63
    Par défaut
    Bonjour Paul, nos posts se sont croisés.
    Citation Envoyé par Paul TOTH Voir le message
    pour ton étoile, ça ressemble tout simplement à un problème de FillMode
    Oui, il s'agit bien du fillmode ou plus exactement de fill-rule par défaut non-zero
    Ce qui est étrange (avec les biblios citées) c'est qu'en VCL ce fillmode est correct ce n'est qu'en FMX que je me retrouve avec un even-odd
    C'est pour cela que je tente de forcer en GDI+ du moins est-ce ma piste actuelle. Le dernier test que j'ai fait avec https://github.com/ekot1/DelphiSVG
    Nom : FMXetoile.PNG
Affichages : 339
Taille : 13,6 Ko
    semble confirmer cette hypothèse (il m'a fallu quand même modifier légèrement le programme pour afficher le fichier sélectionné)
    mais, et c'est là le sujet de ma question subsidiaire, si le fichier est chargé au design, je me retrouve avec le "trou"

    Le problème c'est que si je fais un bilan chacune des bibliothèques citées à ses points faibles pour l'instant par ordre de préférences je mettrai RiverSoftAVG en pôle position, suivie de DelphiSVG au puis TMS FNC (plusieurs problèmes avec les rotations et les groupes) et pour finir le dépôt github (problème avec les groupes mais remplissage de l'étoile au runtime) .
    Il faut dire que mon jeux d'essai est "sauvage" et plus complexe que ce qui est proposé puisque je pioche, au hasard, divers drapeaux nationaux

    Je sais que la demande de correction sur ce remplissage a été faite sur le portail qualité (bien que je ne la retrouve pas je l'ai vue un jour)
      0  0

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 166
    Points : 41 348
    Points
    41 348
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    La piste GDIPlus est une fausse piste
      0  0

Discussions similaires

  1. FMX.PathData, rotation d'un élément
    Par SergioMaster dans le forum Composants FMX
    Réponses: 14
    Dernier message: 20/12/2019, 11h10
  2. FMX.PathData, encore un bug rigolo
    Par SergioMaster dans le forum Composants FMX
    Réponses: 8
    Dernier message: 16/12/2019, 07h59
  3. [Android] [X10-Fmx-Android]Utilisation des images avec application android
    Par mario9 dans le forum Composants FMX
    Réponses: 2
    Dernier message: 24/12/2015, 15h58
  4. [Toutes versions] utilisation de l'imagelistdu module classe gdiplus
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/06/2011, 16h32
  5. Composant utilisant GDIPlus dans un package
    Par BeeB1 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 13/01/2011, 07h50

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