2D Pseudo Single Surface
Übersicht

![]() |
ProfJakeehemals "DTC" / "Fabian Niemann"Betreff: 2D Pseudo Single Surface |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
bringt es irgendwelche Vorteile, wenn ich ein bild einmal lade und es dann von vielen Instanzen zeichnen lasse? Im Klartext: Ich stelle mir das so vor, dass ich ein Bild sehr oft zeichnen muss (z.B.: Units in einem RTS), da würde ich eine Klasse TUnitManager erstellen, die alle Bilder enthält. Den Units würde nur ein Pointer auf das Bild übergeben. Bringt das einen Geschwindigkeits- oder Speicherplatzvorteil? Oder optimiert die Grafikkarte das sowieso? P.S.: Bei Tiles wäre das auch sehr praktisch. |
||
- Zuletzt bearbeitet von ProfJake am So, Jun 29, 2008 11:41, insgesamt einmal bearbeitet
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein, mit Single Surface hat das nichts zu tun. Immer, wenn du ein Bild zeichnest, passiert Folgendes:
1. Die Textur ( das geladene Bild ) wird als aktive Textur eingesetzt. 2. Ein Buffer, der die 4 Eckpunkte des Bildes inklusive Farbe und Alpha enthält, wird an die Grafikkarte geschickt, damit sie das Rechteck zeichnen kann. Das ist unabhänig vom verwendeten Bild. Und genau da liegt der Nachteil. Bei Single Surface würde man nicht für jeden Aufruf von DrawImage einen neuen Buffer an die Grafikkarte schicken, sondern beispielsweise 10 Bilder, die die gleiche Textur nutzen, in einen Buffer schreiben und den zur Grafikkarte befördern, was deutlich schneller ist. So, wie Max2D aufgebaut ist, ist das aber nahezu unmöglich bzw. sinnlos. Es hat ja mal einen Buffered-D3D7-Driver gegeben, den Sibly dann aber auch wieder rausgenommen hat. |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
ProfJakeehemals "DTC" / "Fabian Niemann" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für die Erklärung.
Also wie ich mir das jetzt so zusammengereimt habe, bringt das keinen Geschwindigkeits- aber immerhin einen Speichervorteil, da das Bild ja nur einmal geladen wird, richtig? P.S.: Ich weiß schon, dass Single Surface was anderes ist, aber wie sollte ich es denn sonst nennen? [EDIT] Titel geändert. |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Genau, das Bild existiert nur einmal im Speicher und kann so oft gezeichnet werden, wie du willst.
pupil hat Folgendes geschrieben: P.S.: Ich weiß schon, dass Single Surface was anderes ist, aber wie sollte ich es denn sonst nennen?
Single Texture/Image vielleicht. ![]() |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group