[DElphi 6] utilisation de direct Draw...

utilisation de direct Draw... [DElphi 6] - Programmation

Marsh Posté le 24-01-2002 à 17:57:23    

est-ce que quelqu'un a déjà testé les bibliothèques directX pour delphi 6 ? qu'est ce que ça donne ? est-ce que c'est facile à utiliser ?
 
j'aimerais l'utiliser dans ce cadre là :
dessin colonne par colonne d'un canevas de 512*200 pixels (soit affichage de 200 pixels à chaque fois).
est-ce que l'utilisation de directX pourrais accelerer l'affichage même dans ce cas-là ?
l'affichage doit se faire suffisament rapidement puisque le canevas entier doit être dessiné de façon fluide en 4 secondes... pour l'instant, en utilisant simplement TPaintBox et TPaintBox.canevas.draw(...), c'est vraiment pas terrible ! l'affichage est tout sacadé et il faut bien 35 secondes pour remplir le canevas !

Reply

Marsh Posté le 24-01-2002 à 17:57:23   

Reply

Marsh Posté le 24-01-2002 à 19:13:40    

Moustaaki a écrit a écrit :

est-ce que quelqu'un a déjà testé les bibliothèques directX pour delphi 6 ? qu'est ce que ça donne ? est-ce que c'est facile à utiliser ?
 
j'aimerais l'utiliser dans ce cadre là :
dessin colonne par colonne d'un canevas de 512*200 pixels (soit affichage de 200 pixels à chaque fois).
est-ce que l'utilisation de directX pourrais accelerer l'affichage même dans ce cas-là ?
l'affichage doit se faire suffisament rapidement puisque le canevas entier doit être dessiné de façon fluide en 4 secondes... pour l'instant, en utilisant simplement TPaintBox et TPaintBox.canevas.draw(...), c'est vraiment pas terrible ! l'affichage est tout sacadé et il faut bien 35 secondes pour remplir le canevas !  




j'ai fais mon projet l'annee dernier avec delphi 5 et bah c pas bien complique, je suppose qu'avec delphi 6 c pareil


---------------
email : otb82@hotmail.com
Reply

Marsh Posté le 25-01-2002 à 09:44:57    

otb82 a écrit a écrit :

 
j'ai fais mon projet l'annee dernier avec delphi 5 et bah c pas bien complique, je suppose qu'avec delphi 6 c pareil  




 
ok ! et t'es tu aidé de tutorial ou de trucs comme ça ? où trouver quelques exemples d'utilisation de directX avec delphi ?

Reply

Marsh Posté le 25-01-2002 à 10:00:11    

et dans ce que je veux faire, tu crois que ça va vraiment accéléré l'affichage ?

Reply

Marsh Posté le 25-01-2002 à 11:38:51    

déjà pour rendre plus fluide tu devrais dessiner dans une bitmap et ne balancer sur l'écran qu'une fois l'affichage terminé.
 
si tu pouvais poster une partie du code que tu utilises, il y a peut-être des optimisations à faire avant de passer à directx car la mesure me semble bien radicale...

Reply

Marsh Posté le 25-01-2002 à 11:38:50    

déjà pour rendre plus fluide tu devrais dessiner dans une bitmap et ne balancer sur l'écran qu'une fois l'affichage terminé.
 
si tu pouvais poster une partie du code que tu utilises, il y a peut-être des optimisations à faire avant de passer à directx car la mesure me semble bien radicale...

Reply

Marsh Posté le 25-01-2002 à 11:46:33    

Taureau a écrit a écrit :

déjà pour rendre plus fluide tu devrais dessiner dans une bitmap et ne balancer sur l'écran qu'une fois l'affichage terminé.
 
si tu pouvais poster une partie du code que tu utilises, il y a peut-être des optimisations à faire avant de passer à directx car la mesure me semble bien radicale...  




 
non, ça ne corresponderai pas au besoin :  
le but est de faire un affichage en temps réel d'une courbe. c'est pour du matériel médicale (doppler si vous voyez ce que c'est), la courbe doit s'afficher au fûr et à mesure qu'on prend les mesures.  
 
j'te balance le code si tu veux :
 
procedure TSpectrumDisplayer.displayColumnFromBmp(bmp: TBitmap);
begin
   bmpSpectre.Canvas.Draw(CurrentX, 0, bmp);
// on affiche qu'une colonne sur deux pour accélérer un peu
   if currentX/2 = round(currentX/2)  then
    self.Canvas.Draw(0,0,bmpSpectre);
 
   currentX := currentX +1;
   if currentX > SPECTRUM_WIDTH then
   begin
    specEntier := true;
      currentX := 0;
   end;
end;
 
avec :
bmp : bitmap 1*200 pixels
bmpSpectre : bitmap 512*200
TSpectrumDisplayer = class(TPaintBox);
 
 
pendant que vous y êtes, si vous pouviez me trouver l'équivalent directDraw, ça pourrait être sympa  :jap:

 

[edtdd]--Message édité par Moustaaki--[/edtdd]

Reply

Marsh Posté le 25-01-2002 à 11:49:48    

ah, au fait, TSpectrumDisplayer hérite de TPaintBox... si ça peut vous servir...
 
autre chose : si on pouvait afficher colonne par colonne rapidement au lieu d'une colonne sur 2, ça serait mieux...

 

[edtdd]--Message édité par Moustaaki--[/edtdd]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed