Delphi-PRAXiS
Seite 21 von 26   « Erste     11192021 2223     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Andorra 2D [Ver. 0.4.5.1, 31.12.08] (https://www.delphipraxis.net/81314-andorra-2d-%5Bver-0-4-5-1-31-12-08%5D.html)

3_of_8 21. Dez 2008 22:44

Re: Andorra 2D [Ver. 0.40, 01.07.08]
 
Zitat:

Zitat von Shrek_III
Hab ich ja auch nicht vor
[...]
Naja, ich hab übrigens auch keinen C64, also 96 MB Texturen laufen unter DelphiX absolut flüssig...
...aber ich will ja nicht meckern, hab es jetzt durch Beschränkung der Textur auf max 4096 Pixel in eine Richtung auch erreicht, was ich erreichen wollte.

Das war alles auf die Idee "Textur liegt als JPG/TGA/wasauchimmer im Speicher vor", also komprimiert. Das ist eine ziemlich seltsame Idee, denn auf komprimierten Daten kann man einfach nicht effektiv arbeiten, ob das Videos sind oder Bilder oder Texte: Zum Arbeiten muss man alles dekomprimieren und am Speicherverbrauch ändert das ganze natürlich gar nichts. (Wobei es natürlich streambare Videos gibt, bei denen man nur den Teil dekomprimieren kann, den man momentan braucht, und etwas ähnliches könntest du auch für deine Bilder machen)

xZise 23. Dez 2008 23:43

Re: Andorra 2D [Ver. 0.40, 01.07.08]
 
Hallo,

ist es möglich, wenn an einer Stelle X; Y mehrere Sprites sind, auch eine Liste von Sprites zurückzubekommen?

MfG
xZise

igel457 24. Dez 2008 12:27

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Hallo,

Zitat:

Zitat von xZise
Ist es möglich, wenn an einer Stelle X; Y mehrere Sprites sind, auch eine Liste von Sprites zurückzubekommen?

Das ist zwar noch nicht direkt implementiert, sollte aber recht einfach sein: Iteriere einfach über die Sprite Liste und füge alle Sprites, die an der richtigen Stelle sind zu einer Liste hinzu.

Zitat:

Zitat von Shrek_III
Ok, mit Verkleinerung der Textur aus 4096x4096 Pixel funktioniert es schon mal... ...erster Lichtblick

Die meisten Grafikkarten unterstützen nur 2048x2048 Pixel große Texturen. Es ist relativ ineffizient, "Riesentexturen" zu laden. Die "Tilelösung" ist zwar aufwändiger zu machen, sollte aber um einiges schneller sein.

Zitat:

Zitat von 3_of_8
Eine Textur komprimiert im Speicher zu haben ist im besten Fall eine grauenhafte Performanceverschwendung

Stimmt so nicht, eine Textur, die komprimiert im Grafikspeicher liegt ist sogar schneller als unkomprimierte Texturen, da die Grafikkarte weniger Texturspeicherzugriffe benötigt. Allerdings unterstützt Andorra 2D (bis jetzt) noch keine komprimierten Texturen.

igel457 24. Dez 2008 12:39

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Version 0.4.5 erschienen
Pünktlich zu Weihnachten habe ich ein kleines "Geschenk" vorbereitet: Andorra 2D Version 0.4.5. Diese Version ist zum größten Teil eine Bugfix-Version, jedoch ist auch das eine oder andere Feature dazu gekommen.

Die wichtigsten Veränderungen im Überblick:
  • OpenGL-Modus funktioniert nun auch wieder auf älteren Grafikkarten
  • Verzerrte Texturen im DirectX-Modus wurden behoben (auf jeden Fall auf den meisten Grafikkarten)
  • Videoplayer-Komponente wurde erweitert (Acinerella-Plugin hinzugefügt, kann jetzt auch Formate wie MPEG, AVI etc. abspielen)
  • Andorra 2D goes GreenIT: Die neue "MaximumFrameRate"-Property des TAdPerformanceCounter hilft den CPU-Workload zu minimieren, Energie zu sparen und unseren Planeten zu retten.
  • Delphi 2009 Support.
  • andorra_conf.inc für zentrale Andorra 2D-Einstellungsverwaltung hinzugefügt
  • Problem mit Multicoreprozessoren und TimeGap (temporär) behoben

Eine komplette Liste gibt es hier:
http://andorra.sourceforge.net/index...ion=changelogs

Wichtig:
Wenn ihr einen AMD-Prozessor besitzt und Probleme mit der Darstellung habt, so versucht bitte in der andorra_conf.inc den "DO_NOT_USE_3DNOW" Schalter zu aktivieren (die Applikation neu erzeugen, SHIFT+STRG+F9) und benachrichtigt mich über das Problem. Wenn ihr einen AMD-Prozessor (mit 3DNow!) habt und alles funktioniert, bitte auch sagen.

Download:
http://andorra.sourceforge.net/index...tion=downloads

Viel Spaß mit der neuen Version und frohe Weihnachten,
Andreas

xZise 24. Dez 2008 13:53

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Hallo igel,
ich habe mir es erlaubt deinen ImageEditor zu überarbeiten (ein paar Ressourcenschutzblöcke, eine Möglichkeit eine andere ImageList in die aktuelle zu importieren und alle Bilder zu exportieren). Willst du den aktuellen Code haben (ich habe die nicht CVS Version)?

Zitat:

Zitat von igel457
Wichtig:
Wenn ihr einen AMD-Prozessor besitzt und Probleme mit der Darstellung habt, so versucht bitte in der andorra_conf.inc den "DO_NOT_USE_3DNOW" Schalter zu aktivieren (die Applikation neu erzeugen, SHIFT+STRG+F9) und benachrichtigt mich über das Problem. Wenn ihr einen AMD-Prozessor (mit 3DNow!) habt und alles funktioniert, bitte auch sagen.[...]

Strg+Shift+F9 compiliert die Anwendung und führt sie ohne Debugger aus ;) (Shift + F9 ist das was du suchst)
Aber eine Frage: Wenn ich das Programm unter Intel kompiliere und dann benutzt es jemand mit einem AMD Prozessor: Läuft es dann immer noch?

