Adresse suchen um ein Pixel zusetzen.
Re: Adresse suchen um ein Pixel zusetzen.
Funktioniert, ist aber a...rm lahm (2-3 Bilder die Sekunde).
Re: Adresse suchen um ein Pixel zusetzen.
Jo,schalt mal den Debugger aus ,falls der aus war möchte ich deinen Rechner nicht geschenkt haben.ralle hat geschrieben:Funktioniert, ist aber a...rm lahm (2-3 Bilder die Sekunde).
Re: Adresse suchen um ein Pixel zusetzen.
Aaaaaaah, ohne Debugger läuft das sehr, sehr schick ^^ Und Fehlerfrei!
-
super_castle
- Beiträge: 557
- Registriert: 29.11.2005 15:05
Re: Adresse suchen um ein Pixel zusetzen.
Eben, das ist der Mist. In 0.0025 sec brauche ich 112 Pixel senkrecht von unten nach oben, dabei muss jeder einzelne Pixel gleich angezeigt werden. Es müssen davon 32 Zeilen je 2 Pixel breit von rechts nach links geschrieben werden. Das Timing muss zu 99% stimmen. Zur Zeit schafft das nur GFA-Basic mit dem Timing.Du "siehst" ein geänderten Pixel doch eh erst wenn du FlipBuffers() ausgeführt hast.
Das ist das Prinzig der Nipkow-Scheibe.
Es wird eine Wav-Datei(48000khz) "NipKow-Film" ausgelesen mit dem GFA-Programm und als Nipkowfilm gezeigt. Es wird sogar noch nach jeder Zeile ein Bild daneben geblittet.
Code: Alles auswählen
Global Integer datenspeicher, datenlaenge, lauf, wert, n_dat, test
Global Integer x, y, xs, ys, farbe, zz
Global Card wert1
Global String datei_in
Global t#
Global Const zeile_z As Double = 0.0025
Dim MediaPath As String = App.Path & "\media\"
Form f0 = "nipkow" , , , 600, 400 : .AutoRedraw = 1 : BackColor = RGB(200, 200, 200)
Ocx Form bild = , 200, 10, 64, 112 : .Appearance = 0 : .AutoRedraw = 1
Ocx RichEdit rtf1 = , 10, 80 , 150, 150 : BackColor = RGB(200, 200, 200)
rtf1.ScrollBars = basVertical
rtf1.DisableNoScroll = 1
Ocx TextBox ed1 = , 10, 50, 150, 20
Ocx Command CO(1) = "Wav laden", 10, 10, 70, 25
n_dat = 92
xs = 63
ys = 112
Do
Sleep
Loop Until Me Is Nothing
Sub abspielen
If !Exist(MediaPath & datei_in) Then
rtf1.SelText = ("Fehler..." + Chr(10))
Exit Sub
Else
datenlaenge = FileLen(MediaPath & datei_in)
datenspeicher = mAlloc(datenlaenge + 1)
BLoad MediaPath & datei_in , datenspeicher
EndIf
Set Me = bild
For lauf = n_dat To datenlaenge Step 4
wert = LPeek(datenspeicher + lauf)
If wert = -325976064
lauf = lauf + 7 * 4
wert = LPeek(datenspeicher + lauf)
If wert = -325976064
x = x - 2
y = ys
anfang:
If (Timer - t) < zeile_z Then GoTo anfang
BitBlt bild.hDC2, 0, 0, 64, 112, f0.hDC, 300, 10
t = Timer
GoTo weiter
End If
End If
If wert = 0
lauf = lauf + 7 * 4
wert = LPeek(datenspeicher + lauf)
If wert = 0
x = xs
y = ys
GoTo weiter
EndIf
End If
wert1 = HiWord(wert)
farbe = wert1 / 256
Color RGB(farbe + 80 , farbe + 80 , farbe + 80)
y = y - 1
Pset x, y
Pset x - 1, y
weiter:
Next
Sub CO_Click(index%)
datei_in = ed1 & ".wav"
abspielen()
Sub tb_KeyDown(Code&, Shift&)
Gruss
Re: Adresse suchen um ein Pixel zusetzen.
Du schaffst es nicht die paar Pixel in 25 ms darzustellen ?super_castle hat geschrieben: Eben, das ist der Mist. In 0.0025 sec brauche ich 112 Pixel senkrecht von unten nach oben, dabei muss jeder einzelne Pixel gleich angezeigt werden. Es müssen davon 32 Zeilen je 2 Pixel breit von rechts nach links geschrieben werden. Das Timing muss zu 99% stimmen. Zur Zeit schafft das nur GFA-Basic mit dem Timing.
Gruss
Sorry ,aber selte solch einen Unfug gelesen.
Zuletzt geändert von SoS am 29.06.2010 02:29, insgesamt 1-mal geändert.
- kob
- Beiträge: 116
- Registriert: 01.01.2008 02:02
- Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
- Wohnort: Fulda
Re: Adresse suchen um ein Pixel zusetzen.
Alter nurma so wegen dein möcht gern Pb diss , ja es gibt bessere sprachen als PB und nein PB ist nicht kopliziert.
Auserdem gibt es technische grenzen beim rendern , nichtnur , weil die grafikarte wegen dem darstellen
denn ganzen DrawingBuffer IMMER durch ein paar kabel quetscht. Auserdem packt ein 'normaler' bildschirm
max um die 200HZ das sind also 200FP/s -> 1000ms / 200fps = 5ms pro bild .
ABER : es gibt möglichkeiten , den buffer der gerendert wird , ja genau nicht den backbuffer , zu verändern , dies ist enorm schnell und
nicht wirklich schön , da flimmereffekt und andere nicht schöne grafikproblem auftreten können. Und wenn du schon PB drawing schwierig findest ,
solltest du vieleicht überdenken , ob du nicht wirklich umsteigst und aufhörst zu flamen Oder ob du nicht ein anderes
projekt anfangen solltes.

