 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 22.06.2007, 20:43 Titel: |
|
|
Oh, nie entdeckt x)
Dafür kannst du die Einzelprozesse net beenden, ich kann des  |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 23.06.2007, 10:32 Titel: |
|
|
PMedia hat Folgendes geschrieben: | Oh, nie entdeckt x)
Dafür kannst du die Einzelprozesse net beenden, ich kann des  |
du meinst wohl eher die einzelnen threads
den einzelne prozesse kann man damit sehr wohl abschießen
aber
B2T!!! _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 23.06.2007, 10:39 Titel: |
|
|
Fest steht: selbst mit OpenGL nutzt FreeBasic nur 1 Thread, und wenn ich den beend is sense x)
Also ist es so wie ich gesagt hab, Michael, damit ein Refresh erfolgt muss _nicht_ ein parallelthread sein, es kann sein dass fbgfx in Schleifen autom. nen Refreshcode implementiert (sleep zB is auch ne Schleife) oder aber, ähnlich Interrupts, einfach auf die Messages reagiert, die von den jeweiligen GDI-Funktionen kommen. |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 23.06.2007, 14:20 Titel: |
|
|
PMedia hat Folgendes geschrieben: | Also ist es so wie ich gesagt hab, Michael, damit ein Refresh erfolgt muss _nicht_ ein parallelthread sein, es kann sein dass fbgfx in Schleifen autom. nen Refreshcode implementiert . |
Nein, in Schleifen wird nichts reingebaut. Wenn man sich den ASM code von anguckt, dann sieht man nichts von ner "update" funktion der GFXLib, eine reine Schleife bleibt auch eine, da wird nichts hinzugefügt. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 23.06.2007, 18:52 Titel: |
|
|
Habe in dem Beispiel noch einen kleinen Schoneheitsfehler ausgebuegelt,
auf den mich Volta aufmerksam gemacht hat
(adr+=T_pitch\4) wurde durch (adr+=T_pitch/4) ersetzt,
wobei, eine Integer Division gegenueber einer Normalen
Division nicht unbedingt zu einem Fehler gefuehrt haette
Code: |
Dim XTime as double = Timer
const T_width = 800
const T_height = 600
const T_BPP = 4
Dim T_pitch as uinteger
T_pitch=((T_width)+IIF ((T_width) mod 4,4-((T_width) mod 4),0)) *4
Dim Test as UInteger Ptr
Test=Allocate (32+(T_pitch*T_height))
Test[0]=7 'header
Test[1]=T_BPP 'BPP
Test[2]=T_width 'width
Test[3]=T_height 'heigth
Test[4]=T_pitch 'pitch
'5 & 6 & 7 reserved = 0
Screen 19,32
screenlock
Dim adr as uinteger
adr=8
for y as integer=0 to T_height-1
for x as integer=0 to T_width-1
Test[adr+x]=&hFFFFFFFF
next x
adr+=T_pitch/4
next y
put (0,0),Test,Pset
ScreenUnlock
?Timer-XTime
sleep
DeAllocate(Test)
end |
_________________
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 20.08.2007, 06:43 Titel: |
|
|
Programmierer hat Folgendes geschrieben: |
Ohne einen extra Thread würde FB gar nicht richtig laufen.
Beispiel Winapi:
Wer sich Lutzifers Winapi tutorial angesehen hat, sollte merken, dass man von Windows eine "Mitteilung" bekommt, wenn man das Fenster neuzeichnen muss (z.B. wenn es zuerst von einem Fenster überdeckt wurde und dann im Vordergrund kommt).
Wenn man jetzt keinen Thread hat, der andauernd diese Nachrichten abfängt und neuzeichnet, dann würde ein einfaches Sleep verhindern, dass das Bild neu aufgebaut wird. WIe man sieht passiert das aber nicht, weil der Thread der GFX Lib dafür sorgt, dass es neugezeichnet wird
|
Um diesen Alten Thread mal wieder auszubuddeln...
Schon in aelteren FBC Versionen habe ich festgestellt, das ein "Normales" Programm zunaechst tatsaechlich nur mit einem Thread angezeigt wird, spaetestens aber beim verschieben, minimieren und wieder hervorholen des Fensters waren es aber poetzlich 3 Threads... bei der neueren Version sind es schon gleich zu anfang 3 Threads...
Alle Logik zum Thema Windows-Refresh ect.. halte ich damit fuer bestaetigt
 _________________
 |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|