[edit=0]Ehm igel, ist der Screenshot hier (Video Playback), genau an der gleichen Stelle wie das auf den Wikimedia Commons :D [/edit]

MfG
xZise

3_of_8 24. Dez 2008 15:28

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von igel457
Stimmt so nicht, eine Textur, die komprimiert im Grafikspeicher liegt ist sogar schneller als unkomprimierte Texturen, da die Grafikkarte weniger Texturspeicherzugriffe benötigt. Allerdings unterstützt Andorra 2D (bis jetzt) noch keine komprimierten Texturen.

Wie will die Grafikkarte eine Textur zeichnen, ohne sie vorher zu dekomprimieren?

igel457 24. Dez 2008 15:29

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Hallo,

natürlich kannst du mir deinen überarbeiteten Imagelist-Editor geben, das wäre nett. Zu deiner Frage, ob das Programm auch auf einem AMD-Prozessor läuft, wenn es mit einem Intel-Prozessor kompiliert worden ist: Andorra 2D überprüft beim Programmstart welche Befehlssatzerweiterungen vorhanden sind und weist entsprechend die optimierten Funktionen zu. Es ist also egal, mit was für einem Prozessor du das Programm compilierst.

Das mit dem Bild ist reiner Zufall - ehrlich. Das ist mir auch aufgefallen, nachdem ich zufälligerweise den Wikipedia-Eintrag über BBB gelesen habe.

Zitat:

Zitat von 3_of_8
Wie will die Grafikkarte eine Textur zeichnen, ohne sie vorher zu dekomprimieren?

Schau mal hier: http://de.wikipedia.org/wiki/DXT

xZise 24. Dez 2008 15:43

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von igel457
Hallo,

natürlich kannst du mir deinen überarbeiteten Imagelist-Editor geben, das wäre nett.

Ich glaube ich habe da noch ein paar wünschenswerte Optionen gefunden, sodass ich da noch etwas rum experimentieren werde ;) . Ich hänge dennoch erstmal den aktuellsten Sourcecode an.

Zitat:

Zitat von igel457
Zu deiner Frage, ob das Programm auch auf einem AMD-Prozessor läuft, wenn es mit einem Intel-Prozessor kompiliert worden ist: Andorra 2D überprüft beim Programmstart welche Befehlssatzerweiterungen vorhanden sind und weist entsprechend die optimierten Funktionen zu. Es ist also egal, mit was für einem Prozessor du das Programm compilierst.

Es ging um diesen Zusatz in deinem Post ;)

Zitat:

Zitat von igel457
Das mit dem Bild ist reiner Zufall - ehrlich. Das ist mir auch aufgefallen, nachdem ich zufälligerweise den Wikipedia-Eintrag über BBB gelesen habe.

(Wohl eher VLC media player ;) )

Aber eine Frage hätte ich noch: Kann A2D auch OGG-Videos also Theora abspielen?

Da habe ich glatt den Sourcecode vergessen.

MfG
xZise

Florian H 24. Dez 2008 22:34

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
@xZise: Ein überarbeiteter ImageEditor ist natürlich super! :)

Hätte mich die letzten Tage auch fast hingesetzt, weil mir was wichtiges gefehlt hat: Eine "Bild ersetzen"-Funktion.
Ich muss nämlich relativ oft Grafiken im Editor durch eine neue Version ersetzen (da überarbeitet o.ä.), und da ist es relativ nervig, erst ein neues Bild zu laden, das an die richtige Position zu schieben (für den korrekten Index), die Einstellungen wieder zu machen (Pattern, Name, ...) und das alte Bild dann zu löschen.
Da wäre es super, wenn ich einfach für ein vorhandenes Bild eine neue Grafik laden kann, aber alle Einstellungen etc. bleiben erhalten ...
Falls du das nicht brauchst, kann ich das aber auch einbauen, wenn du mit deinen Erweiterungen fertig bist :)


Ansonsten danke für das Weihnachtsgeschenk igel, werds morgen auch mal testen (Andorra und AMD-Support).

xZise 24. Dez 2008 23:04

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Florian H
@xZise: Ein überarbeiteter ImageEditor ist natürlich super! :)

Hätte mich die letzten Tage auch fast hingesetzt, weil mir was wichtiges gefehlt hat: Eine "Bild ersetzen"-Funktion.
Ich muss nämlich relativ oft Grafiken im Editor durch eine neue Version ersetzen (da überarbeitet o.ä.), und da ist es relativ nervig, erst ein neues Bild zu laden, das an die richtige Position zu schieben (für den korrekten Index), die Einstellungen wieder zu machen (Pattern, Name, ...) und das alte Bild dann zu löschen.
Da wäre es super, wenn ich einfach für ein vorhandenes Bild eine neue Grafik laden kann, aber alle Einstellungen etc. bleiben erhalten ...
Falls du das nicht brauchst, kann ich das aber auch einbauen, wenn du mit deinen Erweiterungen fertig bist :)


Ansonsten danke für das Weihnachtsgeschenk igel, werds morgen auch mal testen (Andorra und AMD-Support).

Dito genau diese Funktion fehlt mir auch. Ich werde sie mal demnächst einbauen.

Und kann es sein, dass mit Delphi 2009 der ImageEditor nicht so gut funktioniert? Also der Fehler könnte an der PngImage-Datei liegen, aber es ich nun mal so dass die einzelnen Einträge Probleme mit Transparenten Bildern hat. Ich habe mal ein Beispiel angehangen.

MfG
xZise

inherited 25. Dez 2008 13:06

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Ich habe mal ein kleines Script gebastelt: Ab sofort gibts hier Nightly Snapshots (23:30) des CVS-Trees für diejenigen, die CVS nicht installieren wollen oder können. Enthält nur die Sourcen, nicht die Prerequisites.

Neutral General 26. Dez 2008 17:10

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Hi,

Hab gerade ein kleines Problem....

Hab ein mini-Andorra Programm geschrieben. Also nur um was zu testen. Bei mir gehts wunderbar...
Aber bei anderen gehts nicht. Da schlägt AdDraw.Initialize; fehl. Allerdings auch nicht immer...

Code sieht so aus:

Delphi-Quellcode:
AdDraw := TAdDraw.Create(Panel1);
AdDraw.DllName := 'AndorraDX93D.dll';
if not AdDraw.Initialize then
  ShowMessage('Hat nicht geklappt');
Jemand ne Ahnung was das sein soll? Hab die aktuellste Version von Andorra.

Florian H 26. Dez 2008 17:16

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Naja, klingt ja so, als ob die AndorraDX93D.dll oder die d3dx9_31.dll nicht mitgeliefert wurde? :gruebel:

Neutral General 26. Dez 2008 17:24

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Wollte ich eigentlich hinschreiben: Habe alle DLLs mitgeliefert.. die von DX9 und die AndorraDX dll.

bigben37 26. Dez 2008 17:52

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Das Problem hatte ich auch einmal (also an einem anderen Pc als an meinem).
Nachdem ich dann aber die aktuelle DirectX Version mit allen Updates (gibts hier) installiert habe, hat es funktioniert.
Was aber ärgerlich ist: Das Update ist so um die 85 MB groß.

MFG Benjamin

igel457 26. Dez 2008 19:06

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Eigentlich darf die benötigte d3d9_33.dll nicht mitgeliefert werden - das steht wohl so in der Microsoft Eula. Stattdessen müssen Anwendungen den DirectX-Endbenutzer-Installer mitliefern. Es gibt auch einen DirectX Webinstaller, der lädt die noch nicht vorhandenen DirectX-Versionen aus dem Web herunter.
Außerdem ist diese DLL auf den meisten Systemen sowieso schon installiert. Und mal ehrlich - jeder Entwickler sollte in der Lage sein, das SDK herunter zu laden.
Ich möchte eben nur nicht gegen die Microsoft-Richtlinen verstoßen.

Florian H 26. Dez 2008 19:24

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Ich habe gerade mal geschaut, ist das echt normal, dass ich mit DirectX um die 400FPS für eine relativ simple Szene schaffe, mit OpenGL aber nur 60FPS? :shock:
Sobald es komplexer wird (deutlich mehr zu zeichnende Elemente) geht OpenGL leicht nach unten auf ~40FPS, DirextX bricht dann regelrecht ein und kommt nur noch auf ungefähr 60FPS.

So krasse Performance-Unterschiede?

Ist ja eigentlich schade, weil OpenGL dann für aufwändigere Sachen rausfällt :/

xZise 26. Dez 2008 22:15

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von Neutral General
Hi,

Hab gerade ein kleines Problem....

Hab ein mini-Andorra Programm geschrieben. Also nur um was zu testen. Bei mir gehts wunderbar...
Aber bei anderen gehts nicht. Da schlägt AdDraw.Initialize; fehl. Allerdings auch nicht immer...

Code sieht so aus:

Delphi-Quellcode:
AdDraw := TAdDraw.Create(Panel1);
AdDraw.DllName := 'AndorraDX93D.dll';
if not AdDraw.Initialize then
  ShowMessage('Hat nicht geklappt');
Jemand ne Ahnung was das sein soll? Hab die aktuellste Version von Andorra.

Wäre es möglich, das du es manchmal aus einem Archiv heraus ausführst?

MfG
xZise

Romi 27. Dez 2008 17:14

Particle System fucked up?
 
Hi,

Erstmal ein großes Lob für die Engine - es macht wirklich viel Spass damit zu arbeiten.

Ich wollte gerade ein paar Partikel in mein Programm einbauen. Das klappte ganz gut, bis ich, wie im Particle-Tutorial beschrieben, im Partikeleditor ein DefaultParticle erstellt und geladen habe: Der Particleeditor hat scheinbar bei jedem öffnenden XML-Befehl den letzten Buchstaben abgehackt (z.B. <particleclas > statt <particleclass >). Naja machts nichts, die habe ich dann angehangen. Dann hat er ohne Fehler die Datei geladen.

Aber dann hatte sich nichts verändert. Ich hatte eigentlich ein paar Farben eingestellt und die Bewegung verändert, aber es bringt nichts, die Partikel sind immer noch weiß und bewegen sich wie immer. Folgenden Code benutze ich:

Delphi-Quellcode:
PartSys := TAdParticleSystem.Create(AdDraw);
PartSys.Texture := AdImageList.Find('particle').Texture;
PartSys.DefaultParticle.LoadFromFile('textures\part.axp');
Und zum Emittieren (aus einer Routine einer Spriteklasse):

Delphi-Quellcode:
PartSys.Emit(3, round(self.X), round(self.Y));
Ich wusste nicht weiter, also dachte ich, ich verändere das DefaultParticle mal manuell, ohne eine Datei zu laden. Aber die Eigenschaft LifeTime gibt es gar nicht :?:

Vielleicht kann mir ja jemand weiterhelfen. Ich benutzte Andorra2D Version 4.5.

Danke schonmal,
Roman

bigben37 27. Dez 2008 17:42

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Also ich hatte Anfangs auch Probleme damit, hab das aber dann so gelößt:

Zuerst mal die Klasse:
Delphi-Quellcode:
TPartSys = class(TAdParticleSystem)
  private
    FEmissionTime: Double;
    FGap: Double;
    FX: Double;
    FY: Double;
    procedure SetEmissionTime(const Value: Double);
    procedure SetGap(const Value: Double);
    procedure SetX(const Value: Double);
    procedure SetY(const Value: Double);
  public
    procedure EmitParticles;

    property Gap: Double read FGap write SetGap;
    property EmissionTime: Double read FEmissionTime write SetEmissionTime; //= Lifetime
    property X: Double read FX write SetX;
    property Y: Double read FY write SetY;
  end;
Das Laden:
Delphi-Quellcode:
PartSys := TPartSys.Create(AdDraw);
with PartSys do
  begin
    Texture := ImageList.Find('particle_target').Texture;
    LoadFromFile(MyPath+'target.axp');    
  end;
Damit das mit der LifeTime auch geht (gibts nämlich nicht), hab ich das so gemacht (ist aus dem Editor rauskopiert :stupid: ):
Delphi-Quellcode:
procedure TPartSys.EmitParticles;
  Gap := Gap + CPUCounter.TimeGap;  //CPUCounter: TAdPerformanceCounter  
  if Gap > EmissionTime then        
    begin
      Emit(Round(Gap / EmissionTime), Round(X), Round(Y));
      Gap := Gap - EmissionTime * Round(Gap / EmissionTime);
    end;
  Draw(AdDraw, 0, 0);
end;
Du musst nur in der Idle-Prozedur "PartSys.EmitParticles" aufrufen, und es müsste gehen.

MFG Benjamin

Florian H 27. Dez 2008 18:14

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Was mir auch aufgefallen ist (ich aber bisher vergessen habe, zu melden): Wenn man im Editor als Lifetime einen Komma-Wert angibt (z.B. für eine halbe Sek.), dann kann diese Datei nicht mehr geladen werden, da eine ungültige Zahl in die XML-Datei geschrieben wird.. soweit ich mich entsinne, hatte sie zu viele Nachkommastellen (0,5000000000000) oder das "."/","-Problem.

igel457 27. Dez 2008 19:03

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von Romi
Der Particleeditor hat scheinbar bei jedem öffnenden XML-Befehl den letzten Buchstaben abgehackt (z.B. <particleclas > statt <particleclass>).

Tatsächlich - da scheint sich irgendwo in die XML-Klasse ein Fehler rein geschlichen zu haben:

Delphi-Quellcode:
//AdSimpleXML.pas
function WriteStringToStream(Stream: TStream; const Buf: String; BufSize: Integer): Integer;
var
  i: integer;
  b: Byte;
begin
  result := 0;
  for i := 1 to BufSize do //Diese Zeile umändern
  begin
    b := Ord(Buf[i]);
    Stream.Write(b, 1);
  end;
end;
Dann sollte es gehen.


Zitat:

Zitat von Florian H
Was mir auch aufgefallen ist (ich aber bisher vergessen habe, zu melden): Wenn man im Editor als Lifetime einen Komma-Wert angibt (z.B. für eine halbe Sek.), dann kann diese Datei nicht mehr geladen werden, da eine ungültige Zahl in die XML-Datei geschrieben wird.. soweit ich mich entsinne, hatte sie zu viele Nachkommastellen (0,5000000000000) oder das "."/","-Problem.

Das Problem sollte ich eigentlich gelöst haben...

Neutral General 27. Dez 2008 22:01

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von xZise
Wäre es möglich, das du es manchmal aus einem Archiv heraus ausführst?

MfG
xZise

Ne habe nie Archive verschickt.

Zitat:

Zitat von igel457
Eigentlich darf die benötigte d3d9_33.dll nicht mitgeliefert werden - das steht wohl so in der Microsoft Eula. Stattdessen müssen Anwendungen den DirectX-Endbenutzer-Installer mitliefern. Es gibt auch einen DirectX Webinstaller, der lädt die noch nicht vorhandenen DirectX-Versionen aus dem Web herunter.
Außerdem ist diese DLL auf den meisten Systemen sowieso schon installiert. Und mal ehrlich - jeder Entwickler sollte in der Lage sein, das SDK herunter zu laden.
Ich möchte eben nur nicht gegen die Microsoft-Richtlinen verstoßen.

Das Problem ist, dass ich auf meinem eigenen PC sogar diese dll manuell in den Programmordner kopieren muss, weil ich vista hab und somit DX10. Und da scheint Andorra relativ unflexibel zu sein. :?

sorlag 28. Dez 2008 00:34

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von igel457
Das Problem ist, dass ich auf meinem eigenen PC sogar diese dll manuell in den Programmordner kopieren muss, weil ich vista hab und somit DX10. Und da scheint Andorra relativ unflexibel zu sein. :?

Dann haste da wohl dein System irgendwie zerschossen... läuft alles einwandfrei... eben auf dx10 statt dx9 (abwärtskompatibel).
Auf Vista wurde das gesammte Treiber und Grafik Modell geändert... da wird die dx9 Runtime nicht wirklich rein passen...

Vieleicht liegts ja daran, dass du mal aus Jux die Dll's in dein System kopiert hast...
Entfern besser den ganzen alten Kram von deinem System... gehört da nicht hin *g*

xZise 28. Dez 2008 11:21

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
WObei ich unter Windows Vista Home Premium x64 auch jetzt auf einmal Probleme mit Drawball habe (wobei ich da nix geändert habe):
Zitat:

---------------------------
DrawBall
---------------------------
Fehler beim Initialisieren von Andorra2D - bitte verwenden Sie einen anderen Displaytreiber.
---------------------------
OK
---------------------------
(ich weiß ^^ eine nichts sagende Nachricht)

Ich probiere es mal mit nochmal Downloaden.

MfG
xZise

Florian H 28. Dez 2008 12:10

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von xZise
(ich weiß ^^ eine nichts sagende Nachricht)

Die habe ich glaube ich irgendwoher (Turorial?) übernommen damals :stupid:
Ist aber, wie der Text vermuten lässt, die Meldung bei für
Delphi-Quellcode:
if not AdDraw.Initialize then //...
...

@igel: Zu meinem Post oben bezüglich der Performance mit OpenGL: Ist das also normal, openGL ist wirklich so langsam? Ist also kein Bug oder ne alte Version bei mir?

BUG 28. Dez 2008 13:49

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von Florian H
Ich habe gerade mal geschaut, ist das echt normal, dass ich mit DirectX um die 400FPS für eine relativ simple Szene schaffe, mit OpenGL aber nur 60FPS? :shock:

Bei meiner Grafikkarte lässt sich mithilfe eines mitgelieferten Programm allen openGL nutzenden Programmen ein VSync aufschwingen, vielleicht ist bei dir auch so etwas aktiv.

Unter Vista soll sich angeblich nur im Vollbildmodus ein hardwarebeschleunigtes openGL nutzen lassen (da der die gesamte Windows-Oberfläche mit DirectX gezeichnet wird).

MfG,
Bug

