Graphics-Fenster im Window-Mode bewegen?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

ChristianK

Betreff: Graphics-Fenster im Window-Mode bewegen?

BeitragDo, Jan 25, 2007 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist es möglich, das brl.dxgraphics Modul so umzuprogrammieren, dass das Programm auch weiterläuft, wenn das Fenster gerade bewegt wird?

Blitzcoder

Newsposter

BeitragDo, Jan 25, 2007 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Programm an sich (zumindest unter Windows) läuft schon, falls BMax nicht anhällt. Andere Programme laufen. Nur es werden keine Grafiken neu gezeichnet. Und bei Windows zumindest wirst du da schätze ich nichts machen können, das ist die Win-GUI. Wie das bei Linux/Mac aussieht weiss ich nicht.

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

Lunatix

BeitragDo, Jan 25, 2007 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Nee Blitzcoder, bei Windows wird leider das gesamte Programm angehalten...
Ziehmlich dumm bei Server/Client programmen die Pingen müsse Confused
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Blitzcoder

Newsposter

BeitragDo, Jan 25, 2007 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Junkie, bei mir ist das nicht so. Wenn ich etwas installiere und es dragge ist es dnach sofort fertig Wink Ist übrigens bei CMD nicht so, da wir duahc neu gezeichnet. Evtl. gibts doch eine WinAPI Funktion.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

klepto2

BeitragDo, Jan 25, 2007 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Global Timer:TTimer = CreateTimer(60)


Graphics 800,600,0,-1

AddHook EmitEventHook,Draw

While Not KeyHit(Key_Escape)
Wend

Function Draw:Object(id:Int,data:Object,context:Object)
   Local Event:TEvent = TEvent(Data)
   If Event.ID = EVENT_TIMERTICK And EVENT.Source = Timer Then
      Cls
      DrawText "Dieser Text sollte immer da sein",0,0
      DrawText "Timer Ticks : " + Timer.Ticks(),0,20
      Flip
   EndIf
End Function


das zauberwort heißt in diesem Fall EventHooks.

Events sind nicht an MaxGui gebunden sondern können (vorallem Timer Events) auch bei normalen Bmax angewandt werden.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu
 

Ronny

BeitragSo, Jan 28, 2007 14:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Sollten die Grafikprozeduren aber länger als die 1Sek/60fps brauchen, hat die gesamte Applikation keinerlei Chance die Aufgaben zu bewaeltigen.

Was dann passiert ist: Mauscursor nicht mehr bewegbar, das Taskmenu nicht mehr zu gebrauchen, das Programm haengt foermlich seinen Aufgaben hinterher.

Du musst also - soweit wurde das schon im engl. Forum besprochen - mit mehreren Timern arbeiten, was aber ohne weiteres nur unter Windows moeglich ist... unter Linux funktioniert das "Draw while dragging" schon von allein, ist also eh nur das Windows was da so unpassend reagiert.


Was wichtig ist, dass bei der Standardmethode, sprich nicht neuzeichnen waehrend dragging, nur Updatefunktionen bearbeitet werden und keine Zeichenkommandos. Wenn Du also in deinem "Spaceship"-Typ-Drawkommando noch ein x:+ dx machst, dann wird bei Loslassen der Maustaste das Schiff einen gewaltigen Sprung machen, der eventuellen "Update"-Prozeduren nicht vorgefuehrt wird. Strikte Trennung von Logik und Zeichnen ist also notwendig.



Bevor Du also obige Methode implementierst, schaue Dir Deinen Code auf einem PC mit langsamer, sprich uralter Grafikkarte an... das spart Dir dann einiges an Nerven.



bye
Ron
 

ChristianK

BeitragMo, Jan 29, 2007 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, das hab' ich gesucht! Very Happy

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group