Geschwindigkeitsphänomen....Bug?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

EPS

Betreff: Geschwindigkeitsphänomen....Bug?

BeitragMo, Jun 06, 2005 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jun 06, 2005 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab sogar 1300fps mehr.
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

EPS

BeitragMo, Jun 06, 2005 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jun 06, 2005 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jun 06, 2005 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
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]

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)
between angels and insects

EPS

BeitragMo, Jun 06, 2005 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jun 06, 2005 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jun 06, 2005 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ahhh...jetzt hats klick gemacht....

man bin ich deppert...ok...dann vergessen wir das ganze mal schnell wieder Embarassed
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.
 

Klaas

BeitragMo, Jun 06, 2005 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jun 06, 2005 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
@EPS
kommt vom mit bmax rumspielen Smile da isses der backbuffer

EPS

BeitragMo, Jun 06, 2005 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
eigentlich nicht....kommt eher vom zu langen rumgrübeln, zu kompliziert denken und das naheliegendste übersehen Wink
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group