chamop87 28. Dez 2008 14:45

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
hallo zusammen,
ich hab stundenlang bei meinem programm daran rumgegrübelt, warum einige rechtecke nicht in der bewünschten brush.color gezeichnet wurden. jetzt bin ich darauf gekommen, das es daran lag, dass ich dei beiden x-werte in falscher reihefolge übergeben habe.
ich hab das ganze dann nochmal in einem kleinen testprogramm überprüft, indem ich mir jeweils eins der vier (identischen?)quadraten habe zeichnen lassen.
Delphi-Quellcode:
addraw.canvas.Brush.Color := ad_argb( 255,0,255,255 );
      //addraw.Canvas.Rectangle(200,100,100,200);
      //addraw.Canvas.Rectangle(100,200,200,100);
      //addraw.Canvas.Rectangle(100,100,200,200);
      addraw.Canvas.Rectangle(200,200,100,100);
die ersten beiden quadrate werden nicht in der gewünschten brush.color gezeichnet, die letzen beiden sehr wohl.
jetzt wollte ich mal wissen ob das gewollt oder ein fehler ist?

grüße

xZise 28. Dez 2008 15:42

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Hallo,

Also DrawBall geht wieder nachdem ich es nochmal gedownloadet habe.

Aber dafür hätte ich gerne eine Lösung:
Zitat:

Zitat von xZise
Zitat:

Zitat von Florian H
@xZise: Ein überarbeiteter ImageEditor ist natürlich super! :)

Hätte mich die letzten Tage auch fast hingesetzt, weil mir was wichtiges gefehlt hat: Eine "Bild ersetzen"-Funktion.
Ich muss nämlich relativ oft Grafiken im Editor durch eine neue Version ersetzen (da überarbeitet o.ä.), und da ist es relativ nervig, erst ein neues Bild zu laden, das an die richtige Position zu schieben (für den korrekten Index), die Einstellungen wieder zu machen (Pattern, Name, ...) und das alte Bild dann zu löschen.
Da wäre es super, wenn ich einfach für ein vorhandenes Bild eine neue Grafik laden kann, aber alle Einstellungen etc. bleiben erhalten ...
Falls du das nicht brauchst, kann ich das aber auch einbauen, wenn du mit deinen Erweiterungen fertig bist :)


Ansonsten danke für das Weihnachtsgeschenk igel, werds morgen auch mal testen (Andorra und AMD-Support).

Dito genau diese Funktion fehlt mir auch. Ich werde sie mal demnächst einbauen.

Und kann es sein, dass mit Delphi 2009 der ImageEditor nicht so gut funktioniert? Also der Fehler könnte an der PngImage-Datei liegen, aber es ich nun mal so dass die einzelnen Einträge Probleme mit Transparenten Bildern hat. Ich habe mal ein Beispiel angehangen.

MfG
xZise

Übrigens habe ich jetzt doch nicht am ImageEditor gearbeitet gehabt. Kannst dich also austoben Florian!

MfG
xZise

bigben37 28. Dez 2008 16:40

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von xZise
Aber dafür hätte ich gerne eine Lösung:
Zitat:

Zitat von xZise
Zitat:

Zitat von Florian H
@xZise: Ein überarbeiteter ImageEditor ist natürlich super! :)

Hätte mich die letzten Tage auch fast hingesetzt, weil mir was wichtiges gefehlt hat: Eine "Bild ersetzen"-Funktion.
Ich muss nämlich relativ oft Grafiken im Editor durch eine neue Version ersetzen (da überarbeitet o.ä.), und da ist es relativ nervig, erst ein neues Bild zu laden, das an die richtige Position zu schieben (für den korrekten Index), die Einstellungen wieder zu machen (Pattern, Name, ...) und das alte Bild dann zu löschen.
Da wäre es super, wenn ich einfach für ein vorhandenes Bild eine neue Grafik laden kann, aber alle Einstellungen etc. bleiben erhalten ...
Falls du das nicht brauchst, kann ich das aber auch einbauen, wenn du mit deinen Erweiterungen fertig bist :)


Ansonsten danke für das Weihnachtsgeschenk igel, werds morgen auch mal testen (Andorra und AMD-Support).

Dito genau diese Funktion fehlt mir auch. Ich werde sie mal demnächst einbauen.

Und kann es sein, dass mit Delphi 2009 der ImageEditor nicht so gut funktioniert? Also der Fehler könnte an der PngImage-Datei liegen, aber es ich nun mal so dass die einzelnen Einträge Probleme mit Transparenten Bildern hat. Ich habe mal ein Beispiel angehangen.

MfG
xZise


Also ich hab grad auch Probleme damit, ich kann nicht einmal mehr ein Bild laden, es kommt immer der Fehler:
Fehler
---------------------------
Andorra Image List Editor
---------------------------
No loader found to load the specified file "C:\Dokumente und Einstellungen\Benjamin\Eigene Dateien\Delphi\Andorra 2d\test\testbild.png".
---------------------------
OK
---------------------------


Und der Opendialog zeigt auch nicht mehr die Bilder in der Vorschau an

MFG Benjamin

