utilisation de direct Draw... [DElphi 6] - Programmation
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
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 ?
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 ?
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...
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...
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
[edtdd]--Message édité par Moustaaki--[/edtdd]
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]
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 !