Marsi das ist das falsxhe Topic, mach doch in "Ohne Gegenleistung"
GDI+ Bitmap "trapezoid" zeichnen / DrawImage_4Points
-
-
Ich schätze das Passt schon.
Andy weiß wie ich das meine hoffe ich
(Kann ihn ja erwähnen als lieben Kerl der mir eine Asm-Func gebastelt hat :D)mfg
Mars(i) -
Zitat
Ich bräuchte eine asm-Funktion die WinApi_StretchBlt ersetzen kann, aber schneller ist
ja, das wäre sicher machbar, allein durch SSE wäre da einiges rauszuholen. Wozu brauchst du etwas derart schnelles? Stretchblt() hat jedenfalls bei mir noch nie für Verzögerungen gesorgt, da hängts grösstenteils an ganz anderen Punkten
Ich muss erstmal die anderen Baustellen fertigbekommen... -
Das inet von mir war ganz schön lange down...
(bis gestern^^)deshalb jetzt erst mein Beitrag was ich eigentlic schon vor ner Woche schrieben wollte.
Ich brauche eine möglichst schnelle Funktion, da ich gerne Vollbildspiele basteln würde die eventuell mehr ansprüche haben als DropOff (da ist ja relativ wenig drin).
Dazu brauche ich im Prinzip Folgende Funktionen:eine BitBlt Funktion die Transparenz zu 100% unterstützt und nicht nur eine Farbe (also das resultat liefert als hätte man GDI_DrawImage genutzt.
das Gleiche Teil nochmal als StretchBlt
Und beides nochmal ohne transparenz (weils dann schneller geht wenn man dafür ne eigene func hat. man kann natürlich auch die mit Trans nutzen, aber wozu dann die transparenz umrechnen, wenn keine vorhanden ist ?)Und da ich glaube dass man damit AutoIt zu einer Sehr Guten Sprache für Minigames machen kann hoffe ich, dass du dir die Zeit nimmst eine ASM-Udf zu machen...
Man kann nämlich theoretisch alle Draw/Fill/blt usw Befehle sowohl von den Api Funktionen als auch von GDI-Funktionen in asm wesentlich schneller machen.
Ich fände das zumindest cool, da man dann auch Grafiken verwenden kann die auch im Vollbild noch knallscharf sind und nicht alles vergrößern muss, weil sonst die grafiken zu groß werden und das Zeichnen zu lange dauert.... (das kommt davon wenn man einen so großen Bildschirm hat^^)Das hat aber noch Zeit, da ich mich jetzt erstmal um Commander Keen kümmere
(Außer die BitBlt Func mit Transparenz. Die brauche ich so Schnell es geht :P)lg und viel spaß
Mars(i) -
Wenn du wirklich Spiele erstellen willst, würde ich eher auf z.B. SDL zurückgrefen: http://www.autoitscript.com/forum/topic/94834-sdl-udf/
Für BitBlt mit Transparenz: Das heißt AlhpaBlend (funktioniert mit Bitmaps mit premultiplied alpha) -
Wenn du wirklich Spiele erstellen willst, würde ich eher auf z.B. SDL zurückgrefen: http://www.autoitscript.com/forum/topic/94834-sdl-udf/
Für BitBlt mit Transparenz: Das heißt AlhpaBlend (funktioniert mit Bitmaps mit premultiplied alpha)
Die Challenge ist doch mit GDI+ die Games zu coden! Ob man jetzt SDL, Irrlicht, AU3Impact, o.ä. nimmt, ist ja reine Geschmacksache. Mit den genannten Addons kann man ganz tolle Effekte erzielen, wofür man mit GDI+ riesen Klimmzüge machen muss, wenn sie sich überhaupt implementieren lassen, z.B. Spiegeleffekt auf Kugeln, etc.Einen super Schritt hat z.B. eukalyptus mit diesem Code aus diesem Post hingelegt, was mit GDI+ Bordmitteln anscheinend nicht geht!
Gruß,
UEZ -
Klar, ist das eine herausforderung, aber in der Form "Ich möchte das Spiel machen und du schreibst die Funktionen dafür" wälzt man die Probleme ja auf andere ab.
GDI+ ist übrigens so langsam, weil alles auf der CPU berechnet wird und die dafür optimierte Grafikkarte gar nicht enbezogen wird. (das wissen sicher schon einige, aber ich schreibs für die anderen nochmal hin)
Bei GDI32 kann man sicher durch optmierte Funktionen noch was rausholen, da die Windows-API vermutlich nur sehr wenige bis gar keine Optinierungen wie SSE2 nutzt, um größtmögliche Kompatibilität zu erhalten.Und nun Back to Topic
-
Mir ist klar, dass es extra für Spiele hergestellte Sprachen gibt in denen man nichtmal garnichts können muss um ein halbwegs passables Spiel hinzubekommen. z.B. GameMaker
Es gibt auch sprachen die gut für Spiele sind und etwas können abverlangen und danach super Spiele rauskommen. z.B. Blitz Basic
alles schön und gut... wills aber mit AutoIt machenIch nutze inzwischen fast ausschließlich BitBlt Befehle und die mit deiner Func hergestellten DC´s. Funktioniert sauber, schnell, gut.
Aber was bringt einem eine 32!!! Bit Bitmap, wenn die ersten 8 Bit für Transparenz garnicht genutzt werden ? (sondern nur eine Farbe... erinnert an .gif)
Ich komme jetzt iwie nicht auf die englische AutoIt Seite und kann nicht nach eine AlphaBlend Func für DC´s suchen.
(Das ist in etwa das was ich bräuchte.)Eine Schnellere Variante der Gleichen Funktion sind aber immer willkommen...^^
(Ob das dann noch als GDI zählt, wenn man zwar gleiche Wirkung erziehlt, aber einen anderen Weg wählt ?)mfg
Mars(i) -
-
Danke
(meine Güte. auf die mdsn hätte ich auch kommen können, aber manchmal bin ich soo blöd^^)
Aber deine eigene Seite muss ich mir mal merken (oder linken).//Edit:. Wie geil^^ In der GDI-Sammlung ist wirklich ALLES was das Herz begehrt .://
lg
-
@progandy: hast du SDL irgentwo noch auf der Platte ? der Downloadlink ist down.
-
@progandy: hast du SDL irgentwo noch auf der Platte ? der Downloadlink ist down.
Keine Ahnung. Jedenfalls nicht auf dem Laptop und den PC habe ich erst in ein paar Tagen wieder zur Verfügung.
Edit: Waybackmachine ftw http://hem.passagen.se/amax/autoit/SDL v14½.zip -
Ah Danke .
-
Sorry, dass ich diesen alten Thread wieder ausgrabe, aber gibt es mittlerweile jemanden,
der die >900 Zeilen in eine UDF (bzw in eine Funktion wie z.B. _GDIPlus_GraphicsDrawImage_4Points) gepackt hat?
Ich bräuchte es für ein Programm von mir, steige aber durch dieses ganze Zeug
nicht durch.Gibt es mittlerweile eine komprimierte Funktion?
-