Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Andorra 2D - Image Flip (https://www.delphipraxis.net/156376-andorra-2d-image-flip.html)

Gruber_Hans_12345 30. Nov 2010 08:22

Andorra 2D - Image Flip
 
Hallo

noch ein Frage zu Andorra :

Wie kann ich ein Bild flippen? Ich möchte das es sich dreht, sozusagen um die Z-Achse

Ich würde es ja mit den Transform Vektoren probieren, aber mein Image oder die Draw funktion besitzen diese nicht?
Wie mache ich sowas nun?

Delphi-Quellcode:
    tempImage  := AdImageList.Find('test');
    //tempImage.
    tempImage.Filter := atAnisotropic;
    tempImage.//StretchDraw(AdDraw, AdRect(200, 100, 200+931 div 2, 100+776 div 2), 0);
            DrawEx(AdDraw, AdRect(0,0,931,776), AdRect(200, 100, 200+931 div 2, 100+776 div 2)
                , 0,0,0,255,bmAlpha);

Gruber_Hans_12345 30. Nov 2010 12:32

AW: Andorra 2D - Image Flip
 
Also das Flip habe ich mal so "lala" gemacht (einfach die Breite geändert)

aber was mich interessieren würde, es muß doch möglich sein, das Image (und eventuell andere sachen) in einen Bereich zu zeichnen und erst DIESEN dann auf den AdDraw zu zeichnen (gemeinsam)
Also eine Art Temp Bitmap?

[edit]
hab gerade was gefunden aber komischer weise funktioniert das in einer Terminalsitzung nicht :( mein delphi läuft immer in ner Terminalsitzung ...
Delphi-Quellcode:
    if AdDraw.Initialize then begin
        AdSurface := TAdTextureSurface.Create(AdDraw); <<< da gibts ne Schutzverletzung, aber nurin der Terminalsitzung ...

igel457 30. Nov 2010 15:42

AW: Andorra 2D - Image Flip
 
In deiner Terminalsitzung funktioniert das vermutlich nicht, da TAdSurface intern ein FrameBufferObject verwendet, welches vermutlich nicht vom Softwarerenderer der Terminalsitzung emuliert wird.

Um ein Bild zu Flippen solltest du sonst einfach nur die X1/X2 bzw. Y1/Y2 Koordinaten vertauschen müssen. Stelle aber sicher, dass "aoCulling" nicht in den Einstellungen des Surfaces (also des TAdDraws oder des TAdSurface) gesetzt ist.

Siehe dazu auch: http://andorracommons.sourceforge.ne...tion#aoCulling

Gruber_Hans_12345 30. Nov 2010 16:12

AW: Andorra 2D - Image Flip
 
Ja danke, das mit dem drehen per X koordinaten funktioniert schon.

Im Moment mache ich es so

erzeuge ein TadSurface
zeichne da das hauptimage rein
zeichne dann ein paar kleine Images drauf

und das TadSurface drehe ich dann auf da AdDraw objekt.

Kann ich sowas auch Ohne TadSurface machen? (Wegen meiner Terminalsitzung?)

igel457 30. Nov 2010 17:03

AW: Andorra 2D - Image Flip
 
Das einzige, das mir einfällt ist das setzen des Scissor-Rectangles (TAdDraw.Scene.Viewport) und das entsprechende Anpassen der View-Matrix (TAdDraw.Scene.ViewMatrix). Das TAdSurface ist natürlich die sauberste Lösung, auch wenn sie entsprechende Hardware (voll Direct3D 9 kompatible) voraussetzt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03: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