Vorrendern 2D

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: Vorrendern 2D

BeitragMi, Sep 25, 2013 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
hi, ich wollte wissen wie ich etwas vorrendern kann, also..

Code: [AUSKLAPPEN]

IMG:TImage=createimage(200,200)
setcolor 255,0,0
drawline 50,50,150,150
grabimage img,0,0


mein problem ist es nun logisch das bild flakkert, ich glaub zu blitzb.X zeiten gabs dafür setbuffer backbuffer()
wie kann ich es in bm nun hinbekommen dinge zu "rendern" ohne das das angezeigte bild flakkert?

muss man die render geschichten nach dem Flip machen?
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Lobby

BeitragMi, Sep 25, 2013 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
So etwas wie SetBuffer gibt es in BlitzMax nicht, und das wurde auch schon öfters gefragt.

Flackern allerdings sollte es durch die Benutzung von GrabPixmap allein nicht, da machst du wohl irgend etwas falsch (dein Beispielcode liefert hierfür keinerlei Informationen).

Zitat:
muss man die render geschichten nach dem Flip machen?

GrabPixmap/GrabImage schnappt sich immer den Inhalt des Backbuffers, also das, was vorherige Zeichenoperationen gezeichnet haben. Das sollte man berücksichtigen.

Mathias-Kwiatkowski

BeitragMi, Sep 25, 2013 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
naja es "flakkert" ja auch nur dann wenn ein neues image gerandert werden muss, ca 0.3 sek ddenke es liegt an grabimage. bzw es wird grabimage sein. aber genau das würd ich ja gern umgehen^^ kann es sein das create image bzw grabimage das programm einschlafen lässt bist das bild dann im image ist?
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Lobby

BeitragMi, Sep 25, 2013 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Meinst du mit Flackern eventuell Ruckeln? Laughing
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux

Mathias-Kwiatkowski

BeitragMi, Sep 25, 2013 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
naja das image ist kurz weg, und bäm wieder da. so kann man es sich ehr vorstellen
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Lobby

BeitragMi, Sep 25, 2013 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist so, dass GrabImage den Inhalt des Backbuffers nicht beeinflusst, daher sollte etwas Derartiges nicht passieren. Vielleicht wäre es hilfreich du würdest die entsprechende Stelle im Code zeigen.
Was ich mir auch vorstellen könnte: mit dem was du rendern willst übermalst du das, was eigentlich angezeigt werden soll. Um das zu vermeiden solltest du lieber sinngemäß unmittelbar nach Flip deine Sachen rendern. Sollte hier der Problem gelegen haben, dann hätte es auch geflackert, wenn du GrabImage weggelassen hättest.
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux

Mathias-Kwiatkowski

BeitragMi, Sep 25, 2013 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
ok kann mir denken was es ist, ich male eine tile map 29 x 29, das image ist max 290x290 gross hat 5 ebenen
ich kann mir denken das das "malen" der tilemap zeit beansprucht und das es dann dadurch kurz aufflakkert. ansonsten kp.



Edit:

aber es ist doch möglich ein tittelbild anzeigen zu lassen, und im hintergrund alles was man benötigt, "vorzurendern" oder? falls ja wie stelle ich es am besten an? selbst wenn das prog durch create image oder grapimage kurz "einfriert" oder so also für miro ms ^^ . sollte das tittelbild nicht verschüt gehen...

die render aktionen sind nach dem flip .

EDIT 2. in einer inc datei war ein mieser CLS Wink das wars... ps code hätt ich gern gepostet aber wäre zu viel gewesen.
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Midimaster

BeitragMi, Sep 25, 2013 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
In den Momenten, wo Du was vorrendern willst:


Zuerst ein CLS

Dann malst Du alles, was Du zum "Vorrendern" brauchst.

Dann grabbst du es. Jetzt keinen FLIP machen.

Dann machst du wieder CLS und malst jetzt das ganz normale Bild (z.b. dein Titelbild)

Danach erst den FLIP
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Mathias-Kwiatkowski

BeitragMi, Okt 02, 2013 8:27
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe ein ganz anderes problem derzeit, hat auch etwas mit dem Vorrendern zu tun deswegen erstell ich kein neues topic.

- nur code ausschnit meiner gui -
Code: [AUSKLAPPEN]
Print "Createimage:"
   start1:Int = MilliSecs()
   Gadget.Window.Image = CreateImage(Gadget.W, Gadget.H, 2)
   Ende1:Int = MilliSecs() - start1
   Print "Brauchte " + EndE1 + " ms"

Print "Grab Image:"
   start = MilliSecs()
   GrabImage (Gadget.Window.Image, Gadget.X, Gadget.Y, 0)
   Ende:Int = MilliSecs() - start
   Print "Brauchte " + EndE + " ms"


Die ausgabe:
Code: [AUSKLAPPEN]
Createimage:
Brauchte 0 ms

Grab Image:
Brauchte 58 ms


mein problem ist nun doch das mein programm bzw meine gui für die besagte 58ms einfriert da ein bild "gegrabt" wird. wie kann ich das umgehen? das es nicht gleich 58 ms braucht (wer weiss wie hoch die wartezeit auf älteren rechnern als meiner ist.)

wäre echt froh um hilfe...
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Midimaster

BeitragMi, Okt 02, 2013 8:35
Antworten mit Zitat
Benutzer-Profile anzeigen
da hat doch gerade einer auf dem englischen Forum diesen Beitrag geschrieben:


TGLMax2DFBO is 28 Times faster than GrabImage!
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group