Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Coverflow VCL Klasse (https://www.delphipraxis.net/107151-coverflow-vcl-klasse.html)

Peter666 23. Jan 2008 12:19


Coverflow VCL Klasse
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi, ich habe mal folgendes Projekt http://pictureflow.googlecode.com/sv...ictureflow.cpp übersetzt und herausgekommen ist eine VCL Klasse die theoretisch funktionieren müsste. Wie das aber so ist, mit der Theorie und der Praxis geht es oftmals nicht einher. Da ich seit heute morgen um 6 an dem Code sitze und den/die Fehler nicht finde, poste ich die Übersetzung mal - in der Hoffnung jemand erbarmt sich und findet die Ursache.

Peter

uligerhardt 23. Jan 2008 13:39

Re: Coverflow VCL Klasse
 
Sag doch mal, was nicht geht - am besten mit Beispielprojektchen.

Und beseitige am besten noch die Handvoll Compilerwarnungen in deiner Unit. :mrgreen:

Peter666 23. Jan 2008 16:41

Re: Coverflow VCL Klasse
 
Warnungen gibt es keine, das Problem ist das

function fdiv(num, den: PFReal): PFReal;
var p, q, r: Longword;
begin
p := longword(num) shl (PFREAL_SHIFT * 2);
q := p div longword(den);
r := q shr PFREAL_SHIFT;

result := r;
end;


bei:

xi := qMax(0, (w * PFREAL_ONE div 2) + fdiv(xs * h, dist + ys) shr PFREAL_SHIFT)

Einen völlig abstrusen Wert liefert und dementsprechend nichts gerendered wird. Die Renderslide macht hierbei die meiste Arbeit und just da will es nicht :(

uligerhardt 23. Jan 2008 17:08

Re: Coverflow VCL Klasse
 
Zitat:

Zitat von Peter666
Warnungen gibt es keine,

Unter Delphi 2006 schon - der Compiler mäkelt an der Groß-/Kleinschreibung deiner überladenen Routinen rum (z.B. hast du create und destroy anstelle von Create und Destroy). Aber das dürfte kaum was mit deinem Problem zu tun haben. :-D


Zitat:

Zitat von Peter666
das Problem ist das

function fdiv(num, den: PFReal): PFReal;
var p, q, r: Longword;
begin
p := longword(num) shl (PFREAL_SHIFT * 2);
q := p div longword(den);
r := q shr PFREAL_SHIFT;

result := r;
end;


bei:

xi := qMax(0, (w * PFREAL_ONE div 2) + fdiv(xs * h, dist + ys) shr PFREAL_SHIFT)

Einen völlig abstrusen Wert liefert und dementsprechend nichts gerendered wird. Die Renderslide macht hierbei die meiste Arbeit und just da will es nicht :(

Im C++-Original wird auf long long gecastet - das sind vermutlich 64 Bit. Kannst ja mal versuchen, ob's mit Int64 statt Longword besser geht.

HTH,
Uli.

Brainshock 27. Jan 2008 20:24

Re: Coverflow VCL Klasse
 
Moin,

hat sich schon was getan bei deinem Coverflow? Das Ding würde mich ja auch mal interessieren.

Gruß,

Peter666 24. Feb 2008 12:21

Re: Coverflow VCL Klasse
 
Sorry für die Verzögerung. Ja das ganze lief problemlos - ich hab nur einiges umstellen müssen. Leider ist mir der Code abhanden gekommen, aber wenn du anstelle von Bitmaps die Daten in ein PByte-Array schreibst und Int64 nutzt anstelle von LongLong geht das recht schnell. Ich hatte sogar bei ner Auflösung von 1280x1024 mit 128x128 Pixel großen Covern eine Geschwindigkeit weit jenseits der 30fps.

Peter

DataCool 24. Feb 2008 19:40

Re: Coverflow VCL Klasse
 
Hi,

hat jemand die Unit schon wieder voll funktionsfähig am Start ?
Wenn ja, wäre nett wenn Sie hier gepostet wird.

Greetz Data

anro78 25. Feb 2008 07:59

Re: Coverflow VCL Klasse
 
Wäre wirklich toll, wenn hier der angepasste Code veröffentlicht wird, dann muss sich nicht jeder hinsetzen und es selbst überarbeiten, zumal eine derartige Klasse sicherlich auf viele Interessenten trifft, wenn sie erst einmal in Form einer stabilen Komponente veröffentlicht wird. Gerade der Umbau hin zu PByte-Arrays und die Datentyp-Ersetzung würde mich interessieren. Vielleicht kann Peter666 ja noch etwas von seinem Wissen preisgeben? Biiittteeee!

made in Germany 19. Mär 2008 22:34

Re: Coverflow VCL Klasse
 
kann bitte jemand den funktionierenden code posten, ich bekomm das nicht hin.
:wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz