Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra] Texture bearbeiten (https://www.delphipraxis.net/124698-%5Bandorra%5D-texture-bearbeiten.html)

EarlyBird 23. Nov 2008 16:42


[Andorra] Texture bearbeiten
 
Hallo,
kann ich eine Textur in Andorra2D verändern?
Ich lade eine bmp Datei als Textur in ein TadImage.

Kann ich auf diese Textur:
- Text schreiben
- ein Rectangle zeichnen
- usw...

Wenn ja, wie?

Ich weiß dass ich die Textur mit SaveToGraphic in ein Tbitmap speichern kann, dann das Bitmap ändere und anschließend wieder lade.
Das scheint mir aber recht umständlich und zeitaufwendig.

Ich denke dass es doch eine bessere Möglichkeit gibt!?!?

Danke
Gruß
EarlyBird

igel457 23. Nov 2008 16:43

Re: [Andorra] Texture bearbeiten
 
Du kannst ein TAdTextureSurface erstellen und darauf wie auf jedes TAdDraw malen.

EarlyBird 23. Nov 2008 16:52

Re: [Andorra] Texture bearbeiten
 
Zitat:

Zitat von igel457
Du kannst ein TAdTextureSurface erstellen und darauf wie auf jedes TAdDraw malen.

Danke für die super schnelle Antwort.

Bleibt denn das "gemalte" im Speicher erhalten?
Oder muss ich bei jedem Frame neu malen?

Kann ich dann diese geänderte Textur als bmp speichern?

igel457 23. Nov 2008 19:07

Re: [Andorra] Texture bearbeiten
 
Zitat:

Zitat von EarlyBird
Bleibt denn das "gemalte" im Speicher erhalten?

Ja.
Zitat:

Zitat von EarlyBird
Kann ich dann diese geänderte Textur als bmp speichern?

Ja.

EarlyBird 23. Nov 2008 19:44

Re: [Andorra] Texture bearbeiten
 
Kannst du mir bitte noch ein bischen auf die Sprünge helfen!?!?

Kannst Du mir ein kurzes Beispiel zeigen wie ich die bmp Texttur in das TAdTextureSurface lade.
Und wie ich es anschliessend wieder als bmp speichern kann.

LoadGraphicFromFile gibt es anscheinend nicht.

Besten dank für Deine Mühe

igel457 23. Nov 2008 21:18

Re: [Andorra] Texture bearbeiten
 
Du kannst keine Grafiken in das Surface laden - aber du kannst eine Grafik auf das Surface zeichnen.

EarlyBird 24. Nov 2008 09:27

Re: [Andorra] Texture bearbeiten
 
Zitat:

Zitat von igel457
Du kannst keine Grafiken in das Surface laden - aber du kannst eine Grafik auf das Surface zeichnen.

Danke für den Tip.

Sind die TadCanvas Zeichenfunktionen eigendlich schneller wie die Tcanvas Zeichenfunktionen?

Ich benötige nur rectangle lineto und Textout

Wobei ich den Text sowohl horizontal als auch vertikal ausgeben muss.


Wenn TadCanvas nicht schneller ist würde ich die Texturen weiterhin mit Tcanvas erstellen und dann als Textur in ein Sprite laden.
Oder habe ich dann durch das Laden der Textur wieder einen Flaschenhals geschaffen?

igel457 24. Nov 2008 15:53

Re: [Andorra] Texture bearbeiten
 
Das Zeichnen auf eine Rendertargettextur mit dem TAdCanvas sollte definitiv schneller sein als das zeichnen mit TCanvas auf ein BMP und dieses dann in eine Textur zu laden. Ersteres findest schließlich direkt auf der Grafikkarte statt.

Besonders wenn du den Inhalt oft wechselst, ist die erste Variante besser - Das schicken der Daten von der GDI (TCanvas) an die Grafikkarte benötigt schon seine Zeit.

EarlyBird 24. Nov 2008 17:07

Re: [Andorra] Texture bearbeiten
 
Danke für die Info.

Ich werde es wohl neu schreiben mit TadCanvas.
Ist auch nicht so das Problem.

Nur habe ich noch nichts gefunden den Text vertikal auszurichten.
Gibt es eine Möglichkeit einen vertikalen Font zu erstellen??
(mit der Tcanvas habe ich es so gelöst).

oder muss ich den Text auf ein extra Tadcanvas zeichnen und dann mit DrawRotate in mein "ZielCanvas" einfügen!?!?

(Deine Engine ist übrigens Genial
Gibt es so was wie eine Roadmap.
Ein Vertikaler Font wäre doch eine prima Idee :thumb: )


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