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

Langage Delphi Discussion :

Fonctions graphiques


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 22
    Points
    22
    Par défaut Fonctions graphiques
    Bonjour,

    Je suis en train d'essayer de porter sous Delphi tout un tas de routines graphiques que j'avais écrites en ASM pour Turbo Pascal. Et là, je suis en train de bloquer sur un truc tout bête : le WaitForRetrace qui permet d'attendre que le balayage vertical de l'écran a été effectué avant d'afficher quelquechose de nouveau. Mes procédures en ASM ne marchent bien évidemment pas : différences d'adresses entre le DOS et Windows.

    Quelqu'un a-t-il une procédure WaitForRetrace adaptée à Windows ?

    Merci.

  2. #2
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    le principe de Windows c'est que tu n'accèdes pas au hardware... c'est plus le DOS...
    Et si parfois il est nécessaire de le faire pour des raisons de vitesse, notamment pour les graphismes, il faut passer par des drivers ou plus simplement par des framework étudiés pour comme DirectX.
    Donc pas de wait for retrace dans les API Windows, et pas d'accès direct et facile à la carte vidéo, et heureusement :-)

    Je pense que ce que tu fais est un bon exercice de programmation, mais côté fonctionnel laisse tomber, tu essayes de brosser dans le sens contraire du poil de Windows :-)

  3. #3
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Tiens ? ca sent le démomaker

    J'ai abandonné l'idée de porter mes prod graphiques Delphi/C contenant de l'assembleur vers Delphi. Car qui dit ASM, dit, vouloir optimiser au plus près de la machine, et les temps ont bien changés !

    J'ai eu lun probleme similaire, mais c'était pour la modification
    Tick horloge du Dos pour doser mes fréquence image correctement. Windows, pas content.

    En plus, la plupart des fonctions graphiques, ligne, surfaces, volumes etc... sont déjà codées en beaucoup plus rapide sous OpenGL ou DirectX.
    Alors... snif...
    Il vaut parfois mieux résoudre à considérer ce code comme un bon souvenir.

    Quand au WaitRetrace, il me semble bien qu'il est implémenté dans directX et OpenGL.

    Bon courage en tout cas !
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par TicTacToe
    Tiens ? ca sent le démomaker
    Il fut un temps...

    Citation Envoyé par TicTacToe
    Quand au WaitRetrace, il me semble bien qu'il est implémenté dans directX et OpenGL.
    Je vais regarder de plus près... Je n'ai pas encore trouvé la fonction dans DirectX (ce que j'utilise actuellement). Je ne bosse pas avec OpenGL, ça me semble plus lourd à implémenter dans Delphi sur des machines Windows... Mais je peux me tromper !

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut

    tu te trompe
    opengl est une librairie non objet

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    OpenGL pas objet ? ;-)

    Depuis quelques jours, je teste la VCL GLScene, et ça me paraît suffisamment objet ! (Bon, je sais, c'est pas de l'OpenGL pur... Mais ça a l'air d'être bien codé et ça a aussi l'air de marcher correctement !)

    Ceci dit, j'ai bien trouvé l'équivalent de WaitForRetrace sous OpenGL. Et j'ai même trouvé une fonction VSync dans les paramètres DirectX de ma carte graphique : mais ce sont des paramètres généraux, qui prennent en compte les paramètres de chaque application. Ce qui me ramène à mon premier problème : je n'arrive pas à modifier les paramètres de mon application, et donc je n'ai pas de VSync...

    ...Ce qui est génant pour une application temps réel de traitement visuel du son... ;-)

    Edit : J'apporte une précision : les problèmes de synchronisation n'interviennent que lorsque je décale un HDC en mémoire pour le faire bouger (pas de problème si je copie un HDC mémoire vers mon HDC écran directement)... Ce qui me rappelle que je vais peut-être tenter un double-buffering...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Up !

    Le Double-buffering ne marche pas !

    Une solution ?

    Je suis en train d'essayer de sortir mon Soft de lecture "DVD, Films, Musiques", en incluant mes propres effets et aussi ceux de WinAMP...

    ...Le tout en Open Source...

Discussions similaires

  1. Liste des fonctions graphiques souhaitées
    Par jdsetls dans le forum WinDev
    Réponses: 0
    Dernier message: 16/05/2014, 04h40
  2. Subplot pour fonction graphique
    Par chris78200 dans le forum MATLAB
    Réponses: 3
    Dernier message: 14/01/2011, 12h14
  3. Représentation de fonctions graphiquement
    Par Amal4u dans le forum MATLAB
    Réponses: 15
    Dernier message: 05/12/2007, 15h55
  4. graphique qui varie en fonction d'une combo box
    Par decour dans le forum Access
    Réponses: 2
    Dernier message: 13/10/2005, 13h52
  5. Fonctions graphique.
    Par castaka dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/04/2005, 17h06

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