Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

poke/peek statt pset/point
Gehe zu Seite Zurück  1, 2, 3
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 22.06.2007, 20:43    Titel: Antworten mit Zitat

Oh, nie entdeckt x)
Dafür kannst du die Einzelprozesse net beenden, ich kann des Zunge rausstrecken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 23.06.2007, 10:32    Titel: Antworten mit Zitat

PMedia hat Folgendes geschrieben:
Oh, nie entdeckt x)
Dafür kannst du die Einzelprozesse net beenden, ich kann des Zunge rausstrecken



du meinst wohl eher die einzelnen threads Zunge rausstrecken

den einzelne prozesse kann man damit sehr wohl abschießen Zunge rausstrecken


aber


B2T!!!
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 23.06.2007, 10:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 23.06.2007, 14:20    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 23.06.2007, 18:52    Titel: Antworten mit Zitat

Habe in dem Beispiel noch einen kleinen Schoneheitsfehler ausgebuegelt,
auf den mich Volta aufmerksam gemacht hat grinsen

(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 zwinkern

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 20.08.2007, 06:43    Titel: Antworten mit Zitat

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 zwinkern


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
grinsen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3
Seite 3 von 3

 
Gehe zu:  
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.

 Impressum :: Datenschutz