Geschwindigkeitsphänomen....Bug?
Übersicht
BlitzBasic
Allgemein|
|
EPSBetreff: Geschwindigkeitsphänomen....Bug? |
Antworten mit Zitat |
|---|---|---|
|
Hi zusammen,
also mir ist grad was ganz merkwürdiges aufgefallen und ich weis nicht ob das nur bei mir so ist, obs ein Bug ist...naja...seht selbst. Also folgendes kleines Programm erstellt ein Transparentes Bild in Bildschirmgröße mit nem kleinen Rechteck drin. Es ist auf die "herkömmliche" Art programmiert und zeigt die FPS an (bei Flip 0): Code: [AUSKLAPPEN] Graphics 640,480,0,2
img = CreateImage(640,480): MaskImage img,0,0,$FF00FF SetBuffer ImageBuffer(img) Color 0,0,$FF00FF Rect 0,0,640,480,1 Color 0,0,$FF0000 Rect 100,100,200,100 Color 0,0,$FFFFFF SetBuffer BackBuffer() Repeat Cls If f<MilliSecs() Then f=MilliSecs()+1000 fps=count count=0 End If DrawImage img,0,0 Text 0,0,fps count=count+1 Flip 0 Until KeyHit(1) ok...soweit so gut, merkt euch mal die FPS...nun den selben Code ein wenig verändert nocheinmal: Code: [AUSKLAPPEN] Graphics 640,480,0,2
buffer = GraphicsBuffer() img = CreateImage(640,480): MaskImage img,0,0,$FF00FF SetBuffer ImageBuffer(img) Color 0,0,$FF00FF Rect 0,0,640,480,1 Color 0,0,$FF0000 Rect 100,100,200,100 Color 0,0,$FFFFFF SetBuffer Buffer Repeat Cls If f<MilliSecs() Then f=MilliSecs()+1000 fps=count count=0 End If DrawImage img,0,0 Text 0,0,fps count=count+1 Flip 0 Until KeyHit(1) und da hab ich glatt 200 FPS mehr.... Wie kann das denn sein, ist der beim Start eingestellte Graphicsbuffer vielleicht ein anderer als der Backbuffer und wenn dem so ist welcher Buffer ist denn da eingestellt? Oder ist das nur bei mir so? thx |
||
|
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier
Man kann sich öfter als zweimal im Leben halb tot lachen. |
||
D²O |
Antworten mit Zitat |
|
|---|---|---|
| Hab sogar 1300fps mehr. | ||
|
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK; |
||
|
|
EPS |
Antworten mit Zitat |
|---|---|---|
| Na meinen Glückwunsch...aber gibt's auch ne Erklärung dafür? Für mich sieht es so aus als hätten meine Programme seit Jahr und Tag ca. 100% schneller laufen können... | ||
|
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier
Man kann sich öfter als zweimal im Leben halb tot lachen. |
||
hitokiri |
Antworten mit Zitat |
|
|---|---|---|
|
kannst doch einfach überprüfen indem du buffer printest
Print "Current buffer handle is: " + GraphicsBuffer() und klar ist es bei BB der frontbuffer wenn du nicht extra backbuffer einstellst |
||
|
|
Jan_Ehemaliger Admin |
Antworten mit Zitat |
|---|---|---|
|
Ja, wenn du aufs Doublebuffering versichtest,
müssten die ganzen daten nciht neu in den GFX Ram geladen werden --> schenller. Aber dann kannst du auch Flip weglassen! Nachteil ist das Flackern des Bildes. Und denke dran, das ist ein Prozess, der immer gleich lange dauert. --> wenn er bei dir 6ms dauert, dann steigt die zeit immer um 6 ms. das klingt viel, aber pro secunde hast du 1000. BlitzBasic: [AUSKLAPPEN]
|
||
| between angels and insects | ||
|
|
EPS |
Antworten mit Zitat |
|---|---|---|
| ich verzichte ja gar nicht auf Dubblebuffering, Flip ist ja drin...es ist nur schneller als wenn am Anfang der Backbuffer eingerichtet wird. | ||
|
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier
Man kann sich öfter als zweimal im Leben halb tot lachen. |
||
|
|
Firstdeathmaker |
Antworten mit Zitat |
|---|---|---|
| Du Flipst aber nicht vom Backbuffer, du hast malst ja alles direkt auf den Frontbuffer, deshalb ist das Flip total überflüssig. | ||
|
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
||
|
|
EPS |
Antworten mit Zitat |
|---|---|---|
|
ahhh...jetzt hats klick gemacht....
man bin ich deppert...ok...dann vergessen wir das ganze mal schnell wieder |
||
|
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier
Man kann sich öfter als zweimal im Leben halb tot lachen. |
||
Klaas |
Antworten mit Zitat |
|
|---|---|---|
|
yep, wenn man nix einstellt wird immer der Frontbuffer genommen (ausser bei 3dGrafik)
Code: [AUSKLAPPEN] Graphics 640,480,0,2 buffer = GraphicsBuffer() img = CreateImage(640,480): MaskImage img,0,0,$FF00FF SetBuffer ImageBuffer(img) Color 0,0,$FF00FF Rect 0,0,640,480,1 Color 0,0,$FF0000 Rect 100,100,200,100 Color 0,0,$FFFFFF SetBuffer Buffer If buffer = BackBuffer() Then Print "Current Buffer: Backbuffer" If buffer = FrontBuffer() Then Print "Current Buffer: Frontbuffer" WaitKey Repeat Cls If f<MilliSecs() Then f=MilliSecs()+1000 fps=count count=0 End If DrawImage img,0,0 Text 0,0,fps count=count+1 ; Flip 0 Until KeyHit(1) |
||
hitokiri |
Antworten mit Zitat |
|
|---|---|---|
|
@EPS
kommt vom mit bmax rumspielen |
||
|
|
EPS |
Antworten mit Zitat |
|---|---|---|
|
eigentlich nicht....kommt eher vom zu langen rumgrübeln, zu kompliziert denken und das naheliegendste übersehen |
||
|
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier
Man kann sich öfter als zweimal im Leben halb tot lachen. |
||
Übersicht
BlitzBasic
Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group