Xzeer 28. Dez 2008 19:00

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Ich bekomme beim compilieren eines ganz simplen Projekts unter Delphi 2009 jede Menge Warnungen:

Zitat:

[DCC Warnung] AdBitmap.pas(199): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
[DCC Warnung] AdBitmap.pas(407): W1057 Implizite String-Umwandlung von 'TAdVeryShortString' zu 'string'
[DCC Warnung] AdWindowFramework.pas(164): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'
[DCC Warnung] AdWindowFramework.pas(209): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string'
[DCC Warnung] AdWindowFramework.pas(209): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'
[DCC Warnung] AdStandardFontGenerator.pas(90): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
[DCC Warnung] AdDraws.pas(1380): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
[DCC Warnung] AdDraws.pas(3288): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
[DCC Warnung] AdDraws.pas(3288): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string'
[DCC Warnung] AdDraws.pas(3341): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string'
[DCC Warnung] AdDraws.pas(3341): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'
[DCC Warnung] AdParticles.pas(1374): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'AnsiString'
[DCC Warnung] AdParticles.pas(1389): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string'
[DCC Warnung] AdSprites.pas(238): W1055 PUBLISHED verursachte, dass RTTI ($M+) zu Typ 'TSprite' hinzugefügt wurde
Ich hoffe das hilft vielleicht...

Xzeer 28. Dez 2008 19:04

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Und beim compilieren der Andorra DLL mit Delphi 2009 bekomme ich auch ein paar Warnungen...

Zitat:

[DCC Hinweis] DX3DMain.pas(416): H2443 Inline-Funktion 'D3DCOLOR_ARGB' wurde nicht expandiert, weil Unit 'DXTypes' in der USES-Liste nicht angegeben ist
[DCC Hinweis] DX3DMain.pas(553): H2443 Inline-Funktion 'D3DXVector3' wurde nicht expandiert, weil Unit 'DXTypes' in der USES-Liste nicht angegeben ist
[DCC Hinweis] DX3DMain.pas(554): H2443 Inline-Funktion 'D3DXVector3' wurde nicht expandiert, weil Unit 'DXTypes' in der USES-Liste nicht angegeben ist
[DCC Hinweis] DX3DMain.pas(555): H2443 Inline-Funktion 'D3DXVector3' wurde nicht expandiert, weil Unit 'DXTypes' in der USES-Liste nicht angegeben ist
[DCC Warnung] DX3DMain.pas(608): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
[DCC Hinweis] DX3DMain.pas(678): H2443 Inline-Funktion 'D3DCOLOR_ARGB' wurde nicht expandiert, weil Unit 'DXTypes' in der USES-Liste nicht angegeben ist
[DCC Warnung] DX3DHLSL.pas(122): W1057 Implizite String-Umwandlung von 'AnsiChar' zu 'string'
[DCC Warnung] DX3DShader.pas(125): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'

3_of_8 28. Dez 2008 19:17

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von bigben37
Also ich hab grad auch Probleme damit, ich kann nicht einmal mehr ein Bild laden, es kommt immer der Fehler:
Fehler
---------------------------
Andorra Image List Editor
---------------------------
No loader found to load the specified file "C:\Dokumente und Einstellungen\Benjamin\Eigene Dateien\Delphi\Andorra 2d\test\testbild.png".
---------------------------
OK
---------------------------

Kann es sein, dass du die AdPNG oder wie die heißt einbinden musst?

bigben37 28. Dez 2008 19:50

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Hm, das Beispiel war nicht besonders gut gewählt :stupid: , es geht auch bei BMP und JPG nicht. :wall:
AdPNG ist nicht eingebunden, aber es ist AdDevIL eingebunden.

xZise 28. Dez 2008 20:45

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von Leos-Studio
Ich bekomme beim compilieren eines ganz simplen Projekts unter Delphi 2009 jede Menge Warnungen:

Zitat:

[DCC Warnung] AdBitmap.pas(199): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
[DCC Warnung] AdBitmap.pas(407): W1057 Implizite String-Umwandlung von 'TAdVeryShortString' zu 'string'
[DCC Warnung] AdWindowFramework.pas(164): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'
[DCC Warnung] AdWindowFramework.pas(209): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string'
[DCC Warnung] AdWindowFramework.pas(209): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'
[DCC Warnung] AdStandardFontGenerator.pas(90): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
[DCC Warnung] AdDraws.pas(1380): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
[DCC Warnung] AdDraws.pas(3288): W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'
[DCC Warnung] AdDraws.pas(3288): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string'
[DCC Warnung] AdDraws.pas(3341): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string'
[DCC Warnung] AdDraws.pas(3341): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'ShortString'
[DCC Warnung] AdParticles.pas(1374): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'AnsiString'
[DCC Warnung] AdParticles.pas(1389): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string'
[DCC Warnung] AdSprites.pas(238): W1055 PUBLISHED verursachte, dass RTTI ($M+) zu Typ 'TSprite' hinzugefügt wurde
Ich hoffe das hilft vielleicht...

