Thema: Delphi Scanline lahm??

Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#1

Scanline lahm??

  Alt 8. Okt 2005, 19:21
Ich habe folgendes Problem:

in meinem Spiel sollen bestimmte Teile der Hintergrundgrafik aufgehellt/abgedunkelt werden.

Ich versuche das so:
(buffer ist ein TBitmap)
Delphi-Quellcode:
  for oy := 0 to buffer.Height-1 do
  begin
    row := buffer.ScanLine[oy];
    for ox := 0 to buffer.Width-1 do
    begin
      gamma := 10;
      if gamma <> 0 then
      begin
        b := cut(row[ox].rgbtBlue+gamma);
        g := cut(row[ox].rgbtGreen+gamma);
        r := cut(row[ox].rgbtRed+gamma);
        row[ox].rgbtBlue := b;
        row[ox].rgbtGreen := g;
        row[ox].rgbtRed := r;
      end;
    end;
  end;
und so:
Delphi-Quellcode:
type
  TRGBTripleArray = array[0..32768] of TRGBTriple;
  // 32768 = maximale Anzahl der Pixel in der Breite eines Bildes (also eine "ScanLine")
  pRGBTripleArray = ^TRGBTripleArray; // Pointer auf TRGBTripleArray
Doch leider ist das furchtbar lahm! Ich brauche für ein 1024x768 großes bild eine halbe Minute! Dabei hatte ich schon öfters ScanLine verwendet, und da war das nicht so lahm.

(Apropos: Das ganze ist mit DelphiX in einem TSprite)

Was mache ich falsch?
Andreas
  Mit Zitat antworten Zitat