Auserdem gibt es technische grenzen beim rendern , nichtnur , weil die grafikarte wegen dem darstellen
denn ganzen DrawingBuffer IMMER durch ein paar kabel quetscht. Auserdem packt ein 'normaler' bildschirm
max um die 200HZ das sind also 200FP/s -> 1000ms / 200fps = 5ms pro bild .
ABER : es gibt möglichkeiten , den buffer der gerendert wird , ja genau nicht den backbuffer , zu verändern , dies ist enorm schnell und
nicht wirklich schön , da flimmereffekt und andere nicht schöne grafikproblem auftreten können. Und wenn du schon PB drawing schwierig findest ,
solltest du vieleicht überdenken , ob du nicht wirklich umsteigst und aufhörst zu flamen Oder ob du nicht ein anderes
projekt anfangen solltes.
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Re: Adresse suchen um ein Pixel zusetzen.
Man super_castle du lächerlicher Dummschwätzer ...
Was willst du jetzt noch, hmmm? PureBasic ist scheiße, GFA Basic komplett überlegen und du kommst nicht mehr wieder.
Das haben wir doch längst alles geklärt. Warum kommst du jetzt wieder angeschissen?
Was willst du jetzt noch, hmmm? PureBasic ist scheiße, GFA Basic komplett überlegen und du kommst nicht mehr wieder.
Das haben wir doch längst alles geklärt. Warum kommst du jetzt wieder angeschissen?
Windows 10 Pro, 64-Bit / Outtakes | Derek
- kob
- Beiträge: 116
- Registriert: 01.01.2008 02:02
- Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
- Wohnort: Fulda
Re: Adresse suchen um ein Pixel zusetzen.
Also da danke ich jetzt nochmal meinem Technologie lehrer , der uns immer an
die realisierbarkeit hat denken lassen. Der hatte es echt drauf. Hier wofür brauchst du
eigentlich das ding ? schonmal daran gedacht die lösung deines problems anders anzugehen ?
Schonmal daran gedacht das du hier im FALSCHEM forum bist ?
PS : Fragen über fragen und keine antworten , nur TranceBase.fm
die realisierbarkeit hat denken lassen. Der hatte es echt drauf. Hier wofür brauchst du
eigentlich das ding ? schonmal daran gedacht die lösung deines problems anders anzugehen ?
Schonmal daran gedacht das du hier im FALSCHEM forum bist ?
PS : Fragen über fragen und keine antworten , nur TranceBase.fm
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
-
super_castle
- Beiträge: 557
- Registriert: 29.11.2005 15:05
Re: Adresse suchen um ein Pixel zusetzen.
Oh, man, Mensch les dir oben mal die Zeit genau Raus.Du schaffst es nicht die paar Pixel in 25 ms darzustellen ?
Sorry ,aber selte solch einen Unfug gelesen.
Das folgende Bild wird in meinem Player in unter 16 ms erstellt.
2,5 ms genau für 112 Pixel und das ohne Flackern und Flip-Flop
Abweichung max 1% von 2,5 ms , nicht mehr und nicht weniger.
Also ohne Bauernkalender, nach dem Motto es könnte ja hinhauen mit dem Wetter oder auch nicht.
Nach 80ms muss genau zu 99% das neue Bild anfangen.
Auch nach 2 MinutenFilm muss es immer noch 80 ms +- 1% sein.
Purebasic schwächelt auch mit dem Timinig, welches stark schwankt.
Also hört mir auf zu flamen, Zeit ist hier massgebend für den Ablauf.
Gruss
-
super_castle
- Beiträge: 557
- Registriert: 29.11.2005 15:05
Re: Adresse suchen um ein Pixel zusetzen.
Na, wer wird denn Aufgeben......ob du nicht wirklich umsteigst und aufhörst zu flamen Oder ob du nicht ein anderes
projekt anfangen solltes.
Ich habe es geschafft und es läuft.
Es ist eine Sache der Programmiersprache.
Jup, du hast recht, das ist der Bremsklotz...Und wenn du schon PB drawing schwierig findest ,..
Ich wusste bis Dato nicht, das Purebasic darin so schnell die Grätsche macht.
Es ist Schwachsinn das man nach jedem Pixel ein Flip-Flop machen muss.
Man kommt ja noch nicht einmal an das hdc2 mit einem Befehl, weil dieses nicht zugänglich ist.
Gruss