Changeset 39 for trunk/ScreenTools.pas


Ignore:
Timestamp:
Jan 9, 2017, 7:58:25 PM (7 years ago)
Author:
chronos
Message:
  • Fixed: Retyping from pointer to integer doesn't work on 64-bit architecture.
  • Fixed: Do not use CreateWindowEx for scrollbar under Linux.
  • Fixed: Warning about unintialized record fields.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ScreenTools.pas

    r38 r39  
    238238{$ENDIF}
    239239begin
     240  Result := False;
    240241{$IFNDEF DEBUG}
    241242  if (Sounds = nil) or (SoundMode = smOff) or (Item = '') then
     
    386387procedure ApplyGamma(Start, Stop: pbyte);
    387388begin
    388   while integer(Start) < integer(Stop) do
     389  while Start < Stop do
    389390  begin
    390391    Start^ := GammaLUT[Start^];
     
    444445    FirstLine := bmp.ScanLine[0];
    445446    LastLine := bmp.ScanLine[bmp.Height - 1];
    446     if integer(FirstLine) < integer(LastLine) then
     447    if FirstLine < LastLine then
    447448      ApplyGamma(pointer(FirstLine), @LastLine[bmp.Width])
    448449    else
     
    504505    FirstLine := bmp.ScanLine[0];
    505506    LastLine := bmp.ScanLine[bmp.Height - 1];
    506     if integer(FirstLine) < integer(LastLine) then
    507       ApplyGamma(pointer(FirstLine), @LastLine[bmp.Width])
     507    if FirstLine < LastLine then
     508      ApplyGamma(Pointer(FirstLine), @LastLine[bmp.Width])
    508509    else
    509       ApplyGamma(pointer(LastLine), @FirstLine[bmp.Width]);
     510      ApplyGamma(Pointer(LastLine), @FirstLine[bmp.Width]);
    510511    bmp.EndUpdate;
    511512  end
     
    649650
    650651  dst.BeginUpdate;
     652  Src.BeginUpdate;
    651653  h := yDst + h;
    652654  while yDst < h do
    653655  begin
    654     PixelDst := pointer(integer(dst.ScanLine[yDst]) + 3 * xDst);
    655     PixelSrc := pointer(integer(Src.ScanLine[ySrc]) + xSrc);
     656    PixelDst := dst.ScanLine[yDst] + 3 * xDst;
     657    PixelSrc := Src.ScanLine[ySrc] + xSrc;
    656658    for i := 0 to w - 1 do
    657659    begin
     
    672674      else
    673675        PixelDst[0] := test; // Blue
    674       PixelDst := pointer(integer(PixelDst) + 3);
    675       PixelSrc := pointer(integer(PixelSrc) + 1);
     676      PixelDst := Pointer(PixelDst) + 3;
     677      PixelSrc := Pointer(PixelSrc) + 1;
    676678    end;
    677679    inc(yDst);
    678680    inc(ySrc);
    679681  end;
     682  src.EndUpdate;
    680683  dst.EndUpdate;
    681684end;
     
    763766  while y < h do
    764767  begin
    765     Pixel := pointer(integer(bmp.ScanLine[y]) + 3 * x);
     768    Pixel := pointer(bmp.ScanLine[y]) + 3 * x;
    766769    for i := 0 to w - 1 do
    767770    begin
     
    776779      Pixel[1] := Green;
    777780      Pixel[2] := Red;
    778       Pixel := pointer(integer(Pixel) + 3);
     781      Pixel := pointer(Pixel) + 3;
    779782    end;
    780783    inc(y);
Note: See TracChangeset for help on using the changeset viewer.