aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/lib/PngImage/pngimage.pas
diff options
context:
space:
mode:
authorjaybinks <jaybinks@b956fd51-792f-4845-bead-9b4dfca2ff2c>2007-09-18 10:47:12 +0000
committerjaybinks <jaybinks@b956fd51-792f-4845-bead-9b4dfca2ff2c>2007-09-18 10:47:12 +0000
commit12a7652fe6cf20441dec4aae8156978bf751861f (patch)
tree6c2d3c5ac6a91660f4f15595780617811e8a0169 /Game/Code/lib/PngImage/pngimage.pas
parent5a778181e947cfb883f85d3239f6d1f1714dacc8 (diff)
downloadusdx-12a7652fe6cf20441dec4aae8156978bf751861f.tar.gz
usdx-12a7652fe6cf20441dec4aae8156978bf751861f.tar.xz
usdx-12a7652fe6cf20441dec4aae8156978bf751861f.zip
pngimage is NOT ( yet ) lazarus compatible
It might compile, however the object files are in borland obj format to use this, it will need to be in GCC object file format format Or we can use the lazarus / freepascal png unit if we decide that pngimage IS required ( and we cant use the lazarus unit ) then we should investigate how this developer went with the port. http://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewtopic&t=3206 git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@388 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'Game/Code/lib/PngImage/pngimage.pas')
-rw-r--r--Game/Code/lib/PngImage/pngimage.pas58
1 files changed, 33 insertions, 25 deletions
diff --git a/Game/Code/lib/PngImage/pngimage.pas b/Game/Code/lib/PngImage/pngimage.pas
index ec712737..ecd52c5b 100644
--- a/Game/Code/lib/PngImage/pngimage.pas
+++ b/Game/Code/lib/PngImage/pngimage.pas
@@ -109,8 +109,15 @@ unit pngimage;
interface
+{$IFDEF FPC}
+ {$MODE DELPHI}
+{$ENDIF}
+
{Triggers avaliable (edit the fields bellow)}
+{$IFNDef FPC}
{$DEFINE UseDelphi} //Disable fat vcl units (perfect to small apps)
+{$ENDIF}
+
{$DEFINE ErrorOnUnknownCritical} //Error when finds an unknown critical chunk
{$DEFINE CheckCRC} //Enables CRC checking
{$DEFINE RegisterGraphic} //Registers TPNGObject to use with TPicture
@@ -122,8 +129,17 @@ interface
uses
- Windows {$IFDEF UseDelphi}, Classes, Graphics, SysUtils{$ENDIF} {$IFDEF Debug},
- dialogs{$ENDIF}, pngzlib, pnglang;
+ Windows,
+ {$IFDEF UseDelphi}
+ Classes,
+ Graphics,
+ SysUtils,
+ {$ENDIF}
+ {$IFDEF Debug}
+ dialogs,
+ {$ENDIF}
+ pngzlib,
+ pnglang;
{$IFNDEF UseDelphi}
const
@@ -1249,8 +1265,7 @@ begin
if Output = nil then
GetMem(Output, OutputSize) else ReallocMem(Output, OutputSize);
{Copies the new data}
- CopyMemory(Ptr(Longint(Output) + OutputSize - total_out),
- @Buffer, total_out);
+ CopyMemory(pointer(Longint(Output) + OutputSize - total_out), @Buffer, total_out);
end {if (InflateRet = Z_STREAM_END) or (InflateRet = 0)}
{Now tests for errors}
else if InflateRet < 0 then
@@ -1309,8 +1324,7 @@ begin
GetMem(Output, OutputSize) else ReallocMem(Output, OutputSize);
{Copies the new data}
- CopyMemory(Ptr(Longint(Output) + OutputSize - total_out),
- @Buffer, total_out);
+ CopyMemory(Pointer(Longint(Output) + OutputSize - total_out), @Buffer, total_out);
end {if (InflateRet = Z_STREAM_END) or (InflateRet = 0)}
{Now tests for errors}
else if DeflateRet < 0 then
@@ -1676,7 +1690,7 @@ function TStream.GetSize: Longint;
function TResourceStream.Read(var Buffer; Count: Integer): Cardinal;
begin
//Returns data
- CopyMemory(@Buffer, Ptr(Longint(Memory) + Position), Count);
+ CopyMemory(@Buffer, pointer(Longint(Memory) + Position), Count);
//Update position
inc(Position, Count);
//Returns
@@ -1938,9 +1952,9 @@ begin
if Keyword <> '' then
CopyMemory(Data, @fKeyword[1], Length(Keyword));
{Compression method 0 (inflate/deflate)}
- pByte(Ptr(Longint(Data) + Length(Keyword) + 1))^ := 0;
+ pByte(pointer(Longint(Data) + Length(Keyword) + 1))^ := 0;
if OutputSize > 0 then
- CopyMemory(Ptr(Longint(Data) + Length(Keyword) + 2), Output, OutputSize);
+ CopyMemory(pointer(Longint(Data) + Length(Keyword) + 2), Output, OutputSize);
{Let ancestor calculate crc and save}
Result := SaveData(Stream);
@@ -1969,8 +1983,7 @@ begin
{Get text}
fKeyword := PChar(Data);
SetLength(fText, Size - Length(fKeyword) - 1);
- CopyMemory(@fText[1], Ptr(Longint(Data) + Length(fKeyword) + 1),
- Length(fText));
+ CopyMemory(@fText[1], pointer(Longint(Data) + Length(fKeyword) + 1), Length(fText));
end;
{Saving the chunk to a stream}
@@ -1984,8 +1997,7 @@ begin
if Keyword <> '' then
CopyMemory(Data, @fKeyword[1], Length(Keyword));
if Text <> '' then
- CopyMemory(Ptr(Longint(Data) + Length(Keyword) + 1), @fText[1],
- Length(Text));
+ CopyMemory(pointer(Longint(Data) + Length(Keyword) + 1), @fText[1], Length(Text));
{Let ancestor calculate crc and save}
Result := inherited SaveToStream(Stream);
end;
@@ -2819,12 +2831,10 @@ begin
{Get current row index}
CurrentRow := RowStart[CurrentPass];
{Get a pointer to the current row image data}
- Data := Ptr(Longint(Header.ImageData) + Header.BytesPerRow *
- (ImageHeight - 1 - CurrentRow));
- Trans := Ptr(Longint(Header.ImageAlpha) + ImageWidth * CurrentRow);
+ Data := pointer(Longint(Header.ImageData) + Header.BytesPerRow * (ImageHeight - 1 - CurrentRow));
+ Trans := pointer(Longint(Header.ImageAlpha) + ImageWidth * CurrentRow);
{$IFDEF Store16bits}
- Extra := Ptr(Longint(Header.ExtraImageData) + Header.BytesPerRow *
- (ImageHeight - 1 - CurrentRow));
+ Extra := pointer(Longint(Header.ExtraImageData) + Header.BytesPerRow * (ImageHeight - 1 - CurrentRow));
{$ENDIF}
if Row_Bytes > 0 then {There must have bytes for this interlaced pass}
@@ -3808,9 +3818,8 @@ begin
{Get current row index}
CurrentRow := RowStart[CurrentPass];
{Get a pointer to the current row image data}
- Data := Ptr(Longint(Header.ImageData) + Header.BytesPerRow *
- (ImageHeight - 1 - CurrentRow));
- Trans := Ptr(Longint(Header.ImageAlpha) + ImageWidth * CurrentRow);
+ Data := pointer(Longint(Header.ImageData) + Header.BytesPerRow * (ImageHeight - 1 - CurrentRow));
+ Trans := pointer(Longint(Header.ImageAlpha) + ImageWidth * CurrentRow);
{Process all the image rows}
if Row_Bytes > 0 then
@@ -4021,9 +4030,9 @@ begin
FOR j := 0 TO fCount - 1 DO
with BitmapInfo.bmiColors[j] do
begin
- DataPtr^ := Owner.InverseGamma[rgbRed]; inc(DataPtr);
+ DataPtr^ := Owner.InverseGamma[rgbRed] ; inc(DataPtr);
DataPtr^ := Owner.InverseGamma[rgbGreen]; inc(DataPtr);
- DataPtr^ := Owner.InverseGamma[rgbBlue]; inc(DataPtr);
+ DataPtr^ := Owner.InverseGamma[rgbBlue] ; inc(DataPtr);
end {with BitmapInfo};
{Let ancestor do the rest of the work}
@@ -5100,8 +5109,7 @@ begin
(X mod (8 div DataDepth)) * DataDepth));
{Setting the new pixel}
- ByteData^ := ByteData^ or (ValEntry shl ((8 - DataDepth) -
- (X mod (8 div DataDepth)) * DataDepth));
+ ByteData^ := ByteData^ or (ValEntry shl ((8 - DataDepth) - (X mod (8 div DataDepth)) * DataDepth));
end {with png.Header}
end;