Also Andorra2D verwendet intern AnsiString, und der normale string ist ja seit Delphi 2009 ein Unicodestring. Somit ist dort immer eine Verlustbehaftete Konvertierung.

MfG
xZise

3_of_8 28. Dez 2008 20:46

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Na ja, auf jeden Fall ist die Frage, ob in den eingebundenen Dateien ein Loader für die zu ladenden Formate definiert wird.

igel457 28. Dez 2008 21:47

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von chamop87
ich hab stundenlang bei meinem programm daran rumgegrübelt, warum einige rechtecke nicht in der bewünschten brush.color gezeichnet wurden.

Das Problem liegt einfach daran, dass die Punkte in den beiden oberen Beispielen falsch herum angegeben sind. Dadurch wird die Füllung nicht gezeichnet (es sei denn, du schaltest Culling über AdDraw.Options := AdDraw.Options - [aoCulling] ab). Siehe auch hier: http://de.wikipedia.org/wiki/Culling

@Leos-Studio
Die Warnungen lassen sich bei Delphi 2009 leider nicht vermeiden. An diesen Stellen kann aber eigentlich nichts schief gehen.

@bigben37
Wie lädst du die Bilder? Texture.LoadGraphicFromFile?

Auf jeden Fall Danke für die regen Rückmeldungen. Für Probleme macht aber bitte einen neuen Thread auf, damit man später die Antworten leichter findet ;-)

Andreas

bigben37 28. Dez 2008 22:21

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von igel457
@bigben37
Wie lädst du die Bilder? Texture.LoadGraphicFromFile?

Ja, ich hab ja nur den Imagelisteditor neu kompilieren wollen und nichts daran verändert (kommt noch :mrgreen:). Aber die Exception tritt im Debug-Modus(F7) schon auf, wenn ich nur auf ein Bild klicke (im Opendialog).

Zitat:

Zitat von igel457
Auf jeden Fall Danke für die regen Rückmeldungen. Für Probleme macht aber bitte einen neuen Thread auf, damit man später die Antworten leichter findet ;-)

Werds mir merken :mrgreen: . Vielleicht könntest du mal darauf einen Blick werfen :stupid:

MFG Benjamin

xZise 28. Dez 2008 23:22

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Hallo igel!

Ich habe mal die „GetSpritesAt“ umgesetzt:
Delphi-Quellcode:
{Returns all sprites at the specified position}
procedure GetSpritesAt(const AX, AY : Integer; ASprites : TSpriteList); overload; virtual;
{Returns all sprites at the specified position and of a specified type}
procedure GetSpritesAt(const AX, AY : Integer; ASprites : TSpriteList; AClass : TSpriteClass); overload; virtual;

procedure TSprite.GetSpritesAt(const AX, AY: Integer; ASprites: TSpriteList;
  AClass: TSpriteClass);
var
  i: Integer;
  Rect : TAdRect;
begin
  if Assigned(ASprites) then
  begin
    ASprites.Clear; // Standard ?
    for i := 0 to Items.Count - 1 do
    begin
      Rect := Items[i].BoundsRect;
      if (AX >= Rect.Left) and (AX <= Rect.Right) and
         (AY >= Rect.Top) and (AY <= Rect.Bottom) and
         (Items[i] is AClass) then
      begin
        ASprites.Add(Items[i]);
      end;
    end;
  end;
end;

procedure TSprite.GetSpritesAt(const AX, AY: Integer; ASprites: TSpriteList);
begin
  GetSpritesAt(AX, AY, ASprites, TSprite);
end;
Ich weiß nicht, ob das leeren der Liste eine Art Standard ist? Ich habe mich übrigens für die Variante als Übergabeparameter entschieden, da damit die Verwaltung der Liste komplett an die "Mutterklasse" abgegeben wurde.

MfG
xZise

igel457 29. Dez 2008 12:54

Re: Andorra 2D [Ver. 0.45, 24.12.08]
 
Zitat:

Zitat von xZise
Ich habe mal die „GetSpritesAt“ umgesetzt

Vielen Dank! Habe es reinkopiert.

[quote="bigben37"]
Zitat:

Zitat von igel457
Aber die Exception tritt im Debug-Modus(F7) schon auf, wenn ich nur auf ein Bild klicke (im Opendialog).

Setze mal einen Haltepunkt in der Unit AdVCLFormats auf die erste Zeile von TAdVCLBitmap.LoadFromFile, und schau was passiert, und wo genau die Exception geworfen wird.

Zitat:

Zitat von bigben37
Vielleicht könntest du mal darauf einen Blick werfen

Habe ich schon, aber ich kenne mich mit Newton nicht (mehr) sonderlich gut aus und kann dir nichts sagen, außer dass ich auch nicht weiß, was den Fehler auslöst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 Uhr.
Seite 21 von 26   « Erste     11192021 2223     Letzte »    

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