Problem mit Writepixelfast und Functions....
Übersicht
BlitzBasic
Allgemein
yrulBetreff: Problem mit Writepixelfast und Functions.... |
Antworten mit Zitat |
|
|---|---|---|
|
Ich wollte einen neuen line Befehl , mit Writepixelfast, schreiben, da der existierende zu langsam war (Ich bezweifle allerdings, dass meiner schneller ist...)Bis jetzt sollte es nur ein rect zeichnen..
Problem:
-die function wird nur einmal ausgeführt... (wahrscheindlich ein kleiner blöder Fehler...) Code: [AUSKLAPPEN] SetBuffer BackBuffer() Repeat Line1(10,10,100,100,255,255,255,255) Flip Until(KeyHit(1)) Function Line1(x,y,x1,y1,r,b,g,a) rgb=a*$1000000 + r*$10000 + g*$100 + b Image=CreateImage(Abs(x1-x),Abs(y1-y)) LockBuffer ImageBuffer(image) z=x-x1 For t=x To x1 For t=y To y1 WritePixelFast x+z,t,rgb UnlockBuffer ImageBuffer(image) Next Next SetBuffer BackBuffer() DrawImage image,x,y Print "Linie Gezeichnet ("+x+","+y+","+x1+","+y1+","+r+","+g+","+b+")" End Function Währe nett wenn Ihr mir helfen könntet... [/quote] |
||
|
|
ZaP |
Antworten mit Zitat |
|---|---|---|
| Genau hab ich nich hingesehen, aber UnlockBuffer solltest du hinter die beiden verschachtelten for-schleifen verschieben... | ||
| Starfare: Worklog, Website (download) | ||
yrul |
Antworten mit Zitat |
|
|---|---|---|
|
ZaP hat Folgendes geschrieben: Genau hab ich nich hingesehen, aber UnlockBuffer solltest du hinter die beiden verschachtelten for-schleifen verschieben...
ooo |
||
yrul |
Antworten mit Zitat |
|
|---|---|---|
|
yrul hat Folgendes geschrieben: ZaP hat Folgendes geschrieben:
Genau hab ich nich hingesehen, aber UnlockBuffer solltest du hinter die beiden verschachtelten for-schleifen verschieben...
ooo Aber es funktioniert immer noch nicht.. |
||
|
|
The Shark |
Antworten mit Zitat |
|---|---|---|
|
Kennst du den algo:
Code: [AUSKLAPPEN] Function Linie(x1, y1, x2, y2, r, g, b) farbe = r*$10000 + g*$100 + b dx = x2 - x1 dy = y2 - y1 If dx > 0 Then inc_x = 1 Else inc_x = -1 EndIf If dy > 0 Then inc_y = 1 Else inc_y = -1 EndIf If Abs(dy) < Abs(dx) Then error = -Abs(dx) delta = 2 * Abs(dy) schwelle = 2 * error While x1 <> x2 WritePixel x1, y1, farbe x1 = x1 + inc_x error = error + delta If error > 0 Then y1 = y1 + inc_y: error = error + schwelle Wend Else error = -Abs(dy) delta = 2 * Abs(dx) schwelle = 2 * error While y1 <> y2 WritePixel x1, y1, farbe y1 = y1 + inc_y error = error + delta If error > 0 x1 = x1 + inc_x: error = error + schwelle Wend EndIf WritePixel x2, y2, farbe End Function Bresenham-Algorythmus Den habe ich glaube ich im englischen forum gefunden |
||
|
|
hecticSieger des IS Talentwettbewerb 2006 |
Antworten mit Zitat |
|---|---|---|
In der OH steht, dass Line anscheinend auch schneller ist, wenn man den Buffer zuvor sperrt. Wenn das stimmt, dann müsste man also bei vielen zu zeichnenenden Linien den Buffer sperren, um es schneller zu bekommen. Bei nur wenigen Linien lohnt sich das nicht, da das sperren den Buffers auch Zeit in Anspruch nimmt.
|
||
| Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D | ||
yrul |
Antworten mit Zitat |
|
|---|---|---|
|
hectic hat Folgendes geschrieben: In der OH steht, dass Line
anscheinend auch schneller ist, wenn man den Buffer zuvor sperrt. Wenn das stimmt, dann müsste man also bei vielen zu zeichnenenden Linien den Buffer sperren, um es schneller zu bekommen. Bei nur wenigen Linien lohnt sich das nicht, da das sperren den Buffers auch Zeit in Anspruch nimmt.Gut zu wissen. Werde ich gerade ausprobieren... |
||
|
|
RallimenSieger des 30-EUR-Wettbewerbs |
Antworten mit Zitat |
|---|---|---|
|
Code: [AUSKLAPPEN] Dim FPS(3)
Graphics 800,600,32,2 SetBuffer BackBuffer() While Not KeyDown(1) GoLine() Text 9,9,"FPS:"+FPS(1):FPS(2)=FPS(2)+1:If MilliSecs()>FPS(3)+999 Then FPS(1)=FPS(2):FPS(2)=0:FPS(3)=MilliSecs() Flip 0 Cls Wend:End Function goline() ;LockBuffer () For X1= 50 To 750 Step 80 For x2= 50 To 750 Step 80 Line x1,50,x2,550 Next Next ;UnlockBuffer () End Function Habs mal ebend ausprobiert, 137 FPS ohne Lockbuffer 243 FPS mit Lockbuffer |
||
|
[BB2D | BB3D | BB+]
|
||
yrul |
Antworten mit Zitat |
|
|---|---|---|
|
Rallimen hat Folgendes geschrieben: 137 FPS ohne Lockbuffer 243 FPS mit Lockbuffer Und wieviele mit dem obenangegebenen Code? |
||
Übersicht
BlitzBasic
Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group

