X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fshared%2Futils.pas;h=c0ba824a9615188a05e25f4b0ac835f22bef2ffd;hb=48b4e4111d5f86af9a0f968f5ef7cf76b3ce538b;hp=946e4f5a07c7a31a5422fad1f2f479fb83ffce6a;hpb=1b867d9fa61767acfef258fe29b900d3fd1af104;p=d2df-sdl.git diff --git a/src/shared/utils.pas b/src/shared/utils.pas index 946e4f5..c0ba824 100644 --- a/src/shared/utils.pas +++ b/src/shared/utils.pas @@ -36,6 +36,12 @@ const wadExtensions: array [0..6] of AnsiString = ( '.dfzip' ); +{$IF DEFINED(FREEBSD) OR DEFINED(DARWIN)} +const NilThreadId = nil; +{$ELSE} +const NilThreadId = 0; +{$ENDIF} + // ////////////////////////////////////////////////////////////////////////// // type @@ -189,6 +195,7 @@ function readLongIntBE (st: TStream): LongInt; function readInt64BE (st: TStream): Int64; function readUInt64BE (st: TStream): UInt64; +function nlerp (a, b: Integer; t: Single): Integer; inline; function nmin (a, b: Byte): Byte; inline; overload; function nmin (a, b: ShortInt): ShortInt; inline; overload; @@ -200,7 +207,7 @@ function nmin (a, b: Int64): Int64; inline; overload; function nmin (a, b: UInt64): UInt64; inline; overload; function nmin (a, b: Single): Single; inline; overload; function nmin (a, b: Double): Double; inline; overload; -{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)} +{$IFDEF FPC_HAS_TYPE_EXTENDED} function nmin (a, b: Extended): Extended; inline; overload; {$ENDIF} @@ -214,7 +221,7 @@ function nmax (a, b: Int64): Int64; inline; overload; function nmax (a, b: UInt64): UInt64; inline; overload; function nmax (a, b: Single): Single; inline; overload; function nmax (a, b: Double): Double; inline; overload; -{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)} +{$IFDEF FPC_HAS_TYPE_EXTENDED} function nmax (a, b: Extended): Extended; inline; overload; {$ENDIF} function nclamp (v, a, b: Byte): Byte; inline; overload; @@ -227,7 +234,7 @@ function nclamp (v, a, b: Int64): Int64; inline; overload; function nclamp (v, a, b: UInt64): UInt64; inline; overload; function nclamp (v, a, b: Single): Single; inline; overload; function nclamp (v, a, b: Double): Double; inline; overload; -{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)} +{$IFDEF FPC_HAS_TYPE_EXTENDED} function nclamp (v, a, b: Extended): Extended; inline; overload; {$ENDIF} @@ -1528,6 +1535,8 @@ function readUInt64BE (st: TStream): UInt64; begin readIntegerBE(st, @result, 8) // ////////////////////////////////////////////////////////////////////////// // +function nlerp (a, b: Integer; t: Single): Integer; inline; begin result := round((1.0 - t) * a + t * b); end; + function nmin (a, b: Byte): Byte; inline; overload; begin if (a < b) then result := a else result := b; end; function nmin (a, b: ShortInt): ShortInt; inline; overload; begin if (a < b) then result := a else result := b; end; function nmin (a, b: Word): Word; inline; overload; begin if (a < b) then result := a else result := b; end; @@ -1538,7 +1547,7 @@ function nmin (a, b: Int64): Int64; inline; overload; begin if (a < b) then resu function nmin (a, b: UInt64): UInt64; inline; overload; begin if (a < b) then result := a else result := b; end; function nmin (a, b: Single): Single; inline; overload; begin if (a < b) then result := a else result := b; end; function nmin (a, b: Double): Double; inline; overload; begin if (a < b) then result := a else result := b; end; -{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)} +{$IFDEF FPC_HAS_TYPE_EXTENDED} function nmin (a, b: Extended): Extended; inline; overload; begin if (a < b) then result := a else result := b; end; {$ENDIF} @@ -1552,7 +1561,7 @@ function nmax (a, b: Int64): Int64; inline; overload; begin if (a > b) then resu function nmax (a, b: UInt64): UInt64; inline; overload; begin if (a > b) then result := a else result := b; end; function nmax (a, b: Single): Single; inline; overload; begin if (a > b) then result := a else result := b; end; function nmax (a, b: Double): Double; inline; overload; begin if (a > b) then result := a else result := b; end; -{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)} +{$IFDEF FPC_HAS_TYPE_EXTENDED} function nmax (a, b: Extended): Extended; inline; overload; begin if (a > b) then result := a else result := b; end; {$ENDIF} @@ -1566,7 +1575,7 @@ function nclamp (v, a, b: Int64): Int64; inline; overload; begin if (v < a) then function nclamp (v, a, b: UInt64): UInt64; inline; overload; begin if (v < a) then result := a else if (v > b) then result := b else result := v; end; function nclamp (v, a, b: Single): Single; inline; overload; begin if (v < a) then result := a else if (v > b) then result := b else result := v; end; function nclamp (v, a, b: Double): Double; inline; overload; begin if (v < a) then result := a else if (v > b) then result := b else result := v; end; -{$IF DEFINED(CPU386) OR DEFINED(CPUAMD64)} +{$IFDEF FPC_HAS_TYPE_EXTENDED} function nclamp (v, a, b: Extended): Extended; inline; overload; begin if (v < a) then result := a else if (v > b) then result := b else result := v; end; {$ENDIF}