![]() |
AW: pf8Bit seltsames aussehen der Palette
Zitat:
Kann machen was ich will die Paletten funktionieren einfach nicht! So sollte Scope aussehen (Realtime kein Problem) und schnell genug. Aber als Komplettansicht schlägt das fehl. ![]() gruss |
AW: pf8Bit seltsames aussehen der Palette
Ich versuche immer noch den kram zu beschleunigen.
Delphi-Quellcode:
Ich habe jetzt den Auskommentierten Teil in eine eigene Schleife gebunden.
for i := 0 to BuffBMP.Height - 1 do
begin Value := round(Sqrt(Sqrt(Buffer[i + 1]) * 4 * BuffBMP.Width)); if bScanLines then begin QueryPerformanceCounter(timeDraw0); // X := BuffBMP.ScanLine[BuffBMP.Height - i - 1]; // Move(X[OffsetX], X[0], (BuffBMP.Width - OffsetX)); for m := 0 to pred(OffsetX) do X[BuffBMP.Width - OffsetX + m] := Value; QueryPerformanceCounter(timeDraw1); timeDraw := timeDraw + (timeDraw1 - timeDraw0); end else begin QueryPerformanceCounter(timeDraw0); BuffBMP.Canvas.Pixels[ColumnCounter, BuffBMP.Height - i] := Value; //RGB(R, G, B); QueryPerformanceCounter(timeDraw1); timeDraw := timeDraw + (timeDraw1-timeDraw0); end; end; Um beim zuweisen der Farben das ganze zu beschleunigen.
Delphi-Quellcode:
Das geht relativ schnell, das Problem ist nur das bei der Übergabe der Value das Bitmap nicht gefüllt wird.
for i := 0 to BuffBMP.Height - 1 do
begin X := BuffBMP.ScanLine[BuffBMP.Height - i - 1]; Move(X[OffsetX], X[0], (BuffBMP.Width - OffsetX)); end; Eigentlich müsste es doch egal sein ob ich den Pointer vorher verschiebe anstatt in der Schleife zum ermitteln der Farben. Wo ist mein Denkfehler? In X müssten doch die richtigen Pointer liegen.
Delphi-Quellcode:
X: PByteArray;
gruss |
AW: pf8Bit seltsames aussehen der Palette
Da sind dir irgendwo auf dem Weg die gepufferten Scanlines abhanden gekommen, und statt dessen in das PByteArray verwurschtelt, dass ein ganz anderes Ziel verfolgt.
Ich hätte da jetzt eher sowas in der Art gesehen:
Delphi-Quellcode:
Woher das xOffset und die Schleife mit "m" herkommen, ist mir ehrlich gesagt etwas schleierhaft gerade. Meiner Meinung nach braucht es die nicht, oder der Codeschnipsel war nicht ausreichend um die Notwendigkeit bzw. den Nutzen zu demonstrieren.
var
x: array of PByteArray; begin ... SetLength(x, BuffBMP.Height); for i := 0 to BuffBMP.Height - 1 do x[i] := BuffBMP.Scanline[BuffBMP.Height-i-1]; for i := 0 to BuffBMP.Height - 1 do begin Value := round(Sqrt(Sqrt(Buffer[i + 1]) * 4 * BuffBMP.Width)); if bScanLines then begin QueryPerformanceCounter(timeDraw0); X[i][ColumnCounter] := Value; QueryPerformanceCounter(timeDraw1); timeDraw := timeDraw + (timeDraw1 - timeDraw0); end else begin QueryPerformanceCounter(timeDraw0); BuffBMP.Canvas.Pixels[ColumnCounter, BuffBMP.Height - i] := Value; //RGB(R, G, B); QueryPerformanceCounter(timeDraw1); timeDraw := timeDraw + (timeDraw1-timeDraw0); end; end; |
AW: pf8Bit seltsames aussehen der Palette
Zitat:
Der XOffset diente dazu Das Bitmap von verschiedenen Seiten zu zeichnen. Zitat:
Durch das vorherige füllen des PByteArray ist die Geschwindigkeit nun genauso wie gewünscht. Palette stimmt auch. War aber ein anderes Problem) ;) gruss |
AW: pf8Bit seltsames aussehen der Palette
Delphi-Quellcode:
BuffBMP.Canvas.Pixels[ColumnCounter, BuffBMP.Height - 1 - i] := Value; //RGB(R, G, B);
|
AW: pf8Bit seltsames aussehen der Palette
Zitat:
Mein Fehler! gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz