flip
Übersicht

![]() |
regaaBetreff: flip |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab mir Gedacht die CPU und die Grafikkarte zu entlasten wenn ich nach folgendem schema vorgehe:
Zitat: ...
setbuffer backbuffer() while not keydown(1) changed=(mousexspeed() or mouseyspeed() or mousedown(1)....) if changed ; ZEICHNE ALLES endif if changed flip endif wend Meine Frage: Warum flackert das dann und immer nur dann wenn ich die Maus bewege. Ich kann das einfach nicht nachvollziehen, weil doch nur dann backbuffer beschrieben wird, wenn ich die Maus bewege und nur dann wird die Adressierung der Grafikspeicher vertauscht, aber auch dann flackert es für 1 Frame jeweils nach dem CHANGED=1 einmal in der Schleife durchgelaufen ist. Wenn ich die Maus aber langsam bewege so flackert es nicht, warum? Wäre für jeden Tipp dankbar. |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi.
Setze Flip außerhalb von If.. EndIf ! Toni |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Hot bit, das glaube icj nciht, lese dir mal alles durch, er will Event aktuallisierung simulieren. | ||
between angels and insects |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dankem aber hab ich auch schon versucht, ist eigentlich dann sogar noch nen bischen flimmriger.
@Jan: Genau, ich will eben das nen Prog nur dann was tun muss, also auch das flip wenn der user z.B. die Maus betätigt, also wenn irgendein Event anfällt. |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mein tipp: verstehe was der computer macht, wenn du bestimmte befehle ausführst! einfach nur mal ins blaue irgendwas versuchen geht nicht, wie du siehst. | ||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jap und eben deswegen meine Frage, ich versuch den Computer seit über 10 Jahren zu verstehen ![]() Das mit den Events abfragen ist nicht das Problem, aber ich verstehe nicht, wie wenn nichts in den Backbuffer gelegt wurde, und auch nichts geflippt wurde, und wenn danach was in den Backbuffer geschrieben wird, und dann wieder geflipt wird das dann ein kruzer Flimmer entsteht. @Ojay: Ach komm, wenn du die Antwort weisst dann kannst du sie mir doch sagen. Ich bin nun wirklich nicht jemand der immer erst fragt und danach ausprobiert, bzw. hab ich echt nicht viele Threads erstellt. |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi.
Ich kann das leider nicht nachvollziehen. Bei mir gibts kein Flimmern ... Aber: Code: [AUSKLAPPEN] if changed
; ZEICHNE ALLES endif if changed flip endif Das kann ja wohl auch nicht stimmen. Denn wenn eine Bewegung ist, läßt du alles neu zeichnen, und sofort wieder löschen. Toni |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
hot-bit hat Folgendes geschrieben: Hoi.
Ich kann das leider nicht nachvollziehen. Bei mir gibts kein Flimmern ... Aber: Code: [AUSKLAPPEN] if changed
; ZEICHNE ALLES endif if changed flip endif Das kann ja wohl auch nicht stimmen. Denn wenn eine Bewegung ist, läßt du alles neu zeichnen, und sofort wieder löschen. Toni Ah, da könnte was dran sein. Warum lösche ich alles? Vielleicht ist das der logische Punkt den ich nicht verstehe. Also ich weiss nicht wie ihr jetzt über mich denkt, es ist nicht das erste mal das ich ein flip einsetzte oder so, ich code auch schon seit jahren in BB aber ich hänge jetzt halt an so nem billigen eventerfassundzeichnenurdann Problem ![]() Nachtrag: Es wird auch nirgendwo in Realtime Setbuffer verwendet, nur Viewport, aber der hat eigentlich weniger damit was zu tun. |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
warum das flackert: zu viele flips
Hast du in deinen Grafikkartensettings VSYNC rausgenommen? Bei dem Konstrukt das du da hast kann im schlimmsten Fall 600-1000 flips sein und dein Bildschirm bekommst ~100 ( nehme hier einfach ma einen ungefähren Durchschnitt, TFT wäre 60 ) Flips hin, damit wird immer nur ein teil geflippt, neu gestartet und wieder geflipt, womit es beginnt zu flackern. Ich hab das Problem auch bei "ungünstigen" FPS, deshalb ist bei mir das Flipping über eine TimerVariable gesteuert ... denn sonst würde Flip immer ein abwarten des programmes erzwingen, was ich definitiv nicht will. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmmm...ne, aber wenn ich das if konstruckt darausnehme und flip 0 einsetze so das es mit 300-1000 fps läuft dann flackert es nicht, außer wenn ich die changed variable benutze, halt so wie das im pseudo-code ist.
EDIT: Ahh merke soeben das nicht alles flackert nur einige Elemente die auf einem Parent sich befinden. Ich will mal stark annehmen das es was mit der Häufigkeit des Zeichnens der einzelnen Elemente zu tun hat. *michanlaptopsetz* Ich denke mal das liegt einfach in meiner Zeichenlogik der Elemente. Und irgendwie ist es immer so wenn ich mein Problem poste dann finde ich selber die Antwort wenn iche s nicht tu, so such ich danach bis ich kein Bock mehr hab. ![]() |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi.
lol.. schön langsam kommen wir hier alle durcheinander. Zuviele Flips können es ja nicht sein. Höchstens zuwenig ![]() Toni |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank an alle, auf enie Problemlösung bin ich durch HOT-BIT und Dreamora gekommen.
Ich bitte alle hiermit nicht auf mein Thread zu antworten, da ich soweit bin das ich das Problem kenne, und es von allein lösen muss . ![]() |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi.
Das nenne ich mal Engagement ! Hast Plus-Punkte bei mir ! Daß ich sowas hier noch erleben darf ..... Toni |
||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow, cool Danke ![]() |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi.
Mal als Denkanstoss: Wenn du ein WaitTimer() drin hättest, würde wahrscheinlich kein Flimmern sein. Oder halt eine andere Routine, welche das managt. Toni |
||
![]() |
theotheoderich |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo regaa,
ich habe es auch mal ausprobiert (Arbeitsrechner, Onboardgrafik). Bei mir hängt sich das Prog nach 1 sek auf und lässt sich auch nicht im Task-Manager rausschmeissen. Erst mit -WaitTimer- funktioniert es (flimmerfrei). Wollte ich nur kurz loswerden. Gruß TheoTheoderich |
||
Gruß
TheoTheoderich -- The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer. |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie gesagt, die Problemlösung , zumindest den Lösungsweg hab ich schon, muss es nur noch umsetzen. Das ist ein bsichen kompliziert weil ich an mehreren stellen im 8k zeilen code was abändern muss, bzw. an manchen events nicht mit return rausgehen darf, da dann die zeichenreinfolge verändert wird.
@Theo: Ok, ich werd es berücksichtigen ![]() EDIT: Juhu, es funzt ![]() |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group