JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=b333d6b6a6250e939d0f49089e7a9823Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Blt Funktion - aber wie???

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 01.09.2002, 10:08    Titel: Blt Funktion - aber wie??? Antworten mit Zitat

So jetzt seid ihr alle in die Falle gelaufen Twisted Evil

Jetzt müsst ihr euch meine Frage durchlesen...die wie folgt lautet:

Wie erstelle ich meine eigene Blt Funktion???

Meine Gründe:

Ich will nicht, dass Blt Lock und Unlock aufruft...

..da das viel Zeit kostet ich möchte in einem Frame inmal die Primary Surface sperren alle Blits ausführen und dann wieder entriegeln...

Ich will also nur die Lock & Unlock Funktion aus der Blt und der BltFast raushauen...

Weiß einer, wie das geht???

Cu TheMillenium
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 01.09.2002, 10:17    Titel: Antworten mit Zitat

Hi!
Ich wüsste zwar nicht wie das gehen sollte, gaz ohne Lock und Unlock, aber du könntest die PrimarySurface nur einmal sperren, die ja sonst mit jeden aufruf von Blt() gesperrt und geöffnet wird!
Dazu würde ich eine Funktion schreiben, die zB alle Sprite Objekte übergeben bekommt(in einem Array oÄ) und diese dann mit nur einem aufruf von Lock/Unlock auf die Primary blittet!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kampfhund
Super JLI'ler


Alter: 41
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 01.09.2002, 15:52    Titel: Antworten mit Zitat

@MiracleBoy:
so wie ich das verstanden habe will er das doch so machen mit dem einmal sperren(von der primären oberfläche).

@TheMillenium:
Die andern (offscreen)oberflächen musst du denke ich mall trozdem sperren. Ich weiß allerdings nicht was da beim blitten fürn problem sein soll. Du durchläufst das einfach alles mit einer schleife für jeden pixel.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 01.09.2002, 15:57    Titel: Achso Antworten mit Zitat

Achso...Smile

War ich dumm...an sowas einfaches denke ich Mal wieder nicht... Rolling Eyes

Aber das müsste doch schon Performance geben...wenn man so 20 Objekte per Frame blittet...spart man schon Mal 19 Locks und Unlocks...also 38 unnötige Funktionsaufrufe... Smile

Cu TheMillenium
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kampfhund
Super JLI'ler


Alter: 41
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 01.09.2002, 15:59    Titel: Antworten mit Zitat

jo, denke ich schon, habs aber noch nie ausprobiert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Kampfhund
Super JLI'ler


Alter: 41
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 01.09.2002, 16:20    Titel: Antworten mit Zitat

hmm, ich weiß garnicht ob das schneller ist. Die surfaces liegen im v-ram.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 01.09.2002, 16:23    Titel: Antworten mit Zitat

Ich hab mal gelesen, dass das schneller gehen soll. Aber wieviel Speed dabei rauskommt und ob sich der Aufwand dafür überhaupt lohnt weiss ich auch nicht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 01.09.2002, 20:10    Titel: Antworten mit Zitat

Selbstgeschriebene Blit-Funktionen sind in der Regel wesentlich langsamer, als die DD-Varianten, da du jeden Pixel einzeln in (ich nehme es mal an) 2 For-Schleifen ansprichst.
Die DD-Varianten werden garantiert den Ganzen Speicherbereich mit einem Funktionsaufruf verschieben, was dein einsparen von Lock/Unlock wieder wett macht.
Schau dir doch mal die Flags genauer an, die du den Blit-Funkttionen übergeben mußt, vielleicht gibt es dort eine Möglichkeit zu sagen, daß die Surfaces schon gelockt sind, also nicht mehr gelockt werden sollen...

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 02.09.2002, 07:55    Titel: ... Antworten mit Zitat

Geht das dann mit memcpy ???


Zwischenfrage: Hibt das Board bei euch auch manchmal den Fehler, dass er die Seite nicht finden kannn???


Cu TheMillenium
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DaN00b
JLI'ler



Anmeldedatum: 10.08.2002
Beiträge: 159

Medaillen: Keine

BeitragVerfasst am: 02.09.2002, 10:37    Titel: Antworten mit Zitat

zur zwischenfrage: das hier bisher noch net aber bei anderen phpbb (oder wie auch immer die heißen) ist mir das auch öfters passiert...
_________________
Carpe Diem - Seize the day - Nütze den Tag!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 02.09.2002, 12:59    Titel: Antworten mit Zitat

Ja, mit Memcpy kann man den Zugriff beschleunigen. Das geht meines erachtens aber nur Zeilenweise, denn es gibt ja den sogenannten Pitch, und auch das Zielsurface ist ja größer (oder gleich groß), als das Quellsurface.

Zur Zwischenfrage:
Ja, ich habe auch Probleme, aber wenn ich die Links Langsam drücke (also nicht Zack, zack hintereinander) ist das Problem minimal. Warscheinlich ist der Quellcode ein wenig zu groß für PHP, der Speicher zu knapp bemessen und die Aufbauzeiten zu langsam, so daß´der Browser denkt, da kommt nichts.

Das ganze muß Apacheseitig eingestellt werden, daß die Wartezeiten etwas länger sind, oder der Speicher etwas mehr ist. Aber daß kan nur der Webseitenspeicherplatzanbieter tun.

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 03.09.2002, 15:39    Titel: Antworten mit Zitat

Zitat:

Selbstgeschriebene Blit-Funktionen sind in der Regel wesentlich langsamer[...]


Da muss ich dir wiedersprechen AFE...
Selbstgeschriebene Blit-Funktionen können um ein VIELFACHES schneller sein.
Ich bin Beta-Tester der Windows-Version des Spieles PC-Bakterien(TOM-Production... die haben u.A. die Game of ROBOT Spiele gemacht)... der Programmierer arbeitet mit selbstgeschriebenen Assembler Routinen, die bei 1024x768 auf einem Pentium mit 200MHz immer noch 200+ FPS zaubern... und die haben sogar noch 3 verschieden Blending Effekte(Licht, Schatten, Glas). Wink
Noch zu empfehlen: Compilierte Bitmaps, wenn kein Clipping nötig ist.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 03.09.2002, 21:39    Titel: Antworten mit Zitat

Hi,

ja lustig, kompilierte Sprites Twisted Evil Lange her, dass ich sowas benutzt habe Smile Trotzdem sollte meiner Meinung nach ein DX-Blit von Videospeicher in den Videospeicher (sichtbarer Bereich) schneller sein als ein Compiliertes Sprite oder Bitmap (wenn die Karte HW-Blt Unterstützung hat).

Aber vielleicht sollten wir einen Wettbewerb machen:

Die Aufgabe ist es ein Programm zu schreiben, dass ein Sprite, das vorher geladen werden muss schnellstmöglich auf den Bildschirm Blittet z.b. 100.000 mal. Wer das schnellste Programm schrebit gewinnt Razz

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum