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]