Kicking it Olde Sküül! Burgerlib on Github Follow Olde Sküül on Twitter Burgerbecky on LinkedIn Burgerbecky on LinkedIn
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Burger Namespace Reference

Namespaces

namespace  Debug
 Group of functions to assist in debugging.
 
namespace  Flash
 Functions and classes to support playing Adobe Flash files.
 
namespace  Linux
 
namespace  MacOS
 Functions specific to MacOS.
 
namespace  MacOSX
 
namespace  MSDos
 Functions specific to MS/DOS.
 
namespace  PS4
 
namespace  Switch
 
namespace  type_traits
 Semi-private template classes for type checking.
 
namespace  Unix
 
namespace  Vulkan
 
namespace  Win32
 Namespace for Windows specific functions and classes.
 
namespace  Xbox360
 

Classes

struct  add_const
 Add the const qualifier to a type. More...
 
struct  add_cv
 Add the const and volatile qualifier to a type. More...
 
struct  add_volatile
 Add the volatile qualifier to a type. More...
 
struct  ADPCMState_t
 
struct  alignment_of
 Determine the alignment of an object. More...
 
class  allocator
 Implementation of std::allocator<> More...
 
class  allocator< const void >
 Implementation of std::allocator<void> More...
 
class  allocator< void >
 Implementation of std::allocator<void> More...
 
class  AllocatorANSI
 ANSI Memory Manager object. More...
 
struct  AllocatorBase
 Base class for memory manager objects. More...
 
class  AllocatorHandle
 
class  ArgumentType
 Container class for passing data to SafePrint. More...
 
struct  ArgumentType_Dispatch
 Intrinsic data type dispatcher. More...
 
struct  ArgumentType_DispatchPtr
 Intrinsic data type dispatcher. More...
 
union  ArgumentType_t
 Base structure for ArgumentType. More...
 
union  ArgumentTypeDataUnion_t
 Data stored in this object. More...
 
struct  Assert_t
 Container structure for Assert support. More...
 
class  AutoreleasePool
 Create an instance of a NSAutoreleasePool. More...
 
class  AutoRepeat
 Autorepeat a joystick. More...
 
class  Base
 Base class for virtual destructor. More...
 
struct  BigEndian
 Loads a 16, 32 or 64 bit value with byte swapping if needed. More...
 
struct  bool_constant
 Wrap a static bool constant. More...
 
class  CaptureStdout
 Class to capture stdout and stderr. More...
 
class  ClassArray
 Template for creating arrays of class objects. More...
 
class  CodeFramework
 Manage MacOSX / iOS Framework library files. More...
 
class  CodeLibrary
 Manage code library files. More...
 
class  CodePage
 Shared constants for code page handlers. More...
 
class  CommandParameter
 Base class for command line parameters. More...
 
class  CommandParameterBooleanTrue
 Class for a boolean command line parameters. More...
 
class  CommandParameterString
 Class for a string command line parameter. More...
 
class  CommandParameterWordPtr
 Class for a numeric string command line parameter. More...
 
class  Compress
 Base class for data compression. More...
 
class  CompressDeflate
 Compress data using Deflate Encoding. More...
 
class  CompressILBMRLE
 Compress data using ILBM Run Length Encoding. More...
 
class  CompressLZSS
 Compress data using LZSS encoding. More...
 
struct  conditional
 Select a type based if the conditional is true or false. More...
 
class  ConditionVariable
 Class for creating a condition variable. More...
 
class  ConsoleApp
 Base class for console applications. More...
 
struct  CPUID_t
 Structure that holds the features of the CPU. More...
 
class  Decompress
 Base class for data decompression. More...
 
class  Decompress16BitBEAudio
 Process 16 bit audio data in Big Endian format. More...
 
class  Decompress16BitLEAudio
 Process 16 bit audio data in Little Endian format. More...
 
class  Decompress32BitBEAudio
 Process 32 bit audio data in Big Endian format. More...
 
class  Decompress32BitLEAudio
 Process 32 bit audio data in Little Endian format. More...
 
class  DecompressALaw
 Process audio data compressed with ALaw. More...
 
class  DecompressAudio
 Base class for audio decompression codec. More...
 
class  DecompressDeflate
 Decompress Deflate format. More...
 
class  DecompressILBMRLE
 Decompress RLE format. More...
 
class  DecompressLZSS
 Decompress LZSS format. More...
 
class  DecompressMace3
 Decompress MACE 3 format. More...
 
class  DecompressMace6
 Decompress MACE 6 format. More...
 
class  DecompressMicrosoftADPCM
 Decompress Microsoft ADPCM format. More...
 
class  DecompressMP3
 Process audio data compressed with MP3. More...
 
class  DecompressSigned8BitAudio
 Process signed 8 bit audio data. More...
 
class  DecompressULaw
 Process audio data compressed with ULaw. More...
 
class  DecompressUnsigned8BitAudio
 Process unsigned 8 bit audio data. More...
 
struct  default_delete_Base
 
struct  default_delete_Free
 
class  DetectMultiLaunch
 Class to detect multiple launches of a desktop application. More...
 
class  DirectoryEntry_t
 A directory entry returned by DirectorySearch. More...
 
class  DirectorySearch
 Directory contents iteration class. More...
 
class  DirectXPerfMarker
 DirectX performance marker. More...
 
struct  disable_if
 Create typedef type if condition is false. More...
 
class  Display
 Base class for instantiating a video display and the API to drive it. More...
 
class  DisplayDIB
 
class  DisplayDIBSoftware8
 DIB startup and teardown class. More...
 
class  DisplayDirectX11
 
class  DisplayDirectX9
 
class  DisplayDirectX9Software8
 
class  DisplayObject
 Class for managing display objects. More...
 
class  DisplayOpenGL
 
class  DisplayOpenGLSoftware8
 
class  DoubleLinkedList
 Simple double linked list manager. More...
 
struct  DoubleLinkedList_t
 Double linked list. More...
 
struct  Dxt1Packet_t
 Data structure for a DXT1 compressed texture block. More...
 
struct  Dxt3Packet_t
 Data structure for a DXT3 compressed texture block. More...
 
struct  Dxt5Packet_t
 Data structure for a DXT5 compressed texture block. More...
 
class  Effect
 Base class for shader effects. More...
 
class  Effect2D
 
class  Effect2DDX9
 
class  Effect2DOpenGL
 
class  EffectPositionColorTexture
 
class  EffectPositionColorTextureDX9
 
class  EffectPositionColorTextureOpenGL
 
class  EffectPositionTexture
 
class  EffectPositionTextureDX9
 
class  EffectPositionTextureOpenGL
 
struct  enable_if
 Create typedef type if condition is true. More...
 
struct  EventHeader_t
 Base structure for events. More...
 
class  File
 System file reference class. More...
 
class  FileAPF
 Reads files. More...
 
class  FileBMP
 Reads and writes BMP files. More...
 
class  FileDDS
 Reads and writes DDS files. More...
 
class  FileGIF
 Reads and writes GIF files. More...
 
class  FileINI
 Reads and writes INI files. More...
 
class  FileLBM
 Reads and writes LBM files. More...
 
class  FileManager
 Global file system manager. More...
 
class  FileManagerSimple
 Initialization class for the global FileManager structure. More...
 
class  FileMP3
 Reads and writes MP3 files. More...
 
class  Filename
 File name container. More...
 
class  FilePCX
 Reads and writes PCX files. More...
 
class  FilePNG
 Reads and writes PNG files. More...
 
class  FileTGA
 Reads and writes TGA files. More...
 
class  FileXML
 Reads and writes XML files. More...
 
struct  FixedMatrix3D_t
 3 dimensional fixed point matrix More...
 
struct  FixedMatrix4D_t
 4x4 Fixed32 matrix. More...
 
struct  FixedVector2D_t
 2 dimensional fixed point vector More...
 
struct  FixedVector3D_t
 3D Fixed32 vector. More...
 
struct  FixedVector4D_t
 4 dimensional fixed point vector More...
 
class  FloatTimer
 Floating point timer. More...
 
class  Font
 Base class for font manager. More...
 
class  Font4Bit
 Class to render a tiny space 4 bit per pixel font. More...
 
class  ForwardLink
 Singly linked list pointer. More...
 
struct  FourCharacterCode_t
 Helper structure to create 4 characters codes. More...
 
class  FPInfo
 Class for analyzing a floating point number. More...
 
class  FPLargeInt
 Class for managing a very large integer for double precision. More...
 
class  FPPrintInfo
 Digit printing class for floating point. More...
 
class  GameApp
 Base class for video game application. More...
 
struct  GfxShape_t
 
class  GIFDecoder
 GIF style LZW decompresser. More...
 
class  GIFEncoder
 GIF style LZW compressor. More...
 
class  GlobalMemoryManager
 Singleton class for global memory allocation. More...
 
struct  Globals
 Global variables shared by all functions in the application. More...
 
struct  GOST_t
 32 byte array to contain a GOST hash More...
 
struct  GOSTHasher_t
 Multi-pass GOST hash generator. More...
 
class  GridIndexBox
 Class for managing a grid with objects on overlapping areas. More...
 
class  GridIndexPoints
 Manager to handle a grid with singly linked lists with values. More...
 
class  Half
 Container for a 16 bit float. More...
 
class  HashMap
 Key / data pair hash for quick lookup and retrieval. More...
 
class  HashMapShared
 Base class for HashMap. More...
 
class  HashMapString
 String key / data pair hash for quick lookup and retrieval. More...
 
class  HashMapStringCase
 String key / data pair hash for quick lookup and retrieval. More...
 
struct  HSL_t
 Hue, Saturation and Intensity 32 bit floating point values. More...
 
struct  ice_and
 Test for all values being true. More...
 
struct  ice_eq
 Test for equality. More...
 
struct  ice_ne
 Test for inequality. More...
 
struct  ice_not
 Reverse boolean input. More...
 
struct  ice_or
 Test for any value being true. More...
 
class  Image
 Class for containing raw images. More...
 
class  InputMemoryStream
 Fast input memory stream. More...
 
class  InputRezStream
 InputMemoryStream for RezFile. More...
 
struct  integral_constant
 Wrap a static constant of specified type. More...
 
struct  is_arithmetic
 Test if a type is an integer or a floating point number. More...
 
struct  is_const
 Test if a type is const. More...
 
struct  is_floating_point
 Test if a type is a float. More...
 
struct  is_fundamental
 Test if a type is arithmetic or void. More...
 
struct  is_integral
 Test if a type is an integer. More...
 
struct  is_lvalue_reference
 Test if a type is an lvalue reference. More...
 
struct  is_pointer
 Test if a type is a pointer. More...
 
struct  is_reference
 Test if a type is a reference. More...
 
struct  is_rvalue_reference
 Test if a type is an rvalue reference. More...
 
struct  is_same
 Determine if two objects are the same type. More...
 
struct  is_signed
 Test if a type is a signed value. More...
 
struct  is_unsigned
 Test if a type is an unsigned value. More...
 
struct  is_void
 Test if a type is void. More...
 
struct  is_volatile
 Test if a type is volatile. More...
 
class  ISOLatin1
 Conversion routines to support the ISOLatin1 text encoding scheme. More...
 
class  Joypad
 
struct  JoypadButtonEvent_t
 Structure for joypad button events. More...
 
class  Keyboard
 Keyboard input manager. More...
 
struct  KeyEvent_t
 Structure holding a keyboard event. More...
 
class  LastInFirstOut
 Class that manages a last in first out singly linked list. More...
 
class  LinkedListObjects
 Linked list object class. More...
 
class  LinkedListPointer
 Double linked list with pointer class. More...
 
struct  LittleEndian
 Loads a 16, 32 or 64 bit value with byte swapping if needed. More...
 
class  Localization
 Localization functions. More...
 
struct  longlong_t
 
struct  LWShape_t
 
struct  LWXShape_t
 
struct  MacAddress_t
 
struct  MACEState_t
 State of MACE compression/decompression. More...
 
struct  MacOSXOld
 Functions exclusive to Apple macOS. More...
 
class  MacRomanUS
 Conversion routines to support the MacRomanUS text encoding scheme. More...
 
struct  Matrix3D_t
 3 dimensional floating point matrix More...
 
struct  Matrix4D_t
 4 dimensional floating point matrix More...
 
struct  MD2_t
 16 byte array to contain an MD2 hash More...
 
struct  MD2Hasher_t
 Multi-pass MD2 hash generator. More...
 
struct  MD4_t
 16 byte array to contain an MD4 hash More...
 
struct  MD4Hasher_t
 Multi-pass MD4 hash generator. More...
 
struct  MD5_t
 16 byte array to contain an MD5 hash More...
 
struct  MD5Hasher_t
 Multi-pass MD5 hash generator. More...
 
struct  MemoryManager
 Base class for memory managers. More...
 
class  MemoryManagerANSI
 ANSI Memory Manager. More...
 
class  MemoryManagerGlobalANSI
 Global ANSI Memory Manager helper class. More...
 
class  MemoryManagerGlobalHandle
 Global Handle Memory Manager helper class. More...
 
class  MemoryManagerHandle
 Handle based Memory Manager. More...
 
class  Mouse
 Class for mouse input. More...
 
struct  MouseButtonEvent_t
 Structure for mouse button events. More...
 
struct  MouseMotionEvent_t
 Structure for mouse motion events. More...
 
struct  MousePositionEvent_t
 Structure for mouse position events. More...
 
struct  MouseWheelEvent_t
 Structure for mouse wheel events. More...
 
class  MPLastInFirstOut
 Thread safe class that manages a last in first out singly linked list. More...
 
class  Mutex
 Class for creating a Mutex for a critical section of data. More...
 
class  MutexLock
 Class for locking and releasing a mutex in a function. More...
 
class  MutexStatic
 Class for creating a Mutex for a statically allocated critical section of data. More...
 
struct  NativeEndian
 Loads a 16, 32 or 64 bit value with no byte swapping. More...
 
struct  NetAddr_t
 Generic structure to contain a network address. More...
 
struct  NetPacket_t
 
class  NetPlay
 Network game manager. More...
 
class  NetworkEndpoint
 Base class for network endpoints. More...
 
class  NetworkEndpointInstance
 Base class for network endpoint instances. More...
 
class  NetworkEndpointInstanceTCP
 
class  NetworkEndpointTCP
 
struct  NetworkEnumPacketTCP_t
 
class  NetworkManager
 
class  NetworkModule
 
struct  NetworkModuleInfo_t
 Structure to obtain information from a NetworkModule. More...
 
class  NetworkModuleSettings
 Abstract class for settings for endpoints. More...
 
class  NetworkModuleSettingsTCP
 
class  NetworkModuleTCP
 
class  NumberString
 Simple "C" string numeric conversion class. More...
 
class  NumberStringHex
 Simple "C" string hexadecimal conversion class. More...
 
class  OSCursor
 Class to handle an operating system cursor. More...
 
class  OSCursorImage
 Class to generate an operating system cursor. More...
 
class  OutputMemoryStream
 Fast output memory stream. More...
 
class  Pair
 Template for creating an object pair. More...
 
class  Palette
 Static functions to manage palettes. More...
 
class  Perforce
 Handle a connection to a perforce server. More...
 
struct  Point2D_t
 Integer 2D coordinate. More...
 
class  ProxyReferenceCounter
 Class to track an object that can be deleted at any time. More...
 
class  Queue
 A simple first in first out queue. More...
 
class  Random
 A simple random number generator. More...
 
class  RandomBase
 A random number generator base class. More...
 
class  RandomMersenneTwist
 Random number generator using Mersenne Twist (MT19937) More...
 
struct  Rect_t
 Structure describing an integer precision 2D rectangle. More...
 
class  ReferenceCounter
 Class to track an object using SmartPointer. More...
 
struct  remove_const
 Remove the const qualifier from a type. More...
 
struct  remove_cv
 Remove the volatile and const qualifier from a type. More...
 
struct  remove_pointer
 Remove the reference qualifier to a type. More...
 
struct  remove_reference
 Remove the reference qualifier to a type. More...
 
struct  remove_volatile
 Remove the volatile qualifier from a type. More...
 
class  Renderer
 Base graphics renderer class. More...
 
class  RendererSoftware16
 16 bit software renderer More...
 
class  RendererSoftware8
 8 bit paletted software renderer More...
 
class  RezFile
 Rez file manager. More...
 
struct  RGBAFloat_t
 Red, Green,Blue and Alpha 32 bit floating point values. More...
 
struct  RGBAWord16_t
 Red, Green,Blue and Alpha 16 bit values. More...
 
struct  RGBAWord8_t
 Red, Green,Blue and Alpha 8 bit values. More...
 
struct  RGBFloat_t
 Red, Green and Blue 32 bit floating point values. More...
 
struct  RGBWord16_t
 Red, Green and Blue 16 bit values. More...
 
struct  RGBWord8_t
 Red, Green and Blue 8 bit values. More...
 
class  RunQueue
 Simple manager of a list of function pointers. More...
 
class  SafePrint
 Container class for SafePrint functions. More...
 
class  Semaphore
 Class for creating a semaphore. More...
 
class  Sequencer
 
struct  SHA1_t
 20 byte array to contain a SHA-1 hash More...
 
struct  SHA1Hasher_t
 Multi-pass SHA1 hash generator. More...
 
class  Shader2DCColor
 
class  Shader2DCColorDX9
 
class  Shader2DCColorOpenGL
 
class  Shader2DColorVertex
 
class  Shader2DColorVertexDX9
 
class  Shader2DColorVertexOpenGL
 
struct  Shape8Bit_t
 
struct  Shape8BitArray_t
 
struct  Shape8BitOffset_t
 
struct  Shape8BitOffsetArray_t
 
class  SimpleArray
 Template for creating arrays of intrinsic objects. More...
 
class  SimpleArrayBase
 Base class for SimpleArray. More...
 
class  SimpleString
 Simple "C" string container. More...
 
class  SmartPointer
 Template for auto reference counting a pointer. More...
 
class  SoundBufferRez
 Convenience class for sound files in resources. More...
 
class  SoundManager
 
struct  StaticRTTI
 Structure to handle simple Run Time Type Identification. More...
 
class  Steam
 
class  String
 UTF 8 bit string class. More...
 
class  String16
 UTF 16 bit string class. More...
 
struct  SwapEndian
 Swap the byte order of 16, 32 and 64 bit values. More...
 
class  Texture
 Class for managing hardware images. More...
 
class  TextureDirectX9
 Class for containing raw images. More...
 
class  TextureOpenGL
 
class  Thread
 Class for creating a thread. More...
 
struct  ThreadLocalStorage_t
 Simple array of ThreadLocalStorageEntry_t records. More...
 
struct  ThreadLocalStorageEntry_t
 Thread local storage for shutdown callback. More...
 
struct  ThreadLocalStorageRecord_t
 Internal record to match ThreadLocalStorage_t to a thread. More...
 
class  Tick
 Low level timer manager. More...
 
struct  TimeDate_t
 Structure to hold a date and time. More...
 
union  uint32_float_t
 Union to create float values with integer constants. More...
 
union  uint64_double_t
 Union to create double values with integer constants. More...
 
struct  ulonglong_t
 
class  Uname
 
struct  unique_ptr
 Simplified implementation of std::unique_ptr. More...
 
struct  unique_ptr_array
 
struct  unique_ptr_Base
 
struct  unique_ptr_Free
 
class  UTF16
 Conversion routines to the UTF8 format. More...
 
class  UTF32
 Conversion routines to the UTF32 format. More...
 
class  UTF8
 Conversion routines to support the UTF8 format. More...
 
struct  Vector2D_t
 2 dimensional floating point vector More...
 
struct  Vector3D_t
 3 dimensional floating point vector More...
 
struct  Vector4D_t
 4 dimensional floating point vector More...
 
struct  Vector_128Float32
 Structure to create a 128 vector with 32 bit floating point constants. More...
 
struct  Vector_128Float64
 Structure to create a 128 vector with 64 bit floating point constants. More...
 
struct  Vector_128Int32
 Structure to create a 128 vector with 32 bit signed integer constants. More...
 
struct  Vector_128Word16
 Structure to create a 128 vector with 16 bit unsigned integer constants. More...
 
struct  Vector_128Word32
 Structure to create a 128 vector with 32 bit unsigned integer constants. More...
 
struct  Vector_128Word64
 Structure to create a 128 vector with 64 bit unsigned integer constants. More...
 
struct  Vector_128Word8
 Structure to create a 128 vector with 8 bit unsigned integer constants. More...
 
class  VertexBuffer
 
class  VertexBufferDirectX9
 
class  VertexBufferOpenGL
 
class  WeakAndStrongBase
 Base class to support WeakPointer and SmartPointer. More...
 
class  WeakPointer
 Template for tracking an object that could self destruct. More...
 
class  WeakPointerAnchor
 Private sub class for use by WeakPointer. More...
 
class  Win1252
 Conversion routines to support the Win1252 text encoding scheme. More...
 
class  Win437
 Conversion routines to support the Win437 text encoding scheme. More...
 
struct  Word32ToVector2D_t
 Structure to create a Vector2D_t with 32 bit unsigned integer constants. More...
 
struct  Word32ToVector3D_t
 Structure to create a Vector3D_t with 32 bit unsigned integer constants. More...
 
struct  XInputGamePad_t
 Persistent state of an XInput gamepad. More...
 

Typedefs

typedef uint8_t Float80Bit[10]
 80 bit float(Extended)
 
typedef bool_constant< true > true_type
 Static bool constant of true.
 
typedef bool_constant< false > false_type
 Static bool constant of false.
 
typedef uint16_t float16_t
 16 bit float
 
typedef uintptr_t ThreadID
 Platform Thread ID.
 
typedef void(* TLSShutdownProc) (void *pThis)
 Callback prototype for TLS shutdown.
 
typedef uintptr_t SocketType
 Cross platform type for a socket.
 
typedef DisplayDirectX9 DisplayDefault
 
typedef Effect2DDX9 Effect2DDefault
 
typedef EffectPositionColorTextureDX9 EffectPositionColorTextureDefault
 
typedef EffectPositionTextureDX9 EffectPositionTextureDefault
 
typedef Shader2DCColorDX9 Shader2DCColorDefault
 
typedef Shader2DColorVertexDX9 Shader2DColorVertexDefault
 
typedef VertexBufferDirectX9 VertexBufferDefault
 

Enumerations

enum  eError {
  kErrorNone , kErrorGeneric = 0x7000 , kErrorInvalidParameter , kErrorInvalidArgument ,
  kErrorNotInitialized , kErrorAlreadyInitialized , kErrorNotSupported , kErrorNotSupportedOnThisPlatform ,
  kErrorVersionMismatch , kErrorItemNotFound , kErrorNotReady , kErrorOutOfEntries ,
  kErrorOutOfBounds , kErrorFailedTest , kErrorDuplicateEntries , kErrorRestartRequired ,
  kErrorFile = 0x7100 , kErrorFileNotFound , kErrorPathNotFound , kErrorVolumeNotFound ,
  kErrorWriteProtected , kErrorNoMoreFileDescriptors , kErrorFileTableOverflow , kErrorDirectoryNotEmpty ,
  kErrorNotAFile , kErrorNotADirectory , kErrorFileExists , kErrorOpenFailure ,
  kErrorReadFailure , kErrorWriteFailure , kErrorSeekFailure , kErrorAccessDenied ,
  kErrorResourceNotFound , kErrorIO , kErrorEndOfFile , kErrorIsLocked ,
  kErrorMemory = 0x7200 , kErrorOutOfMemory , kErrorDataCorruption , kErrorBadAlignment ,
  kErrorNoData , kErrorBufferTooSmall , kErrorBufferTooLarge , kErrorAudio = 0x7300 ,
  kErrorAudioDriverFailure , kErrorAudioFormatNotSupported , kErrorNetwork = 0x7400 , kErrorCancelled ,
  kErrorRefused , kErrorNetworkFailure , kErrorDataStarvation , kErrorSocketFailure ,
  kErrorAcceptFailure , kErrorAddressNotFound , kErrorFlowInterrupted , kErrorVideo = 0x7500 ,
  kErrorColorDepthNotSupported , kErrorResolutionNotSupported , kErrorGPUFailure , kErrorShaderCompile ,
  kErrorShaderIncludeMissing , kErrorOutOfVideoMemory , kErrorPalette , kErrorThread = 0x7600 ,
  kErrorTimeout , kErrorEnumerationInProgress , kErrorNotEnumerating , kErrorCantLock ,
  kErrorCantUnlock , kErrorThreadNotStarted , kErrorThreadAlreadyStarted , kErrorThreadCantStop ,
  kErrorThreadNotFound , kErrorThreadNotModified
}
 Decompression error code. More...
 
enum  eThreadPriority {
  kThreadPriorityInvalid , kThreadPriorityLow , kThreadPriorityNormal , kThreadPriorityHigh ,
  kThreadPriorityRealTime
}
 Thread priority setting. More...
 
enum  e8087Precision { k8087Precision24Bit = 0 , k8087PrecisionInvalid = 1 , k8087Precision56Bit = 2 , k8087Precision64Bit = 3 }
 32 bit Intel floating point precision More...
 
enum  e8087Rounding { k8087RoundingNearest = 0 , k8087RoundingDown = 1 , k8087RoundingUp = 2 , k8087RoundingTruncate = 3 }
 32 bit Intel floating point rounding mode More...
 
enum  ePowerPCRounding { kPPCRoundingNearest = 0 , kPPCRoundingTruncate = 1 , kPPCRoundingUp = 2 , kPPCRoundingDown = 3 }
 PowerPC floating point rounding mode. More...
 
enum  eArgumentType {
  kArgumentTypeInvalid , kArgumentTypeInt8 , kArgumentTypeInt16 , kArgumentTypeInt32 ,
  kArgumentTypeInt64 , kArgumentTypeUInt8 , kArgumentTypeUInt16 , kArgumentTypeUInt32 ,
  kArgumentTypeUInt64 , kArgumentTypeFloat16 , kArgumentTypeFloat32 , kArgumentTypeFloat64 ,
  kArgumentTypeBool , kArgumentTypeVector2 , kArgumentTypeVector4 , kArgumentTypeVector4Int ,
  kArgumentTypeVector4Dbl , kArgumentTypeBurgerStringPtr , kArgumentTypeCharPtr , kArgumentTypeInt8Ptr ,
  kArgumentTypeUInt8Ptr , kArgumentTypeInt16Ptr , kArgumentTypeUInt16Ptr , kArgumentTypeInt32Ptr ,
  kArgumentTypeUInt32Ptr , kArgumentTypeInt64Ptr , kArgumentTypeUInt64Ptr , kArgumentTypeFloat32Ptr ,
  kArgumentTypeFloat64Ptr , kArgumentTypeBoolPtr , kArgumentTypeVector2Ptr , kArgumentTypeVector4Ptr ,
  kArgumentTypeVector4IntPtr , kArgumentTypeVector4DblPtr , kArgumentTypeVoidPtr , kArgumentTypeCount ,
  kArgumentTypeAny , kArgumentTypeFirstInt = kArgumentTypeInt8 , kArgumentTypeLastInt = kArgumentTypeUInt64 , kArgumentTypeFirstSigned = kArgumentTypeInt8 ,
  kArgumentTypeLastSigned = kArgumentTypeInt64 , kArgumentTypeFirstUnsigned = kArgumentTypeUInt8 , kArgumentTypeLastUnsigned = kArgumentTypeUInt64 , kArgumentTypeFirstFloat = kArgumentTypeFloat16 ,
  kArgumentTypeLastFloat = kArgumentTypeFloat64 , kArgumentTypeFirstCString = kArgumentTypeBurgerStringPtr , kArgumentTypeLastCString = kArgumentTypeUInt8Ptr , kArgumentTypeFirstPointer = kArgumentTypeBurgerStringPtr ,
  kArgumentTypeLastPointer = kArgumentTypeVoidPtr , kArgumentTypeFirstVector = kArgumentTypeVector2 , kArgumentTypeLastVector = kArgumentTypeVector4Dbl , kArgumentTypeFirstVectorPointer = kArgumentTypeVector2Ptr ,
  kArgumentTypeLastVectorPointer = kArgumentTypeVector4DblPtr
}
 Type stored in this object. More...
 
enum  eNumericConversionFlags : uint_t { NOENDINGNULL = 0x4000 , LEADINGZEROS = 0x8000 }
 Bit flags to control numeric text generation. More...
 
enum  eASCIITypeFlag : uint8_t {
  ASCII_LOWER = 0x01 , ASCII_UPPER = 0x02 , ASCII_CONTROL = 0x04 , ASCII_SPACE = 0x08 ,
  ASCII_WHITESPACE = 0x10 , ASCII_PUNCTUATION = 0x20 , kASCIITypeFlagHex = 0x40 , ASCII_DIGIT = 0x80
}
 Bit flags to quickly test low ASCII character type. More...
 
enum  eUnixFlavor {
  kUnixUnknown , kUnixNative , kUnixMSYS2 , kUnixWSL ,
  kUnixCygwin , kUnixMacOSX , kUnixiOS , kUnixAndroid ,
  kUnixStadia
}
 Enum describing the actual platform Unix is running on. More...
 
enum  eTraceFlags {
  kTraceFlagMemoryLeak = 1 , kTraceFlagRezLoad = 2 , kTraceFlagFileLoad = 4 , kTraceFlagRaceWarnings = 8 ,
  kTraceFlagNetwork = 0x10 , kTraceFlagMessages = 0x20 , kTraceFlagActiveDebugging = 0x40 , kTraceFlagAll = 0x7F
}
 Flags to enable debugging features. More...
 
enum  eHintFlags { kHintWin32DisableThreadNamingException = 0x01 }
 Flags to enable/disable underlying code. More...
 
enum  { kSleepYield = 0 , kSleepInfinite = 0xFFFFFFFFU }
 
enum  eEvent {
  EVENT_NULL , EVENT_TIMER , EVENT_KEYDOWN , EVENT_KEYUP ,
  EVENT_KEYAUTO , EVENT_MOUSEDOWN , EVENT_MOUSEUP , EVENT_MOUSEMOVE ,
  EVENT_MOUSEPOSITION , EVENT_MOUSEWHEEL , EVENT_JOYPADDOWN , EVENT_JOYPADUP ,
  EVENT_JOYPADAXIS , EVENT_COUNT
}
 Enumeration for input events. More...
 
enum  eXInputDeadZoneType { XINPUTDEADZONE_NONE , XINPUTDEADZONE_CARDINAL , XINPUTDEADZONE_CENTER }
 
enum  eNetworkProtocol {
  kNetworkProtocolAppleTalk , kNetworkProtocolIP , kNetworkProtocolIPX , kNetworkProtocolBonjour ,
  kNetworkProtocolSteam , kNetworkProtocolXBoxLive , kNetworkProtocolUnknown , kNetworkProtocolCount
}
 ID codes for supported Network protocols. More...
 
enum  eSocketIndexes { kSocketIndexDatagram , kSocketIndexStream , kSocketIndexCount }
 Number of types of sockets available. More...
 
enum  eSocketFlags { kSocketFlagDatagram , kSocketFlagStream = (1 << kSocketIndexStream) , kSocketFlagAll , kSocketFlagNone = 0 }
 Flags for socket types. More...
 

Functions

template<class T >
constexpr remove_reference< T >::type && move (T &&t) noexcept
 Upconvert to && for move semantics.
 
const char * error_lookup_string (eError uError) noexcept
 Convert a Burgerlib error code into a string.
 
uintptr_t error_get_string (char *pOutput, uintptr_t uOutputSize, eError uError) noexcept
 Convert error code to a meaningful message.
 
eError platform_convert_to_error (int iNativeError) noexcept
 Convert platform error code to a Burgerlib error code.
 
int Assert (const char *pCondition, const char *pFilename, uint32_t uLineNumber) noexcept
 Redirect an assert to the application's assert function.
 
void invoke_debugger (void) noexcept
 Enter the debugger if present.
 
void GUID_init (GUID *pOutput) noexcept
 Create a new GUID.
 
void GUID_to_string (char *pOutput, const GUID *pInput) noexcept
 Convert a GUID to a string.
 
eError GUID_from_string (GUID *pOutput, const char *pInput) noexcept
 Convert a GUID string into a GUID.
 
uint_t GUID_hash (const GUID *pInput) noexcept
 Return the 16 bit hash of a GUID.
 
uint_t GUID_is_equal (const GUID *pInput1, const GUID *pInput2) noexcept
 Compare two GUID structures for equality.
 
int GUID_compare (const GUID *pInput1, const GUID *pInput2) noexcept
 Test two GUID for equality.
 
void Delete (const Base *pInput) noexcept
 Delete a base class.
 
uint32_t power_of_two (uint32_t uInput) noexcept
 Round up an integer to the nearest power of 2.
 
uint64_t power_of_two (uint64_t uInput) noexcept
 Round up an integer to the nearest power of 2.
 
float power_of_two (float fInput) noexcept
 Round up a 32 bit float to the nearest power of 2.
 
double power_of_two (double dInput) noexcept
 Round up a 64 bit float to the nearest power of 2.
 
template<class T >
power_of_two (T input) noexcept
 Round up an integer to the nearest power of 2.
 
uint32_t convert_from_BCD (uint32_t uInput) noexcept
 Convert a BCD value into a decimal integer.
 
uint32_t convert_to_BCD (uint32_t uInput) noexcept
 Convert a decimal integer into BCD format.
 
uint32_t bit_reverse (uint32_t uInput, uint_t uBitLength) noexcept
 Reverse the bits in a byte.
 
uint64_t bit_reverse (uint64_t uInput, uint_t uBitLength) noexcept
 Reverse the bits in a byte.
 
uint_t count_set_bits (uint32_t uInput) noexcept
 Calculate the number of set bits.
 
uint_t count_set_bits (uint64_t uInput) noexcept
 Calculate the number of set bits.
 
template<class T , class U >
bool operator== (const allocator< T > &, const allocator< U > &) noexcept
 Allocators are always equal.
 
template<class T , class U >
bool operator!= (const allocator< T > &, const allocator< U > &) noexcept
 Allocators are always equal.
 
void * alloc_platform_memory (uintptr_t uSize) noexcept
 Allocate memory from the underlying operating system.
 
void free_platform_memory (const void *pInput) noexcept
 Release memory back to the underlying operating system.
 
void * Alloc (uintptr_t uSize) noexcept
 Allocate memory.
 
void Free (const void *pInput) noexcept
 Release memory.
 
void * Realloc (const void *pInput, uintptr_t uSize) noexcept
 Reallocate previously allocated memory.
 
void * alloc_clear (uintptr_t uSize) noexcept
 Allocate memory that is preinitialized to zero.
 
void * alloc_copy (const void *pInput, uintptr_t uSize) noexcept
 Allocate a buffer and copy data into it.
 
template<class T >
T * New (void) noexcept
 Allocate a class instance.
 
template<class T >
void Delete (const T *pInput) noexcept
 Dispose of a generic class instance.
 
uint32_t translate_from_UTF8 (const char *pInput, const uint8_t pTranslateTable[128][4]) noexcept
 Translate a single UTF8 stream character into a mapped 8 bit char.
 
uintptr_t translate_from_UTF8 (char *pOutput, uintptr_t uOutputSize, const char *pInput, const uint8_t pTranslateTable[128][4]) noexcept
 Convert a UTF8 stream into a ISOLatin1 "C" string.
 
uintptr_t translate_from_UTF8 (char *pOutput, uintptr_t uOutputSize, const char *pInput, uintptr_t uInputSize, const uint8_t pTranslateTable[128][4]) noexcept
 Convert a UTF8 stream into a ISOLatin1 byte array.
 
float16_t convert_to_float16 (float fInput) noexcept
 Convert a 32 bit float into a 16 bit float.
 
float convert_to_float (float16_t uInput) noexcept
 Convert a 16 bit float into a 32 bit float.
 
void separate_integer_fraction (FPLargeInt *pIntegerPart, FPLargeInt *pFractionalPart, const FPInfo *pFPInfo) noexcept
 Separate integer and fractional values from floating point number.
 
ThreadID get_ThreadID (void) noexcept
 Return the ID of the current thread.
 
eThreadPriority get_thread_priority (ThreadID uThreadID) noexcept
 Get the execution priority of a thread.
 
eError set_thread_priority (ThreadID uThreadID, eThreadPriority uThreadPriority) noexcept
 Set the execution priority of a thread.
 
uint32_t tls_new_index (void) noexcept
 Create a unique index for Thread Local Storage.
 
ThreadLocalStorage_ttls_data_get_fallback (void) noexcept
 Scan for Thread Local Storage (Private)
 
eError tls_data_set_fallback (ThreadLocalStorage_t *pInput) noexcept
 Set a Thread Local Storage entry (Private)
 
ThreadLocalStorage_ttls_data_get (void) noexcept
 Get Thread Local Storage.
 
eError tls_data_set (ThreadLocalStorage_t *pInput) noexcept
 Set a Thread Local Storage entry.
 
void * tls_get (uint32_t uIndex) noexcept
 Get thread local storage for current thread.
 
eError tls_set (uint32_t uIndex, const void *pThis, TLSShutdownProc pShutdown=nullptr) noexcept
 Set thread local storage for current thread.
 
void tls_release (void) noexcept
 Release Thread Local Storage for current thread.
 
ForwardLinkreverse_list (ForwardLink *pRoot) noexcept
 Reverse a singly linked list.
 
uint_t calc_adler16 (const void *pInput, uintptr_t uInputLength, uint_t uAdler16=1) noexcept
 Compute the (Mark) Adler-16 checksum.
 
uint32_t calc_adler32 (const void *pInput, uintptr_t uInputLength, uint32_t uAdler32=1) noexcept
 Compute the (Mark) Adler-32 checksum.
 
uint16_t calc_crc16IBM (const void *pInput, uintptr_t uInputLength, uint16_t uCRC=0) noexcept
 Calculate the CRC16-IBM checksum (MP3) for a buffer.
 
void generate_crc_table (uint16_t *pOutput, uint16_t uPolynomial=0x8005U, uint_t bBitReverse=1) noexcept
 Calculate a CRC16 polynomial table.
 
uint32_t calc_crc32b (const void *pInput, uintptr_t uInputLength, uint32_t uCRC=0) noexcept
 Calculate the CRC32B checksum (ZLib) for a buffer.
 
uint32_t calc_crc32 (const void *pInput, uintptr_t uInputLength, uint32_t uCRC=0) noexcept
 Calculate the CRC32 checksum (Ethernet) for a buffer.
 
void generate_crc_table (uint32_t *pOutput, uint32_t uPolynomial=0x04C11DB7U, uint_t bBitReverse=1) noexcept
 Calculate a CRC32 polynomial table.
 
void hash (MD2_t *pOutput, const void *pInput, uintptr_t uLength) noexcept
 Quickly create an MD2 key.
 
void hash (MD4_t *pOutput, const void *pInput, uintptr_t uLength) noexcept
 Quickly create an MD4 key.
 
void hash (MD5_t *pOutput, const void *pInput, uintptr_t uLength) noexcept
 Quickly create an MD5 key.
 
void hash (GOST_t *pOutput, const void *pInput, uintptr_t uLength) noexcept
 Quickly create a GOST key.
 
void generate_GOST_table (uint32_t *pOutput, const uint32_t pSBoxTable[8][16]=GOSTHasher_t::g_TestParmsSBox) noexcept
 Calculate a GOST polynomial table.
 
void hash (SHA1_t *pOutput, const void *pInput, uintptr_t uLength) noexcept
 Quickly create a SHA-1 key.
 
uintptr_t SDBM_hash (const void *pInput, uintptr_t uInputCount, uint32_t uHashSeed=0U) noexcept
 Hash data using the sdbm (Service Data Base Management) algorithm.
 
uintptr_t SDBM_hash_case (const void *pInput, uintptr_t uInputCount, uint32_t uHashSeed=0U) noexcept
 Hash string data using forced lower case with the sdbm (Service Data Base Management) algorithm.
 
uintptr_t DJB2_hash_add (const void *pInput, uintptr_t uInputCount, uint32_t uHashSeed=5381U) noexcept
 Hash data using the djb2 (Daniel Julius Bernstein) algorithm.
 
uintptr_t DJB2_hash_add_case (const void *pInput, uintptr_t uInputCount, uint32_t uHashSeed=5381U) noexcept
 Hash string data using forced lower case using the djb2 (Daniel Julius Bernstein) algorithm.
 
uintptr_t DJB2_hash_xor (const void *pInput, uintptr_t uInputCount, uint32_t uHashSeed=5381U) noexcept
 Hash data using the djb2 (Daniel Julius Bernstein) algorithm.
 
uintptr_t DJB2_hash_xor_case (const void *pInput, uintptr_t uInputCount, uint32_t uHashSeed=5381U) noexcept
 Hash string data using forced lower case using the djb2 (Daniel Julius Bernstein) algorithm.
 
float _swapendianfloat (float fInput) noexcept
 Swap endian of a 32 bit float.
 
double _swapendiandouble (double dInput) noexcept
 Swap endian of a 64 bit float.
 
float _swapendianfloat (const float *pInput) noexcept
 Swap endian of a 32 bit float from a pointer.
 
double _swapendiandouble (const double *pInput) noexcept
 Swap endian of a 64 bit float.
 
uint16_t _load_unaligned (const uint16_t *pInput) noexcept
 Fetch a 16 bit unsigned value from memory with byte alignment.
 
uint32_t _load_unaligned (const uint32_t *pInput) noexcept
 Fetch a 32 bit unsigned value from memory with byte alignment.
 
uint64_t _load_unaligned (const uint64_t *pInput) noexcept
 Fetch a 64 bit unsigned value from memory with byte alignment.
 
float _load_unaligned (const float *pInput) noexcept
 Fetch a float value from memory with byte alignment.
 
double _load_unaligned (const double *pInput) noexcept
 Fetch a double value from memory with byte alignment.
 
void _store_unaligned (uint16_t *pOutput, uint16_t uInput) noexcept
 Store a 16 bit unsigned value to memory with byte alignment.
 
void _store_unaligned (uint32_t *pOutput, uint32_t uInput) noexcept
 Store a 32 bit unsigned value to memory with byte alignment.
 
void _store_unaligned (uint64_t *pOutput, uint64_t uInput) noexcept
 Store a 64 bit unsigned value to memory with byte alignment.
 
void _store_unaligned (float *pOutput, float fInput) noexcept
 Store a float value to memory with byte alignment.
 
void _store_unaligned (double *pOutput, double dInput) noexcept
 Store a double value to memory with byte alignment.
 
uint16_t _load_unaligned_swap (const uint16_t *pInput) noexcept
 Fetch a 16 bit unsigned reverse endian integer from memory with byte alignment.
 
uint32_t _load_unaligned_swap (const uint32_t *pInput) noexcept
 Fetch a 32 bit unsigned reverse endian integer from memory with byte alignment.
 
uint64_t _load_unaligned_swap (const uint64_t *pInput) noexcept
 Fetch a 64 bit unsigned reverse endian integer from memory with byte alignment.
 
float _load_unaligned_swap (const float *pInput) noexcept
 Fetch a 32 bit reverse endian float from memory with byte alignment.
 
double _load_unaligned_swap (const double *pInput) noexcept
 Fetch a 64 bit reverse endian float from memory with byte alignment.
 
void _store_unaligned_swap (uint16_t *pOutput, uint16_t uInput) noexcept
 Store a 16 bit unsigned value with endian swapping to memory with byte alignment.
 
void _store_unaligned_swap (uint32_t *pOutput, uint32_t uInput) noexcept
 Store a 32 bit unsigned value with endian swapping to memory with byte alignment.
 
void _store_unaligned_swap (uint64_t *pOutput, uint64_t uInput) noexcept
 Store a 64 bit unsigned value with endian swapping to memory with byte alignment.
 
void _store_unaligned_swap (float *pOutput, float fInput) noexcept
 Store a float value to memory with endian swapping with byte alignment.
 
void _store_unaligned_swap (double *pOutput, double dInput) noexcept
 Store a double value to memory with endian swapping with byte alignment.
 
void swap_endian (uint16_t *pInput, uintptr_t uElements) noexcept
 Reverse the endian of an array of 16-bit integers.
 
void swap_endian (uint16_t *pOutput, const uint16_t *pInput, uintptr_t uElements) noexcept
 Reverse the endian of a copied array of 16-bit integers.
 
void swap_endian (uint32_t *pInput, uintptr_t uElements) noexcept
 Reverse the endian of an array of 32-bit integers.
 
void swap_endian (uint32_t *pOutput, const uint32_t *pInput, uintptr_t uElements) noexcept
 Reverse the endian of a copied array of 32-bit integers.
 
void swap_endian (uint64_t *pInput, uintptr_t uElements) noexcept
 Reverse the endian of an array of 64-bit integers.
 
void swap_endian (uint64_t *pOutput, const uint64_t *pInput, uintptr_t uElements) noexcept
 Reverse the endian of a copied array of 64-bit integers.
 
void swap_chars_to_bytes (void *pInput, uintptr_t uLength) noexcept
 Add 128 to every byte to convert a char to a byte or vice versa.
 
void swap_chars_to_bytes (void *pOutput, const void *pInput, uintptr_t uLength) noexcept
 Add 128 to every byte to convert a char to a byte or vice versa.
 
e8087Precision get_8087_precision (void) noexcept
 Get the floating point precision.
 
e8087Precision set_8087_precision (e8087Precision uInput) noexcept
 Change the floating point precision.
 
e8087Rounding get_8087_rounding (void) noexcept
 Get the floating point rounding setting.
 
e8087Rounding set_8087_rounding (e8087Rounding uInput) noexcept
 Change the floating point precision.
 
uint32_t set_mxcsr_flags (uint32_t uOrFlags, uint32_t uAndFlags) noexcept
 Change the SSE floating point precision.
 
ePowerPCRounding get_PowerPC_rounding (void)
 Get the floating point rounding setting.
 
ePowerPCRounding set_PowerPC_rounding (ePowerPCRounding uInput)
 Change the floating point precision.
 
float get_sign (float fInput) noexcept
 Return sign constant.
 
double get_sign (double dInput) noexcept
 Return sign constant.
 
constexpr float square (float fInput) noexcept
 Return the square of the input.
 
constexpr double square (double dInput) noexcept
 Return the square of the input.
 
float absolute (float fInput) noexcept
 Get the absolute value of a float.
 
double absolute (double dInput) noexcept
 Get the absolute value of a double.
 
float square_root (float fInput) noexcept
 Get the square root value of a float.
 
double square_root (double dInput) noexcept
 Get the square root value of a double.
 
constexpr float int_to_float (int32_t iInput) noexcept
 32 bit integer to floating point conversion
 
float int_to_float (const int32_t *pInput) noexcept
 32 bit integer to floating point conversion
 
void int_to_float (float *pOutput, int32_t iInput) noexcept
 32 bit integer to floating point conversion
 
constexpr float fixed_to_float (Fixed32 fInput) noexcept
 32 bit 16.16 fixed point integer to floating point conversion
 
float fixed_to_float (const Fixed32 *pInput) noexcept
 32 bit 16.16 fixed point integer to floating point conversion
 
void fixed_to_float (float *pOutput, Fixed32 fInput) noexcept
 32 bit 16.16 fixed point integer to floating point conversion
 
void int_to_float (float *pOutput, const int32_t *pInput) noexcept
 32 bit integer to floating point conversion
 
void fixed_to_float (float *pOutput, const Fixed32 *pInput) noexcept
 32 bit 16.16 fixed point integer to floating point conversion
 
constexpr float interpolate (float fFrom, float fTo, float fFactor) noexcept
 Interpolate between two floating point values.
 
constexpr double interpolate (double dFrom, double dTo, double dFactor) noexcept
 Interpolate between two floating point values.
 
template<typename T >
clamp (T Input, T Min, T Max) noexcept
 Clamp the input between a bounds.
 
uint_t is_NaN (float fInput) noexcept
 Return TRUE if the value is a NaN.
 
uint_t is_NaN (double dInput) noexcept
 Return TRUE if the value is a NaN.
 
uint_t is_infinite (float fInput) noexcept
 Return TRUE if the value is infinity.
 
uint_t is_infinite (double dInput) noexcept
 Return TRUE if the value is infinity.
 
uint_t is_finite (float fInput) noexcept
 Return TRUE if the value is finite.
 
uint_t is_finite (double dInput) noexcept
 Return TRUE if the value is finite.
 
uint_t is_normal (float fInput) noexcept
 Return TRUE if the value is normal.
 
uint_t is_normal (double dInput) noexcept
 Return TRUE if the value is normal.
 
uint_t get_sign_bit (float fInput) noexcept
 Return TRUE if the value is negative.
 
uint_t get_sign_bit (double dInput) noexcept
 Return TRUE if the value is negative.
 
uint_t equal_with_epsilon (float fInput1, float fInput2) noexcept
 Return TRUE if the values are less than epsilon apart.
 
uint_t equal_with_epsilon (double dInput1, double dInput2) noexcept
 Return TRUE if the values are less than epsilon apart.
 
uint_t equal_with_epsilon (float fInput1, float fInput2, float fEpsilon) noexcept
 Return TRUE if the values are less than epsilon apart.
 
uint_t equal_with_epsilon (double dInput1, double dInput2, double dEpsilon) noexcept
 Return TRUE if the values are less than epsilon apart.
 
float get_floor (float fInput) noexcept
 Return a floating point number with the fraction removed.
 
double get_floor (double dInput) noexcept
 Return a floating point number with the fraction removed.
 
float get_ceiling (float fInput) noexcept
 Return a floating point number rounded up.
 
double get_ceiling (double dInput) noexcept
 Return a floating point number rounded up.
 
float get_round (float fInput) noexcept
 Return a floating point number rounded to the nearest integer.
 
double get_round (double dInput) noexcept
 Return a floating point number rounded to the nearest integer.
 
float round_to_zero (float fInput) noexcept
 Return a floating point number rounded to zero.
 
double round_to_zero (double dInput) noexcept
 Return a floating point number rounded to zero.
 
float modulo_radians (float fInput) noexcept
 Modulo the range of the input so that -BURGER_PI <= fInput < BURGER_PI.
 
double modulo_radians (double dInput) noexcept
 Modulo the range of the input so that -BURGER_PI <= fInput < BURGER_PI.
 
float sine_387 (float fInput) noexcept
 Return the sine from radians.
 
double sine_387 (double fInput) noexcept
 Return the sine from radians.
 
float cosine_387 (float fInput) noexcept
 Return the cosine from radians.
 
double cosine_387 (double fInput) noexcept
 Return the cosine from radians.
 
float get_sine_3_digits (float fInput) noexcept
 Return the sine from radians accurate to +-0.000597239.
 
float get_cosine_3_digits (float fInput) noexcept
 Return the cosine from radians accurate to +-0.000597239.
 
float get_sine_5_digits (float fInput) noexcept
 Return the sine from radians accurate to +-7.49199e-06.
 
float get_cosine_5_digits (float fInput) noexcept
 Return the cosine from radians accurate to +- 7.49199e-06.
 
float get_sine_6_digits (float fInput) noexcept
 Return the sine from radians accurate to +-1.03892e-06.
 
float get_cosine_6_digits (float fInput) noexcept
 Return the cosine from radians accurate to +-1.1407e-06.
 
float get_sine (float fInput) noexcept
 Return the sine from radians.
 
float get_cosine (float fInput) noexcept
 Return the cosine from radians.
 
double get_sine_7_digits (double dInput) noexcept
 Return the sine from radians accurate to +-2.05542e-06.
 
double get_cosine_7_digits (double dInput) noexcept
 Return the cosine from radians accurate to +-2.05542e-06.
 
double get_sine_12_digits (double dInput) noexcept
 Return the sine from radians accurate to +-7.48669e-13.
 
double get_cosine_12_digits (double dInput) noexcept
 Return the cosine from radians accurate to +-7.48669e-13.
 
double get_sine_18_digits (double dInput) noexcept
 Return the sine from radians.
 
double get_cosine_18_digits (double dInput) noexcept
 Return the cosine from radians.
 
double get_sine (double dInput) noexcept
 Return the sine from radians accurate to +-1.16573e-15.
 
double get_cosine (double dInput) noexcept
 Return the cosine from radians accurate to +-1.34615e-15.
 
float get_tangent (float fInput) noexcept
 
double get_tangent (double dInput) noexcept
 
float get_arcsine (float fInput) noexcept
 
double get_arcsine (double dInput) noexcept
 
float get_arccosine (float fInput) noexcept
 
double get_arccosine (double dInput) noexcept
 
float get_arctangent (float fInput) noexcept
 
double get_arctangent (double dInput) noexcept
 
float get_arctangent2 (float fSin, float fCos) noexcept
 
double get_arctangent2 (double dSin, double dCos) noexcept
 
float get_power (float fX, float fY) noexcept
 
double get_power (double dX, double dY) noexcept
 
float get_exponent (float fInput) noexcept
 
double get_exponent (double dInput) noexcept
 
float get_logarithm (float fInput) noexcept
 
double get_logarithm (double dInput) noexcept
 
float get_logarithm2 (float fInput) noexcept
 
double get_logarithm2 (double dInput) noexcept
 
float get_logarithm10 (float fInput) noexcept
 
double get_logarithm10 (double dInput) noexcept
 
float get_fraction (float fInput, float *pInteger) noexcept
 
double get_fraction (double dInput, double *pInteger) noexcept
 
float get_modulo (float fInput, float fDivisor) noexcept
 
double get_modulo (double dInput, double dDivisor) noexcept
 
double little_endian_load_extended (const Float80Bit pInput) noexcept
 Load a little endian 80 bit float as a double.
 
double big_endian_load_extended (const Float80Bit pInput) noexcept
 Load a big endian 80 bit float as a double.
 
long convert_to_DirectSound_volume (uint_t uInput) noexcept
 Convert a linear volume to decibels.
 
long convert_to_DirectSound_volume (float fInput) noexcept
 Convert a linear volume to decibels.
 
long convert_to_DirectSound_pan (uint_t uInput) noexcept
 Convert a linear pan to decibels.
 
long convert_to_DirectSound_pan (float fInput) noexcept
 Convert a linear pan to decibels.
 
float convert_to_AudioUnit_volume (uint_t uInput) noexcept
 Convert a linear volume to 0.0f to 1.0f.
 
float convert_to_AudioUnit_pan (uint_t uInput) noexcept
 Convert a linear pan to 0.0f to 1.0f.
 
float decibels_to_amplitude_ratio (float fDecibels) noexcept
 Convert a DirectSound decibel value to an XAudio2 Amplitude multiplier.
 
float amplitude_ratio_to_decibels (float fVolume) noexcept
 Convert a XAudio2 Amplitude multiplier to a DirectSound decibel value.
 
uint_t get_low_word (uint32_t uInput) noexcept
 Retrieves the low-order word from the specified value.
 
uint_t get_high_word (uint32_t uInput) noexcept
 Retrieves the low-order word from the specified value.
 
Fixed32 int_to_fixed (int32_t iInput) noexcept
 Convert an int32_t into a Fixed32 value.
 
Fixed32 int_to_fixed_saturate (int32_t iInput) noexcept
 Convert an int32_t into a Fixed32 value with saturation.
 
int32_t fixed_to_int_floor (Fixed32 fInput) noexcept
 Convert a fixed point value to an integer using round down.
 
int32_t fixed_to_int (Fixed32 fInput) noexcept
 Convert a fixed point value to an integer using round to zero.
 
int32_t fixed_to_int_ceil (Fixed32 fInput) noexcept
 Convert a fixed point value to an integer using round up.
 
int32_t fixed_to_int_nearest (Fixed32 fInput) noexcept
 Convert a fixed point value to an integer using round to nearest.
 
int32_t float_to_int_floor (float fInput) noexcept
 Convert a 32 bit float to an integer using floor().
 
void float_to_int_floor (int32_t *pOutput, float fInput) noexcept
 Convert a 32 bit float to an integer using floor().
 
int32_t float_to_int_ceil (float fInput) noexcept
 Convert a 32 bit float to an integer using ceil().
 
void float_to_int_ceil (int32_t *pOutput, float fInput) noexcept
 Convert a 32 bit float to an integer using ceil().
 
int32_t float_to_int_round (float fInput) noexcept
 Convert a 32 bit float to an integer using round to nearest.
 
void float_to_int_round (int32_t *pOutput, float fInput) noexcept
 Convert a 32 bit float to an integer using round to nearest.
 
int32_t float_to_int_round_to_zero (float fInput) noexcept
 Convert a 32 bit float to an integer using round to zero.
 
void float_to_int_round_to_zero (int32_t *pOutput, float fInput) noexcept
 Convert a 32 bit float to an integer using round to zero.
 
Fixed32 float_to_fixed_floor (float fInput) noexcept
 Convert a 32 bit float to a Fixed32 using floor().
 
void float_to_fixed_floor (Fixed32 *pOutput, float fInput) noexcept
 Convert a 32 bit float to a Fixed32 using floor().
 
Fixed32 float_to_fixed_ceil (float fInput) noexcept
 Convert a 32 bit float to a Fixed32 using ceil().
 
void float_to_fixed_ceil (Fixed32 *pOutput, float fInput) noexcept
 Convert a 32 bit float to a Fixed32 using ceil().
 
Fixed32 float_to_fixed_round (float fInput) noexcept
 Convert a 32 bit float to a Fixed32 using round to nearest.
 
void float_to_fixed_round (Fixed32 *pOutput, float fInput) noexcept
 Convert a 32 bit float to a Fixed32 using round to nearest.
 
Fixed32 float_to_fixed_round_to_zero (float fInput) noexcept
 Convert a 32 bit float to a Fixed32 using round to zero.
 
void float_to_fixed_round_to_zero (Fixed32 *pOutput, float fInput) noexcept
 Convert a 32 bit float to a Fixed32 using round to zero.
 
int8_t absolute (int8_t iInput)
 Get the absolute value of an integer.
 
int16_t absolute (int16_t iInput) noexcept
 Get the absolute value of an integer.
 
int32_t absolute (int32_t iInput) noexcept
 Get the absolute value of an integer.
 
int64_t absolute (int64_t iInput) noexcept
 Get the absolute value of a 64 bit integer.
 
int8_t ClampZero (int8_t iInput) noexcept
 Clamp an integer to 0.
 
int16_t ClampZero (int16_t iInput) noexcept
 Clamp an integer to 0.
 
int32_t ClampZero (int32_t iInput) noexcept
 Clamp an integer to 0.
 
int64_t ClampZero (int64_t iInput) noexcept
 Clamp an integer to 0.
 
constexpr int8_t get_sign (int8_t iInput) noexcept
 Get the sign value of an integer.
 
constexpr int16_t get_sign (int16_t iInput) noexcept
 Get the sign value of an integer.
 
constexpr int32_t get_sign (int32_t iInput) noexcept
 Get the sign value of an integer.
 
constexpr int64_t get_sign (int64_t iInput) noexcept
 Get the sign value of a 64 bit integer.
 
Fixed32 FixedMultiply (Fixed32 fInput1, Fixed32 fInput2)
 Multiply two 16.16 fixed point numbers.
 
Fixed32 FixedDivide (Fixed32 fInputNumerator, Fixed32 fInputDenominator)
 Divide two 16.16 fixed point numbers.
 
Fixed32 FixedReciprocal (Fixed32 fInput)
 Return the reciprocal of a fixed point number.
 
uint32_t square_root (uint32_t uInput)
 Get the square root of an integer.
 
uint32_t SqrtFixedToWord32 (Fixed32 fInput)
 Get the square root of a Fixed32.
 
Fixed32 square_root (Fixed32 uInput)
 Get the square root of a Fixed32.
 
uint32_t RotateLeft (uint32_t uInput, uint_t uShiftCount) noexcept
 Rotate the bits left.
 
uint32_t RotateRight (uint32_t uInput, uint_t uShiftCount) noexcept
 Rotate the bits right.
 
uint64_t RotateLeft (uint64_t uInput, uint_t uShiftCount) noexcept
 Rotate the bits left.
 
uint64_t RotateRight (uint64_t uInput, uint_t uShiftCount) noexcept
 Rotate the bits right.
 
void MemoryCopy (void *pOutput, const void *pInput, uintptr_t uCount) noexcept
 Copy raw memory from one buffer to another.
 
void MemoryMove (void *pOutput, const void *pInput, uintptr_t uCount) noexcept
 Copy raw memory from one buffer to another in any direction.
 
void MemoryClear (void *pOutput, uintptr_t uCount) noexcept
 Set a buffer to all zeros.
 
void MemoryFill (void *pOutput, uint8_t uFill, uintptr_t uCount) noexcept
 Set a buffer to a specific value.
 
void MemoryNot (void *pOutput, uintptr_t uCount) noexcept
 Exclusive or a buffer with 0xFF.
 
void MemoryNot (void *pOutput, const void *pInput, uintptr_t uCount) noexcept
 Copy a buffer that's been exclusive or'd with 0xFF.
 
void MemoryXor (void *pOutput, uint8_t uXor, uintptr_t uCount) noexcept
 Exclusive or a buffer with a value.
 
void MemoryXor (void *pOutput, const void *pInput, uint8_t uXor, uintptr_t uCount) noexcept
 Exclusive or a buffer with a value and store the result in another buffer.
 
void MemoryXor (void *pOutput, const void *pInput, uintptr_t uCount) noexcept
 Exclusive or a buffer with another buffer.
 
void MemoryXor (void *pOutput, const void *pInput1, const void *pInput2, uintptr_t uCount) noexcept
 Exclusive or a buffer with another buffer and store the result in a third buffer.
 
int MemoryCompare (const void *pInput1, const void *pInput2, uintptr_t uCount) noexcept
 Compare two byte buffers for equality.
 
int MemoryCaseCompare (const void *pInput1, const void *pInput2, uintptr_t uCount) noexcept
 Compare two byte buffers for equality, case insensitive.
 
char * MemoryCharacter (const char *pInput, uintptr_t uInputSize, int iChar) noexcept
 Scan for the first occurrence of a specific character in a byte array.
 
uint16_t * MemoryCharacter (const uint16_t *pInput, uintptr_t uInputSize, uint_t uChar) noexcept
 Scan for the first occurrence of a specific character in a short array.
 
char * MemoryCharacterReverse (const char *pInput, uintptr_t uInputSize, int iChar) noexcept
 Scan for the last occurrence of a specific character in a buffer.
 
uint16_t * MemoryCharacterReverse (const uint16_t *pInput, uintptr_t uInputSize, uint_t uChar) noexcept
 Scan for the last occurrence of a specific character in a uint16_t buffer.
 
void OkAlertMessage (const char *pMessage, const char *pTitle=nullptr) noexcept
 Display a dialog box.
 
uint_t OkCancelAlertMessage (const char *pMessage, const char *pTitle=nullptr) noexcept
 Display a dialog to alert the user of a possible error condition or message.
 
uint_t is_debugger_present (void) noexcept
 Detect if a debugger is attached.
 
uint_t is_macsbug_installed (void) noexcept
 Test if macsbug is installed.
 
uint_t is_metronub_installed (void) noexcept
 Test if Metrowerks Metronub is installed.
 
void InitFileInfo (FileInfo *pFileInfo) noexcept
 Initialize a Mac Finder FileInfo.
 
void InitFSRefParam (FSRefParam *pFSRefParam, FSRef *pFSRef, uint32_t uCatInfoBitmap) noexcept
 Initialize a Mac FSRefParam.
 
int GetFilenameFromPathname (uint8_t *pOutput, const uint8_t *pInput) noexcept
 Extract a filename at the end of a MacOS path.
 
int GetFileLocation (short *pVRefNum, long *pDirID, uint8_t *pOutputFilename, short iFileRefNum) noexcept
 Find a file location from a file reference number.
 
int GetFileLocation (FSSpec *pOutput, short iFileRefNum) noexcept
 Find the FSSpec from a file reference number.
 
int GetFileLocation (FSRef *pOutput, short iFileRefNum) noexcept
 Use an open file reference to return the FSRef.
 
int CreateEmptyFile (short svRefNum, long lDirID, const uint8_t *pFilename) noexcept
 Call PBHCreateSync() to create a file.
 
int CreateEmptyFile (const FSSpec *pFSSpec) noexcept
 Call FSpCreate() to create a file.
 
int CreateEmptyFile (FSRef *pOutput, const FSRef *pFSSpec, const char *pName) noexcept
 Call PBCreateFileUnicodeSync() to create a file.
 
int CheckForForks (short svRefNum, long lDirID, const uint8_t *pName, uint_t *pbDataFork, uint_t *pbResourceFork) noexcept
 Test if a file has either a resource or data fork.
 
int CheckForForks (const FSSpec *pFSSpec, uint_t *pbDataFork, uint_t *pbResourceFork) noexcept
 Test if a file has either a resource or data fork.
 
int CheckForForks (const FSRef *pFSRef, uint_t *pbDataFork, uint_t *pbResourceFork) noexcept
 Test if a file has either a resource or data fork.
 
int DoCopyFile (short svRefNumDest, long lDirIDDest, const uint8_t *pFilenameDest, short svRefNumSource, long lDirIDSource, const uint8_t *pFilenameSource) noexcept
 Copy a file using PBHCopyFileSync()
 
int DoCopyFile (const FSSpec *pFSDest, const FSSpec *pFSSource) noexcept
 Copy a file using PBHCopyFileSync()
 
int CopyForkClassic (short iDestRefNum, short iSourceRefNum, uint8_t *pBuffer, uintptr_t uBufferSize) noexcept
 Copy a fork of a file using FSSpec APIs.
 
int CopyForkCarbon (short iDestRefNum, short iSourceRefNum, uint8_t *pBuffer, uintptr_t uBufferSize) noexcept
 Copy a fork of a file using FSRef APIs.
 
int CopyFileMgrAttributes (short svRefNumDest, long lDirIDDest, const uint8_t *pFilenameDest, short svRefNumSource, long lDirIDSource, const uint8_t *pFilenameSource, uint_t bCopyLockBit=1) noexcept
 Copy file manager metadata from one file to another.
 
int CopyFileMgrAttributes (const FSSpec *pDestSpec, const FSSpec *pSourceSpec, uint_t bCopyLockBit=1) noexcept
 Copy file manager metadata from one file to another.
 
int CopyFileMgrAttributes (const FSRef *pDestRef, const FSRef *pSourceRef, uint_t bCopyLockBit=1) noexcept
 Copy file manager metadata from one file to another.
 
int DoPBXGetVolInfoSync (XVolumeParam *pXVolumeParam) noexcept
 Call PBXGetVolInfoSync() on all targets.
 
int GetVolumeInfo (HParamBlockRec *pOutput, short sVRefNum) noexcept
 Obtain information about a volume.
 
int GetVolumeInfo (XVolumeParam *pOutput, short svRefNum) noexcept
 Obtain information about an extended volume.
 
int DetermineVRefNum (short *pOutput, short svRefNum) noexcept
 Find the real volume reference number.
 
int CheckVolLock (short svRefNum) noexcept
 Check if a volume is locked.
 
int DoGetCatInfo (CInfoPBRec *pOutput, uint8_t pOutputName[256], short sVRefNum, long lDirID, const uint8_t *pName) noexcept
 Call PBGetCatInfoSync() quickly.
 
int DoGetCatInfo (CInfoPBRec *pOutput, uint8_t pOutputName[256], const FSSpec *pFSSpec) noexcept
 Call PBGetCatInfoSync() quickly.
 
int DoGetCatInfo (FSCatalogInfo *pOutput, FSRefParam *pRefParam, const FSRef *pFSRef, uint32_t uCatInfoBitmap) noexcept
 Call PBGetCatalogInfoSync() quickly.
 
int DoGetCatInfo (CInfoPBRec *pOutput, short sVRefNum, long lDirID, const uint8_t *pName) noexcept
 Call PBGetCatInfoSync() quickly.
 
int DoGetCatInfo (CInfoPBRec *pOutput, const FSSpec *pFSSpec) noexcept
 Call PBGetCatInfoSync() quickly.
 
int DoGetCatInfo (FSCatalogInfo *pOutput, const FSRef *pFSRef, uint32_t uCatInfoBitmap) noexcept
 Call PBGetCatalogInfoSync() quickly.
 
int GetDirectoryInfo (DInfo *pFinderInfo, short sVRefNum, long lDirID, const uint8_t *pName) noexcept
 Get Finder DInfo for a directory.
 
int GetDirectoryInfo (DInfo *pFinderInfo, const FSSpec *pFSSpec) noexcept
 Get Finder DInfo for a directory using a FSSpec.
 
int GetDirectoryInfo (DInfo *pFinderInfo, const FSRef *pFSRef) noexcept
 Get Finder DInfo for a directory using a FSRef.
 
int GetDestinationDirectoryInfo (short sVRefNum, long lDirID, const uint8_t *pName, long *pDirID, uint_t *pbDirectory, uint_t *pbDropBox) noexcept
 Get common information from a directory.
 
int GetDestinationDirectoryInfo (const FSSpec *pFSSpec, long *pDirID, uint_t *pbDirectory, uint_t *pbDropBox) noexcept
 Get common information from a directory.
 
int GetDestinationDirectoryInfo (const FSRef *pFSRef, long *pDirID, uint_t *pbDirectory, uint_t *pbDropBox) noexcept
 Get common information from a directory.
 
int GetCommentID (short *pCommentID, short sVRefNum, long lDirID, const uint8_t *pName) noexcept
 Get finder comment ID.
 
int GetCommentID (short *pCommentID, const FSSpec *pFSSpec) noexcept
 Get finder comment ID.
 
int GetCommentID (short *pCommentID, const FSRef *pFSRef) noexcept
 Get finder comment ID.
 
int GetDirectoryID (short sVRefNum, long lDirID, const uint8_t *pName, long *pDirID, uint_t *pbDirectory) noexcept
 Get directory ID of a named directory.
 
int GetDirectoryID (const FSSpec *pFSSpec, long *pDirID, uint_t *pbDirectory) noexcept
 Get directory ID of a named directory.
 
int GetDesktopFileName (uint8_t *pDesktopName, short svRefNum) noexcept
 Determine the name of the Finder Desktop Database.
 
int GetCommentFromDesktopFile (char *pComment, short svRefNum, long lDirID, const uint8_t *pFileName) noexcept
 Load in a comment from a Desktop resource file.
 
int DesktopOpen (const uint8_t *pVolumeName, short vRefNum, short *pRefNum, uint_t *pbDatabaseCreated) noexcept
 Open the desktop manager database.
 
int DesktopGetComment (char *pOutput, short svRefNum, long lDirID, const uint8_t *pFilename) noexcept
 Get a comment from the Desktop Manager.
 
int DesktopSetComment (short svRefNum, long lDirID, const uint8_t *pFilename, const char *pComment) noexcept
 Get a comment from the Desktop Manager.
 
int DesktopCopyComment (short svRefNumDest, long lDirIDDest, const uint8_t *pFilenameDest, short svRefNumSource, long lDirIDSource, const uint8_t *pFilenameSource) noexcept
 Copy a comment from one file to another.
 
int DesktopCopyComment (const FSSpec *pFSSpecDest, const FSSpec *pFSSpecSource) noexcept
 Copy a comment from one file to another.
 
int DesktopCopyComment (const FSRef *pFSRefDest, const FSRef *pFSRefSource) noexcept
 Copy a comment from one file to another.
 
int PreflightFileCopySpace (short svRefNumSource, long lDirIDSource, const uint8_t *pFilenameSource, const uint8_t *pVolumenameDest, short svRefNumDest, uint_t *pbSpaceAvailable) noexcept
 Determine if a destination volume has free file space.
 
int OpenAware (short svRefNum, long lDirID, const uint8_t *pFilename, short sDenyModes, short *pRefNum) noexcept
 Open a file with OpenDeny modes.
 
int OpenAware (const FSSpec *pFSSpec, short sDenyModes, short *pRefNum) noexcept
 Open a file with OpenDeny modes.
 
int OpenRFAware (short svRefNum, long lDirID, const uint8_t *pFilename, short sDenyModes, short *pRefNum) noexcept
 Open a resource fork with OpenDeny modes.
 
int OpenRFAware (const FSSpec *pFSSpec, short sDenyModes, short *pRefNum) noexcept
 Open a resource fork with OpenDeny modes.
 
int FileCopy (short svRefNumSource, long lDirIDSource, const uint8_t *pFilenameSource, short svRefNumDest, long lDirIDDest, const uint8_t *pFilenameDest, const uint8_t *pCopyname, void *pBuffer, uintptr_t uBufferSize, uint_t bPreflight) noexcept
 Copy a file, with AppleShare awareness.
 
int FileCopy (const FSSpec *pFSSpecSource, const FSSpec *pFSSpecDestFolder, const uint8_t *pCopyname, void *pBuffer, uintptr_t uBufferSize, uint_t bPreflight) noexcept
 Copy a file, with AppleShare awareness.
 
CodeLibraryGetInterfaceLib (void) noexcept
 Load InterfaceLib for manual linking.
 
CodeLibraryGetDriverLoaderLib (void) noexcept
 Load DriverLoaderLib for manual linking.
 
CodeLibraryGetNameRegistryLib (void) noexcept
 Load NameRegistryLib for manual linking.
 
void PrintHexDigit (uint_t uInput) noexcept
 Print a hex character to standard out.
 
void PrintHex (uint8_t uInput) noexcept
 Print an 8 bit value in hex to standard out.
 
void PrintHex (uint16_t uInput) noexcept
 Print a 16 bit value in hex to standard out.
 
void PrintHex (uint32_t uInput) noexcept
 Print a 32 bit value in hex to standard out.
 
void PrintHex (uint64_t uInput) noexcept
 Print a 64 bit value in hex to standard out.
 
void PrintHex (char iInput) noexcept
 Print a char in hex to standard out.
 
void PrintHex (signed char iInput) noexcept
 Print a signed char in hex to standard out.
 
void PrintHex (short iInput) noexcept
 Print a short in hex to standard out.
 
void PrintHex (int iInput) noexcept
 Print an integer in hex to standard out.
 
void PrintHex (long iInput) noexcept
 Print a long integer in hex to standard out.
 
void PrintHex (long long iInput) noexcept
 Print a long long integer in hex to standard out.
 
void PrintHex (wchar_t uInput) noexcept
 Print a wchar_t in hex to standard out.
 
void PrintHex (unsigned int uInput) noexcept
 Print an unsigned integer in hex to standard out.
 
void PrintHex (unsigned long uInput) noexcept
 Print an unsigned long integer in hex to standard out.
 
void PrintHex (float fInput) noexcept
 Print a 32 bit floating pointer number in hex to standard out.
 
void PrintHex (double dInput) noexcept
 Print a 64 bit floating point number in hex to standard out.
 
void ClearConsole (void) noexcept
 Clear the text console.
 
uint_t has_CPUID (void) noexcept
 Return TRUE if the instruction CPUID is present.
 
void CPUID (CPUID_t *pOutput) noexcept
 Fill in a CPUID_t structure.
 
uint_t has_AltiVec (void) noexcept
 Return TRUE if the AltiVec instruction set is present.
 
uint_t has_PPC_fsqrt (void) noexcept
 Return TRUE if floating point sqrt is supported in hardware.
 
uint_t has_68kFPU (void) noexcept
 Return TRUE if floating point is supported in hardware.
 
uint_t atomic_compare_and_set (volatile uint32_t *pOutput, uint32_t uOld, uint32_t uNew) noexcept
 Atomically swaps a 32 bit value for one in memory.
 
uint32_t atomic_set (volatile uint32_t *pOutput, uint32_t uInput) noexcept
 Atomically sets a 32 bit value to memory.
 
uint32_t atomic_get (volatile uint32_t *pInput) noexcept
 Atomically gets a 32 bit value from memory.
 
uint32_t atomic_add (volatile uint32_t *pOutput, uint32_t uInput) noexcept
 Atomically add a 32 bit value to a variable in memory.
 
uint_t atomic_trylock (volatile uint32_t *pInput) noexcept
 Attempt to lock a spin lock.
 
void atomic_lock (volatile uint32_t *pInput) noexcept
 Lock a spin lock.
 
void atomic_unlock (volatile uint32_t *pInput) noexcept
 Unlock a spin lock.
 
uint_t atomic_compare_and_set (volatile uint64_t *pOutput, uint64_t uOld, uint64_t uNew) noexcept
 Atomically swaps a 64 bit value for one in memory.
 
uint64_t atomic_set (volatile uint64_t *pOutput, uint64_t uInput) noexcept
 Atomically sets a 64 bit value for one in memory.
 
uint64_t atomic_get (volatile uint64_t *pInput) noexcept
 Atomically gets a 64 bit value from memory.
 
uint64_t atomic_add (volatile uint64_t *pOutput, uint64_t uInput) noexcept
 Atomically add a 64 bit value to a variable in memory.
 
uint32_t AsciiToInteger (const char *pInput, const char **pDest=nullptr) noexcept
 Convert an ASCII string into an integer.
 
int_t AsciiToInteger (const char *pInput, int_t iDefault, int_t iMin=INT32_MIN, int_t iMax=INT32_MAX) noexcept
 Return a signed integer value.
 
uint_t AsciiToInteger (uint32_t *pOutput, const char *pInput) noexcept
 Convert a 32 bit integer and signal if successful.
 
uint_t AsciiToWord (const char *pInput, uint_t uDefault, uint_t uMin=0, uint_t uMax=0xFFFFFFFFU) noexcept
 Return an unsigned integer value.
 
uint64_t AsciiToInteger64 (const char *pInput, const char **pDest=nullptr) noexcept
 Convert an ASCII string into a 64 bit integer.
 
int64_t AsciiToInteger64 (const char *pInput, int64_t iDefault, int64_t iMin=INT64_MIN, int64_t iMax=INT64_MAX) noexcept
 Return a signed integer value.
 
uint_t AsciiToInteger64 (uint64_t *pOutput, const char *pInput) noexcept
 Convert a 64 bit integer and signal if successful.
 
uint64_t AsciiToWord64 (const char *pInput, uint64_t uDefault, uint64_t uMin=0, uint64_t uMax=0xFFFFFFFFFFFFFFFFULL) noexcept
 Return an unsigned integer value.
 
float AsciiToFloat (const char *pInput, const char **pDest=nullptr) noexcept
 Convert an ASCII string into a floating point number.
 
double AsciiToDouble (const char *pInput, const char **pDest=nullptr) noexcept
 Convert an ASCII string into a floating point number.
 
uint_t AsciiToBoolean (const char *pInput, const char **pDest=nullptr) noexcept
 Convert an ASCII string into a boolean.
 
uint_t AsciiToBoolean (const char *pInput, uint_t bDefault) noexcept
 Convert an ASCII string into a boolean.
 
uint_t AsciiToBoolean (uint_t *pOutput, const char *pInput) noexcept
 Convert an ASCII string into a boolean and signal if successful.
 
float AsciiToFloat (const char *pInput, float fDefault) noexcept
 Return a floating point value.
 
float AsciiToFloat (const char *pInput, float fDefault, float fMin, float fMax) noexcept
 Return a floating point value.
 
uint_t AsciiToFloat (float *pOutput, const char *pInput) noexcept
 Return a floating point value and signal if successful.
 
double AsciiToDouble (const char *pInput, double dDefault) noexcept
 Return a 64 bit floating point value.
 
double AsciiToDouble (const char *pInput, double dDefault, double dMin, double dMax) noexcept
 Return a 64 bit floating point value.
 
uint_t AsciiToDouble (double *pOutput, const char *pInput) noexcept
 Return a 64 bit floating point value and signal if successful.
 
uint32_t AsciiHexToInteger (const char *pInput, uintptr_t uLength) noexcept
 Convert hex ASCII string to an integer.
 
uint32_t AsciiHexToInteger (const uint16_t *pInput, uintptr_t uLength) noexcept
 Convert hex UTF-16 string to an integer.
 
char * NumberToAsciiHex (char *pOutput, uint8_t uInput) noexcept
 Convert an 8 bit value into a hex string.
 
char * NumberToAsciiHex (char *pOutput, uint16_t uInput) noexcept
 Convert a 16 bit value into a hex string.
 
char * NumberToAsciiHex (char *pOutput, uint32_t uInput) noexcept
 Convert a 32 bit value into a hex string.
 
char * NumberToAsciiHex (char *pOutput, uint64_t uInput) noexcept
 Convert a 64 bit value into a hex string.
 
char * NumberToAsciiHex (char *pOutput, float fInput) noexcept
 Convert a 32 bit floating point value into a hex string.
 
char * NumberToAsciiHex (char *pOutput, double dInput) noexcept
 Convert a 64 bit floating point value into a hex string.
 
template<class T >
char * NumberToAsciiHex (char *pOutput, T input) noexcept
 Convert a integral value into a hex string.
 
char * NumberToAsciiHex (char *pOutput, uint32_t uInput, uint_t uDigits) noexcept
 Convert an unsigned 32 bit integer into hexadecimal ASCII.
 
char * NumberToAsciiHex (char *pOutput, uint64_t uInput, uint_t uDigits) noexcept
 Convert an unsigned 64 bit integer into hexadecimal ASCII.
 
char * NumberToAsciiHex (char *pOutput, float fInput, uint_t uDigits) noexcept
 Convert a 32 bit float into hexadecimal ASCII.
 
char * NumberToAsciiHex (char *pOutput, double dInput, uint_t uDigits) noexcept
 Convert a 64 bit float into hexadecimal ASCII.
 
char * NumberToAsciiHex (char *pOutput, uint8_t uInput, uint_t uDigits) noexcept
 
char * NumberToAsciiHex (char *pOutput, uint16_t uInput, uint_t uDigits) noexcept
 
template<class T >
char * NumberToAsciiHex (char *pOutput, T input, uint_t uDigits) noexcept
 Convert a integral value into a hex string.
 
char * NumberToAscii (char *pOutput, uint32_t uInput, uint_t uDigits) noexcept
 Convert an unsigned 32 bit integer into ASCII.
 
char * NumberToAscii (char *pOutput, int32_t iInput, uint_t uDigits) noexcept
 Convert a signed 32 bit integer into ASCII.
 
char * NumberToAscii (char *pOutput, uint64_t uInput, uint_t uDigits) noexcept
 Convert an unsigned 64 bit integer into ASCII.
 
char * NumberToAscii (char *pOutput, int64_t iInput, uint_t uDigits) noexcept
 Convert a signed 64 bit integer into ASCII.
 
char * NumberToAscii (char *pOutput, float fInput, uint_t uDigits=0) noexcept
 Convert a 32 bit float into ASCII.
 
char * NumberToAscii (char *pOutput, double dInput, uint_t uDigits=0) noexcept
 Convert a 64 bit float into ASCII.
 
template<class T >
char * NumberToAscii (char *pOutput, T input) noexcept
 
template<class T >
char * NumberToAscii (char *pOutput, T input, uint_t uDigits) noexcept
 
uint_t NumberStringLength (uint32_t uInput) noexcept
 Calculate the length of a string that represents this integer.
 
uint_t NumberStringLength (int32_t iInput) noexcept
 Calculate the length of a string that represents this integer.
 
uint_t NumberStringLength (uint64_t uInput) noexcept
 Calculate the length of a string that represents this integer.
 
uint_t NumberStringLength (int64_t iInput) noexcept
 Calculate the length of a string that represents this integer.
 
template<class T >
uint_t NumberStringLength (T input) noexcept
 Calculate the length of a string that represents this integer.
 
uint_t NumberHexStringLength (uint32_t uInput) noexcept
 Calculate the length of a string that represents this hex integer.
 
uint_t NumberHexStringLength (uint64_t uInput) noexcept
 Calculate the length of a string that represents this hex integer.
 
template<class T >
uint_t NumberHexStringLength (T input) noexcept
 Calculate the length of a string that represents this hex integer.
 
uint_t NumberOctalStringLength (uint32_t uInput) noexcept
 Calculate the length of a string that represents this octal integer.
 
uint_t NumberOctalStringLength (uint64_t uInput) noexcept
 Calculate the length of a string that represents this octal integer.
 
template<class T >
uint_t NumberOctalStringLength (T input) noexcept
 Calculate the length of a string that represents this octal integer.
 
constexpr uint32_t ToLower (uint32_t uInput) noexcept
 Convert a character to lower case.
 
constexpr uint32_t ToUpper (uint32_t uInput) noexcept
 Convert a character to upper case.
 
uint_t IsPointerInvalid (const void *pInput) noexcept
 Test if a pointer is invalid.
 
uint_t IsPointerValid (const void *pInput) noexcept
 Test if a pointer is valid.
 
uint_t IsStringEmpty (const char *pInput) noexcept
 Test if a UTF-8 string pointer points to a nullptr string.
 
uint_t IsStringEmpty (const uint16_t *pInput) noexcept
 Test if a UTF-16 string pointer points to a nullptr string.
 
uint_t IsDigit (char iInput) noexcept
 Test if a character is 0-9.
 
uint_t IsHex (char iInput) noexcept
 Test if a character is 0-9, A-F or a-f.
 
uint_t IsWhitespace (char iInput) noexcept
 Test if a character is TAB or SPACE.
 
uint_t IsLowercase (char iInput) noexcept
 Test if a character is a-z.
 
uint_t IsUppercase (char iInput) noexcept
 Test if a character is A-Z.
 
uint_t IsSpace (int iInput) noexcept
 Test if a character is ASCII white space.
 
void CStringToPString (uint8_t *pOutput, const char *pInput) noexcept
 Convert a "C" string into a Pascal string.
 
void PStringToCString (char *pOutput, const uint8_t *pInput) noexcept
 Convert a Pascal string into a "C" string.
 
char * ParseBeyondWhiteSpace (const char *pInput) noexcept
 Parse a "C" string until a non-white space character is found.
 
char * ParseToDelimiter (const char *pInput) noexcept
 Return a pointer to whitespace, CR, LF or zero.
 
char * ParseBeyondEOL (const char *pInput) noexcept
 Parse a "C" string until a zero or EOL.
 
char * ParseBeyondEOL (const char *pInput, uintptr_t uLength) noexcept
 Parse a "C" string until a zero or EOL or out of data.
 
char * ParseQuotedString (char *pOutput, uintptr_t uOutputSize, const char *pInput) noexcept
 Parse out a quoted string.
 
uintptr_t CopyUpToEOL (char *pOutput, uintptr_t uOutputSize, const char *pInput, uintptr_t uInputSize) noexcept
 Read a stream of text chars until a nullptr, LF, CR or CR/LF is found.
 
void StripLeadingSpaces (char *pInput) noexcept
 Remove spaces from the beginning of a string.
 
void StripTrailingSpaces (char *pInput) noexcept
 Remove spaces from the end of a string.
 
void StripLeadingWhiteSpace (char *pInput) noexcept
 Remove whitespace from the beginning of a string.
 
void StripTrailingWhiteSpace (char *pInput) noexcept
 Remove whitespace from the end of a string.
 
void StripLeadingAndTrailingSpaces (char *pInput) noexcept
 Remove spaces from the beginning and end of a string.
 
void StripLeadingAndTrailingWhiteSpace (char *pInput) noexcept
 Remove whitespace from the beginning and end of a string.
 
void StripAllFromList (char *pInput, const char *pList) noexcept
 Remove all characters that match those in a list.
 
void StripAllButList (char *pInput, const char *pList) noexcept
 Remove all characters except those in a list.
 
void StripTrailing (char *pInput, const char *pList) noexcept
 Remove characters from the end of a string.
 
void StripLeading (char *pInput, const char *pList) noexcept
 Remove characters from the beginning of a string.
 
void RemoveTrailingChar (char *pInput, uint_t uRemove) noexcept
 Remove a character from the end of a string if present.
 
void ForceTrailingChar (char *pInput, uint_t uLast) noexcept
 Force a character to be at the end of a string if missing.
 
void SlashesToColons (char *pInput) noexcept
 Convert all forward and back slashes to colons.
 
void SlashesToColons (char *pOutput, const char *pInput) noexcept
 Convert all forward and back slashes to colons.
 
void SlashesToWindowsSlashes (char *pInput) noexcept
 Convert all forward slashes ('/') to back slashes ('\').
 
void SlashesToWindowsSlashes (char *pOutput, const char *pInput) noexcept
 Convert all forward slashes ('/') to back slashes ('\').
 
void EndWithWindowsSlashes (char *pInput) noexcept
 Force the last character of a string to be '\'.
 
void EndWithWindowsSlashes (char *pOutput, const char *pInput) noexcept
 Copy a string and force the last character of a string to be '\'.
 
void SlashesToLinuxSlashes (char *pInput) noexcept
 Convert all back slashes ('\') to forward slashes ('/').
 
void SlashesToLinuxSlashes (char *pOutput, const char *pInput) noexcept
 Convert all back slashes ('\') to forward slashes ('/').
 
void EndWithLinuxSlashes (char *pInput) noexcept
 Force the last character of a string to be '/'.
 
void EndWithLinuxSlashes (char *pOutput, const char *pInput) noexcept
 Copy a string and force the last character of a string to be '/'.
 
void Replace (char *pInput, uint_t uFrom, uint_t uTo) noexcept
 Convert characters in a string from one to another.
 
void Replace (char *pOutput, const char *pInput, uint_t uFrom, uint_t uTo) noexcept
 Convert characters in a string from one to another.
 
char * GetFileExtension (const char *pInput) noexcept
 Get a pointer to the beginning of the file extension.
 
void SetFileExtension (char *pInput, const char *pNewExtension) noexcept
 Replace the text after the last period for filename extensions.
 
uintptr_t StringLength (const char *pInput) noexcept
 Perform an ANSI compatible strlen().
 
uintptr_t StringLength (const uint16_t *pInput) noexcept
 Perform an ANSI compatible strlen() for UTF16 strings..
 
void StringCopy (char *pOutput, const char *pInput) noexcept
 Copy a "C" string.
 
void StringCopy (char *pOutput, uintptr_t uOutputSize, const char *pInput) noexcept
 Copy a "C" string with bounds checking.
 
void StringCopy (char *pOutput, uintptr_t uOutputSize, const char *pInput, uintptr_t uInputSize) noexcept
 Copy a text buffer into a "C" string with bounds checking.
 
void StringCopy (uint16_t *pOutput, const uint16_t *pInput) noexcept
 Copy a 16 bit "C" string.
 
void StringCopy (uint16_t *pOutput, uintptr_t uOutputSize, const uint16_t *pInput) noexcept
 Copy a 16 bit "C" string with bounds checking.
 
void StringCopy (uint16_t *pOutput, uintptr_t uOutputSize, const uint16_t *pInput, uintptr_t uInputSize) noexcept
 Copy a text buffer into a 16 bit "C" string with bounds checking.
 
char * StringDuplicate (const char *pInput) noexcept
 Make a copy of a "C" string.
 
char * StringDuplicate (const char *pInput, uintptr_t uPadding) noexcept
 Make a copy of a "C" string with some padding.
 
void StringDelete (const char *pInput) noexcept
 Delete an allocated string.
 
void StringConcatenate (char *pOutput, const char *pInput) noexcept
 Concatenate a "C" string with another "C" string.
 
void StringConcatenate (char *pOutput, uintptr_t uOutputSize, const char *pInput) noexcept
 Concatenate a "C" string with another "C" string bounds checked.
 
void StringConcatenate (char *pOutput, uintptr_t uOutputSize, const char *pInput, uintptr_t uInputSize) noexcept
 Concatenate a "C" string with a string buffer, bounds checked.
 
void StringConcatenate (uint16_t *pOutput, const uint16_t *pInput) noexcept
 Concatenate a 16 bit "C" string with another 16 bit "C" string.
 
void StringConcatenate (uint16_t *pOutput, uintptr_t uOutputSize, const uint16_t *pInput) noexcept
 Concatenate a 16 bit "C" string with another 16 bit "C" string bounds checked.
 
int StringCompare (const char *pInput1, const char *pInput2) noexcept
 Compare two "C" strings for equality.
 
int StringCompare (const char *pInput1, const char *pInput2, uintptr_t uMaxLength) noexcept
 Compare two "C" strings for equality, case sensitive, length delimited.
 
int StringCompare (const uint16_t *pInput1, const uint16_t *pInput2) noexcept
 Compare two 16 bit "C" strings for equality.
 
int StringCompare (const uint16_t *pInput1, const uint16_t *pInput2, uintptr_t uMaxLength) noexcept
 Compare two 16 bit "C" strings for equality, case sensitive, length delimited.
 
int StringCaseCompare (const char *pInput1, const char *pInput2) noexcept
 Compare two "C" strings for equality, case insensitive.
 
int StringCaseCompare (const char *pInput1, const char *pInput2, uintptr_t uMaxLength) noexcept
 Compare two "C" strings for equality, case insensitive, length delimited.
 
uint_t Wildcardcmp (const char *pInput, const char *pWildcard) noexcept
 Perform a string comparison using the wild card system.
 
uint_t HasWildcard (const char *pInput) noexcept
 Return TRUE if the string contains a wild card character.
 
void StringUppercase (char *pInput) noexcept
 Convert a string to upper case.
 
void StringUppercase (char *pOutput, const char *pInput) noexcept
 Convert a string to upper case into a new buffer.
 
void StringLowercase (char *pInput) noexcept
 Convert a string to lower case.
 
void StringLowercase (char *pOutput, const char *pInput) noexcept
 Convert a string to lower case into a new buffer.
 
char * StringCharacter (const char *pInput, int iChar) noexcept
 Scan for the first occurrence of a specific character.
 
uint16_t * StringCharacter (const uint16_t *pInput, uint_t uChar) noexcept
 Scan for the first occurrence of a specific character.
 
char * StringCharacterReverse (const char *pInput, int iChar) noexcept
 Scan for the last occurrence of a specific character.
 
uint16_t * StringCharacterReverse (const uint16_t *pInput, uint_t uChar) noexcept
 Scan for the last occurrence of a specific character.
 
uint_t StringEndsWith (char *pInput, int iChar) noexcept
 Force the ending character of a string.
 
uint_t StringEndsWith (uint16_t *pInput, uint_t uChar) noexcept
 Force the ending character of a string.
 
uintptr_t StringSkipOver (const char *pInput, const char *pDelimiters) noexcept
 Locate the offset of the first non-delimiter in a string.
 
uintptr_t StringSkipOver (const uint16_t *pInput, const uint16_t *pDelimiters) noexcept
 Locate the offset of the first non-delimiter in a string.
 
uintptr_t StringStopAt (const char *pInput, const char *pDelimiters) noexcept
 Locate the offset of the first delimiter in a string.
 
uintptr_t StringStopAt (const uint16_t *pInput, const uint16_t *pDelimiters) noexcept
 Locate the offset of a delimiter in a string.
 
char * StringString (const char *pInput, const char *pTest) noexcept
 Locate a substring.
 
char * StringString (const char *pInput, const char *pTest, uintptr_t uTestLength) noexcept
 Locate a substring.
 
uint16_t * StringString (const uint16_t *pInput, const uint16_t *pTest) noexcept
 Locate a substring (UTF-16 version)
 
char * StringCaseString (const char *pInput, const char *pTest) noexcept
 Locate a substring, case insensitive.
 
uint16_t * StringCaseString (const uint16_t *pInput, const uint16_t *pTest) noexcept
 Locate a substring, case insensitive (UTF-16 version)
 
char * StringToken (char *pInput, const char *pDelimiters, char **ppSave) noexcept
 Split a string into tokens.
 
uint16_t * StringToken (uint16_t *pInput, const uint16_t *pDelimiters, uint16_t **ppSave) noexcept
 Split a string into tokens.
 
intptr_t GetFormattedLength (const char *pFormat, uintptr_t uArgCount, const ArgumentType **ppArgs) noexcept
 Reports the size of a formatted output in bytes without actually creating any formatted output.
 
intptr_t SprintfUserAlloc (SafePrint::SprintfCallbackProc pCallback, void *pContext, uint_t bAddNull, const char *pFormat, uintptr_t uArgCount, const ArgumentType **ppArgs) noexcept
 Print into a buffer that a callback allocates.
 
intptr_t Sprintf (char *pOutput, const char *pFormat, uintptr_t uArgCount, const ArgumentType **ppArgs) noexcept
 sprintf() clone
 
intptr_t Snprintf (char *pOutput, uintptr_t uOutputSize, const char *pFormat, uintptr_t uArgCount, const ArgumentType **ppArgs) noexcept
 snprintf() clone
 
intptr_t Printf (const char *pFormat, uintptr_t uArgCount, const ArgumentType **ppArgs) noexcept
 printf() clone
 
intptr_t Fprintf (FILE *fp, const char *pFormat, uintptr_t uArgCount, const ArgumentType **ppArgs) noexcept
 printf() clone
 
intptr_t DebugSnprintf (char *pOutput, uintptr_t uOutputSize, const char *pFormat, uintptr_t uArgCount, const ArgumentType **ppArgs) noexcept
 Debug snprintf()
 
float Unpack16ToFloat (int16_t iInput)
 Decompress a packed floating point number.
 
int16_t PackFloatTo16 (float fInput)
 Convert a float in the range of 0.999999 to -0.999999 into a 16 bit packed integer.
 
float Unpack16ToFloat (int16_t iInput, uint32_t uBaseExponent)
 Decompress a packed floating point number with a supplied base exponent.
 
int16_t PackFloatTo16 (float fInput, uint32_t uBaseExponent)
 Convert a float in the range of a supplied exponent into a 16 bit packed integer.
 
uintptr_t UnpackBytes (const uint8_t *pInput, uintptr_t uInputLength, uint8_t **ppOutput, uintptr_t *pOutputLength)
 Decompress data compressed with PackBytes from the Apple IIgs.
 
eUnixFlavor UnixGetFlavor (void) noexcept
 
uint32_t get_traceflags (void) noexcept
 Get the current debug tracing flag.
 
void set_traceflags (uint32_t uTraceFlags) noexcept
 Set the current debug tracing flag.
 
uint32_t get_hintflags (void) noexcept
 Get the current code hint flags.
 
void set_hintflags (uint32_t uHintFlags) noexcept
 Set the current debug tracing flag.
 
const char * GetEnvironmentString (const char *pKey) noexcept
 Retrieve an environment string.
 
eError SetEnvironmentString (const char *pKey, const char *pInput) noexcept
 Set an environment string.
 
uint_t IsElevated (void) noexcept
 Test if the application has elevated privileges.
 
eError GetUserLoginName (String *pOutput) noexcept
 Retrieves the login name of the user associated with the current thread.
 
eError GetUserRealName (String *pOutput) noexcept
 Get the real name of the current user.
 
eError GetMachineName (String *pOutput) noexcept
 Get the name the user has called the computer.
 
eError GetFullPathNameUTF8 (String *pOutput, const char *pInput) noexcept
 
eError GetOSString (String *pOutput, int16_t iStringID) noexcept
 
eError GetOSIndString (String *pOutput, int16_t iStringID, int16_t iIndex) noexcept
 
eError GetMacModelIdentifier (String *pOutput) noexcept
 
void StringCopy (String *pOutput, const __CFString *pInput) noexcept
 Convert an NSString to a Burger::String (MacOSX and Carbon Only)
 
eError get_home_directory (String *pOutput) noexcept
 Return the path of the "home" folder.
 
eError get_abspath (String *pOutput, const char *pInput) noexcept
 Return the absolute path of a pathname.
 
uintptr_t SDBMHashFunctor (const void *pData, uintptr_t uDataSize) noexcept
 SDBM (Service Data Base Management) hash callback for HashMapShared.
 
uintptr_t SDBMHashCaseFunctor (const void *pData, uintptr_t uDataSize) noexcept
 Case insensitive SDBM (Service Data Base Management) hash callback for HashMapShared.
 
uintptr_t DJB2HashAddFunctor (const void *pData, uintptr_t uDataSize) noexcept
 DJB2 Additive hash callback for HashMapShared.
 
uintptr_t DJB2HashAddCaseFunctor (const void *pData, uintptr_t uDataSize) noexcept
 Case insensitive DJB2 Additive hash callback for HashMapShared.
 
uintptr_t DJB2HashXorFunctor (const void *pData, uintptr_t uDataSize) noexcept
 DJB2 Exclusive Or hash callback for HashMapShared.
 
uintptr_t DJB2HashXorCaseFunctor (const void *pData, uintptr_t uDataSize) noexcept
 DJB2 Exclusive Or hash callback for HashMapShared.
 
uintptr_t DJB2StringHashXorFunctor (const void *pData, uintptr_t uDataSize) noexcept
 DJB2 Exclusive Or hash callback for HashMapString.
 
uintptr_t DJB2StringHashXorCaseFunctor (const void *pData, uintptr_t uDataSize) noexcept
 Case insensitive DJB2 Exclusive Or hash callback for HashMapStringCase.
 
uint_t HashMapStringCaseTest (const void *pA, const void *pB) noexcept
 Case insensitive string test for HashMapStringCase.
 
void MP3DCT64 (float *pOutput1, float *pOutput2, const float *pInput)
 MP3 Discrete cosine transform function.
 
void MP3FHT (float *pInput, uintptr_t uCount)
 MP3 Fast Fourier (Hartley) transform.
 
void MP3DCT36 (float *pSideSamples, float *pHybridOutput, float *pOutput, const float *pPrevious, const float *pBlockType)
 36 entry DCT for MP3
 
void MP3DCT12 (float *pSideSamples, float *pHybridOutput, float *pOutput, const float *pPrevious, const float *pBlockType)
 12 entry DCT for MP3
 
void sleep_ms (uint32_t uMilliseconds, uint_t bAlertable=0) noexcept
 Sleep the current thread.
 
uint_t WriteBig (FILE *fp, uint16_t uInput)
 Write a big endian 16-bit integer to a file.
 
uint_t WriteBig (FILE *fp, uint32_t uInput)
 Write a big endian 32-bit integer to a file.
 
uint_t WriteBig (FILE *fp, uint64_t uInput)
 Write a big endian 64-bit integer to a file.
 
uint_t WriteBig (FILE *fp, float fInput)
 Write a big endian 32-bit float to a file.
 
uint_t WriteBig (FILE *fp, double dInput)
 Write a big endian 64-bit float to a file.
 
uint_t WriteLittle (FILE *fp, uint16_t uInput)
 Write a little endian 16-bit integer to a file.
 
uint_t WriteLittle (FILE *fp, uint32_t uInput)
 Write a little endian 32-bit integer to a file.
 
uint_t WriteLittle (FILE *fp, uint64_t uInput)
 Write a little endian 64-bit integer to a file.
 
uint_t WriteLittle (FILE *fp, float fInput)
 Write a little endian 32-bit float to a file.
 
uint_t WriteLittle (FILE *fp, double dInput)
 Write a little endian 64-bit float to a file.
 
uint_t WriteCString (FILE *fp, const char *pInput)
 Write a "C" string with the terminating zero to a file stream.
 
uint16_t read_big_uint16 (FILE *fp)
 Read a big endian 16-bit integer from a file.
 
uint32_t read_big_uint32 (FILE *fp)
 Read a big endian 32-bit integer from a file.
 
uint64_t ReadBigWord64 (FILE *fp)
 Read a big endian 64-bit integer from a file.
 
float ReadBigFloat (FILE *fp)
 Read a big endian 32-bit float from a file.
 
double ReadBigDouble (FILE *fp)
 Read a big endian 64-bit float from a file.
 
uint16_t read_little_uint16 (FILE *fp)
 Read a little endian 16-bit integer from a file.
 
uint32_t read_little_uint32 (FILE *fp)
 Read a little endian 32-bit integer from a file.
 
uint64_t ReadLittleWord64 (FILE *fp)
 Read a little endian 64-bit integer from a file.
 
float ReadLittleFloat (FILE *fp)
 Read a little endian 32-bit float from a file.
 
double ReadLittleDouble (FILE *fp)
 Read a little endian 64-bit float from a file.
 
uint_t read_c_string (FILE *fp, char *pInput, uintptr_t uLength)
 Read a "C" string with the terminating zero to a file stream.
 
uintptr_t GetSize (FILE *fp)
 Return the size of a file.
 
uint64_t GetSize64 (FILE *fp)
 Return the size of a file with 64 bits.
 
eError SaveFile (FILE *fp, const void *pData, uintptr_t uLength)
 Save memory to a file opened with fopen()
 
void * LoadFile (FILE *fp, uintptr_t *uLength)
 Load a file opened with fopen() into memory.
 
void SetBinaryMode (FILE *fp)
 Force an ANSI FILE * to binary mode.
 
eError SimpleDecompressILBMRLE (void *pOutput, uintptr_t uOutputChunkLength, const void *pInput, uintptr_t uInputChunkLength)
 Decompress data using RLE compression.
 
eError SimpleDecompressLZSS (void *pOutput, uintptr_t uOutputChunkLength, const void *pInput, uintptr_t uInputChunkLength)
 
eError SimpleDecompressDeflate (void *pOutput, uintptr_t uOutputChunkLength, const void *pInput, uintptr_t uInputChunkLength)
 Decompress data using Deflate compression.
 
long SetDeviceCursor (IDirect3DDevice9 *pDirect3DDevice9, HICON__ *hCursor)
 Convert a Windows HCURSOR for DirectX9.
 
uint_t GetD3DFORMATColorChannelBits (uint_t uD3DFORMAT)
 Get the number of bits for a single color channel.
 
uint_t GetD3DFORMATAlphaChannelBits (uint_t uD3DFORMAT)
 Get the number of bits for the alpha channel.
 
uint_t GetD3DFORMATDepthBits (uint_t uD3DFORMAT)
 Get the number of bits for the depth channel.
 
uint_t GetD3DFORMATStencilBits (uint_t uD3DFORMAT)
 Get the number of bits for the stencil channel.
 
uint_t GetDXGI_FORMATColorChannelBits (uint_t uDXGI_FORMAT)
 Get the number of bits for a single color channel.
 
void CopyPalette (RGBWord8_t *pOutput, const RGBWord8_t *pInput, uintptr_t uEntries=256)
 Copy an array of RGBWord8_t entries.
 
void CopyPalette (RGBWord8_t *pOutput, const RGBAWord8_t *pInput, uintptr_t uEntries=256)
 Copy an array of RGBWord8_t entries from an array of RGBAWord8_t entries.
 
void CopyPalette (RGBAWord8_t *pOutput, const RGBWord8_t *pInput, uintptr_t uEntries=256)
 Copy an array of RGBAWord8_t entries from an array of RGBWord8_t entries.
 
void CopyPalette (RGBAWord8_t *pOutput, const RGBAWord8_t *pInput, uintptr_t uEntries=256)
 Copy an array of RGBAWord8_t entries from an array of RGBAWord8_t entries.
 
void CopyPalette444 (RGBWord8_t *pOutput, const uint16_t *pInput, uintptr_t uEntries=256)
 Copy an array of RGBWord8_t entries from an array of 16 bit XRGB entries.
 
void CopyPalette444 (RGBAWord8_t *pOutput, const uint16_t *pInput, uintptr_t uEntries=256)
 Copy an array of RGBAWord8_t entries from an array of 16 bit XRGB entries.
 
void CopyPalette4444 (RGBWord8_t *pOutput, const uint16_t *pInput, uintptr_t uEntries=256)
 Copy an array of RGBWord8_t entries from an array of 16 bit ARGB entries.
 
void CopyPalette4444 (RGBAWord8_t *pOutput, const uint16_t *pInput, uintptr_t uEntries=256)
 Copy an array of RGBAWord8_t entries from an array of 16 bit ARGB entries.
 
void Convert (RGBFloat_t *pOutput, const HSL_t *pInput)
 Convert a HSL color to an RGB color.
 
void Convert (HSL_t *pOutput, const RGBFloat_t *pInput)
 Convert an RGB color to HSL color.
 
void CopyPalette256 (RGBWord8_t *pOutput, const RGBWord8_t *pInput, uint_t uStartIndex=0, uint_t uPaletteSize=256)
 Set a range of RGB color entries to a 256 entry palette.
 
void CopyPalette256 (RGBWord8_t *pOutput, const RGBAWord8_t *pInput, uint_t uStartIndex=0, uint_t uPaletteSize=256)
 Set a range of RGB color entries to a 256 entry palette.
 
void CopyPalette256 (RGBAWord8_t *pOutput, const RGBWord8_t *pInput, uint_t uStartIndex=0, uint_t uPaletteSize=256)
 Set a range of RGBA color entries to a 256 entry palette.
 
void CopyPalette256 (RGBAWord8_t *pOutput, const RGBAWord8_t *pInput, uint_t uStartIndex=0, uint_t uPaletteSize=256)
 Set a range of RGBA color entries to a 256 entry palette.
 
void ClearPalette (RGBWord8_t *pOutput, uintptr_t uPaletteSize=256)
 Clear an RGB palette.
 
void ClearPalette (RGBAWord8_t *pOutput, uintptr_t uPaletteSize=256)
 Clear an RGBA palette.
 
void FillPalette (RGBWord8_t *pOutput, const RGBWord8_t *pInput, uintptr_t uPaletteSize=256)
 Fill an RGB palette with a specific color.
 
void FillPalette (RGBAWord8_t *pOutput, const RGBAWord8_t *pInput, uintptr_t uPaletteSize=256)
 Fill an RGBA palette with a specific color.
 
void DecompressImage (RGBAWord8_t *pOutput, uintptr_t uOutputStride, uint_t uWidth, uint_t uHeight, const Dxt1Packet_t *pInput, uintptr_t uInputStride)
 Decompress an array of 4x4 block compressed with DXT1.
 
void DecompressImage (RGBAWord8_t *pOutput, uintptr_t uOutputStride, uint_t uWidth, uint_t uHeight, const Dxt3Packet_t *pInput, uintptr_t uInputStride)
 Decompress an array of 4x4 block compressed with DXT3.
 
void DecompressImage (RGBAWord8_t *pOutput, uintptr_t uOutputStride, uint_t uWidth, uint_t uHeight, const Dxt5Packet_t *pInput, uintptr_t uInputStride)
 Decompress an array of 4x4 block compressed with DXT5.
 
const void * FindAIFFChunk (const void *pInput, uintptr_t uLength, uint32_t uChunkName)
 Scan an AIFF file for a specific chunk.
 
const void * FindRIFFChunk (const void *pInput, uintptr_t uLength, uint32_t uChunkName)
 Scan a RIFF file for a specific chunk.
 
uint32_t GetID3V2TagLength (const void *pInput)
 Parses the ID3V2 tag length.
 
uint_t XInputStopRumbleOnAllControllers (void) noexcept
 Turn off rumbling on XInput managed controllers.
 
uint_t XInputGetGamepadState (uint_t uWhich, XInputGamePad_t *pXInputGamePad, eXInputDeadZoneType uDeadZoneType=XINPUTDEADZONE_NONE) noexcept
 Read a controller using XInput.
 
uint_t IsDeviceXInput (const GUID *pGuid) noexcept
 Test if a device GUID belongs to an XInput device.
 
void CopySoundData (void *pOutput, const void *pInput, uintptr_t uLength, SoundManager::eDataType eType)
 Upload sound data.
 
void ClearSoundData (void *pOutput, uintptr_t uLength, SoundManager::eDataType eType)
 Clear sound data.
 
void CopyStereoInterleaved (void *pOutput, const uint8_t *pLeft, const uint8_t *pRight, uintptr_t uOutputSize)
 Merge a left and right audio channel into a single buffer.
 
void CopyStereoInterleaved (void *pOutput, const uint16_t *pLeft, const uint16_t *pRight, uintptr_t uOutputSize)
 Merge a left and right audio channel into a single buffer.
 
void ComputeReverb (uint8_t *pOutput, const uint8_t *pInput, uintptr_t uCount, uint_t uPercentage)
 Add in an 8 bit reverb.
 
void ComputeReverb (int16_t *pOutput, const int16_t *pInput, uintptr_t uCount, uint_t uPercentage)
 Add in an 16 bit reverb.
 
uint_t Upload (IDirectSoundBuffer *pBuffer, uintptr_t uOffset, const uint8_t *pInput, uintptr_t uInputLength)
 Upload sound data into a DirectSoundBuffer.
 
uint_t Upload (IDirectSoundBuffer *pBuffer, uintptr_t uOffset, SoundManager::BufferDecoder *pBufferDecoder, uintptr_t uInputLength)
 Upload compressed sound data into a DirectSoundBuffer.
 
float AudioDeviceGetMasterVolume (uint32_t uDeviceID)
 
uint_t AudioDeviceSetMasterVolume (uint32_t uDeviceID, float fInput)
 
void MACEExp1to6 (const uint8_t *pInput, uint8_t *pOutput, uintptr_t uPacketCount, MACEState_t *pInputState, MACEState_t *pOutputState, uint_t uNumChannels, uint_t uWhichChannel)
 Decompress audio compressed with MACE 6:1.
 
void MACEExp1to3 (const uint8_t *pInput, uint8_t *pOutput, uintptr_t uPacketCount, MACEState_t *pInputState, MACEState_t *pOutputState, uint_t uNumChannels, uint_t uWhichChannel)
 Decompress audio compressed with MACE 3:1.
 
void ImportS3MEffect (Sequencer::Command_t *pOutput, uint_t uS3MCommand, uint_t uS3MArgument)
 Convert an S3M effect command to a Burgerlib one.
 
uint_t ImportS3M (Sequencer::SongPackage *pOutput, const uint8_t *pInput, uintptr_t uInputLength)
 Import an S3M file.
 
void ImportITEffect (Sequencer::Command_t *pOutput, uint_t uITCommand, uint_t uITArgument)
 Convert an IT effect command to a Burgerlib one.
 
uint_t ImportIT (Sequencer::SongPackage *pOutput, const uint8_t *pInput, uintptr_t uInputLength)
 Import an IT file.
 
const uint8_t * ImportXMEffect (Sequencer::Command_t *pOutput, const uint8_t *pInput)
 Convert an XM effect command to a Burgerlib one.
 
uint_t ImportXM (Sequencer::SongPackage *pOutput, const uint8_t *pInput, uintptr_t uInputLength)
 Import an XM file.
 
uint_t IsSelfAssignedIPv4 (uint32_t uIP) noexcept
 Test if an IPv4 address is self assigned.
 
uint_t IsIPv6Unspecified (const uint8_t *pIP) noexcept
 Test if an IPv6 address is unspecified.
 
uint_t IsIPv6Loopback (const uint8_t *pIP) noexcept
 Test if an IPv6 address is a loop back address.
 
uint_t IsIPv6Multicast (const uint8_t *pIP) noexcept
 Test if an IPv6 address is a multicast address.
 
uint_t IsIPv6LinkLocal (const uint8_t *pIP) noexcept
 Test if an IPv6 address is a link local address.
 
uint_t IsIPv6SiteLocal (const uint8_t *pIP) noexcept
 Test if an IPv6 address is a site local address.
 
uint_t IsIPv6MappedIPv4 (const uint8_t *pIP) noexcept
 Test if an IPv6 address is an IPv4 address in a wrapper.
 
uint_t IsIPv6CompatibleIPv4 (const uint8_t *pIP) noexcept
 Test if an IPv6 address is an IPv4 address in a wrapper.
 
uint_t IsIPv6MulticastNodeLocal (const uint8_t *pIP) noexcept
 Test if an IPv6 multicast address has node local scope.
 
uint_t IsIPv6MulticastLinkLocal (const uint8_t *pIP) noexcept
 Test if an IPv6 multicast address has link local scope.
 
uint_t IsIPv6MulticastSiteLocal (const uint8_t *pIP) noexcept
 Test if an IPv6 multicast address has site local scope.
 
uint_t IsIPv6MulticastOrgLocal (const uint8_t *pIP) noexcept
 Test if an IPv6 multicast address has organization local scope.
 
uint_t IsIPv6MulticastGlobal (const uint8_t *pIP) noexcept
 Test if an IPv6 multicast address has global scope.
 
eError IPv4ToString (String *pOutput, uint32_t uIP, uint_t uPort=0xFFFFFFFFU) noexcept
 Convert an IPv4 address into a string.
 
eError IPv6ToString (String *pOutput, const uint8_t *pIP, uint_t uPort=0xFFFFFFFFU) noexcept
 Convert an IPv6 address into a string.
 
eError StringToIPv4 (const char *pInput, uint32_t *pIP, uint_t *pPort=0) noexcept
 Convert a string into an IPv4 address.
 
eError StringToIPv6 (const char *pInput, uint8_t *pIP, uint_t *pPort=0) noexcept
 Convert a string into an IPv6 address.
 
eError SocketSetBlocking (SocketType uSocket) noexcept
 Set a posix socket to blocking mode.
 
eError SocketSetNonBlocking (SocketType uSocket) noexcept
 Set a posix socket to non-blocking mode.
 
eError SocketTestForReading (SocketType uSocket) noexcept
 Test a posix socket if there's pending data.
 
eError get_default_mac_address (MacAddress_t *pOutput) noexcept
 Get the MAC address.
 
void MakeNetworkEnumQueryPacket (void *pPacket)
 Create a query packet for network server scanning.
 
uint_t IsNetworkEnumQueryPacket (const void *pPacket, uintptr_t uPacketSize)
 Verify a query packet for network server scanning.
 
void ChooseGridSize (uint_t *pXCellCount, uint_t *pYCellCount, const Vector4D_t *pBoundingRect, uintptr_t uItemCountEstimate, float fGridScale=0.707f)
 Determine the optimum size of a grid.
 
void EdgeIntersectTest (float *pEdge1VSEdge2, float *pEdge2VSEdge1, const Vector2D_t *pEdge1V1, const Vector2D_t *pEdge1V2, const Vector2D_t *pEdge2V1, const Vector2D_t *pEdge2V2)
 Test two edges for intersection.
 

Variables

const uint32_float_t g_fZero = {0x00000000U}
 Constant for 0.0f in the float format.
 
const uint32_float_t g_fNegZero = {0x80000000U}
 Constant for -0.0f in the float format.
 
const uint32_float_t g_fOne = {0x3F800000U}
 Constant for 1.0f in the float format.
 
const uint32_float_t g_fNegOne = {0xBF800000U}
 Constant for -1.0f in the float format.
 
const uint32_float_t g_fHalf = {0x3F000000U}
 Constant for 0.5f in the float format.
 
const uint32_float_t g_fNegHalf = {0xBF000000U}
 Constant for -0.5f in the float format.
 
const uint32_float_t g_fInf = {0x7F800000U}
 Constant for Infinity in the float format.
 
const uint32_float_t g_fNegInf = {0xFF800000U}
 Constant for -Infinity in the float format.
 
const uint32_float_t g_fNan = {0x7FBFFFFFU}
 Constant for signaling Not a Number (NaN) in the float format.
 
const uint32_float_t g_fNegNan = {0xFFBFFFFFU}
 Constant for negative signaling Not a Number (NaN) in the float format.
 
const uint32_float_t g_fQNan = {0x7FFFFFFFU}
 Constant for non signaling Not a Number (Nan) in the float format.
 
const uint32_float_t g_fNegQNan = {0xFFFFFFFFU}
 Constant for negative non signaling Not a Number in the float format.
 
const uint32_float_t g_fMin = {0x00800000U}
 Constant for smallest number (Non-zero) in the float format.
 
const uint32_float_t g_fNegMin = {0x80800000U}
 Constant for negative smallest number (Non-zero) in the float format.
 
const uint32_float_t g_fMax = {0x7F7FFFFFU}
 Constant for largest number in the float format.
 
const uint32_float_t g_fNegMax = {0xFF7FFFFFU}
 Constant for negative largest number in the float format.
 
const uint32_float_t g_fMinNoInteger = {0x4B000000}
 Constant for the smallest number that cannot have a fraction 8388608.0f.
 
const uint32_float_t g_fNegMinNoInteger = {0xCB000000}
 Constant for the negative smallest number that cannot have a fraction -8388608.0f.
 
const uint32_float_t g_fEpsilon = {0x34000000U}
 Constant for Epsilon in the float format.
 
const uint32_float_t g_fNegEpsilon = {0xB4000000U}
 Constant for negative Epsilon in the float format.
 
const uint32_float_t g_fQuarterPi = {0x3F490FDB}
 Constant for Pi*0.25f in the float format.
 
const uint32_float_t g_fNegQuarterPi = {0xBF490FDB}
 Constant for -Pi*0.25f in the float format.
 
const uint32_float_t g_fHalfPi = {0x3FC90FDB}
 Constant for Pi*0.5f in the float format.
 
const uint32_float_t g_fNegHalfPi = {0xBFC90FDB}
 Constant for -Pi*0.5f in the float format.
 
const uint32_float_t g_fPi = {0x40490FDB}
 Constant for Pi in the float format.
 
const uint32_float_t g_fNegPi = {0xC0490FDB}
 Constant for -Pi in the float format.
 
const uint32_float_t g_fPi2 = {0x40C90FDB}
 Constant for Pi*2 in the float format.
 
const uint32_float_t g_fNegPi2 = {0xC0C90FDB}
 Constant for -Pi*2 in the float format.
 
const uint32_float_t g_fPi4 = {0x41490FDB}
 Constant for Pi*4 in the float format.
 
const uint32_float_t g_fNegPi4 = {0xC1490FDB}
 Constant for -Pi*4 in the float format.
 
const uint32_float_t g_fCosPiDiv6 = {0x3F5DB3D7}
 Constant for get_cosine(Pi/6.0) in the float format.
 
const uint32_float_t g_fNegCosPiDiv6 = {0xBF5DB3D7}
 Constant for -get_cosine(Pi/6.0) in the float format.
 
const uint32_float_t g_fReciprocalHalfPi = {0x3F22F983}
 Constant for 1/(Pi*0.5f) in the float format.
 
const uint32_float_t g_fNegReciprocalHalfPi = {0xBF22F983}
 Constant for -1/(Pi*0.5f) in the float format.
 
const uint32_float_t g_fReciprocalPi = {0x3EA2F983}
 Constant for 1/Pi in the float format.
 
const uint32_float_t g_fNegReciprocalPi = {0xBEA2F983}
 Constant for -1/Pi in the float format.
 
const uint32_float_t g_fReciprocalPi2 = {0x3E22F983}
 Constant for 1/(Pi*2.0f) in the float format.
 
const uint32_float_t g_fNegReciprocalPi2 = {0xBE22F983}
 Constant for -1/(Pi*2.0f) in the float format.
 
const uint32_float_t g_fRadiansToDegrees = {0x42652EE1}
 Constant for 180/Pi in the float format.
 
const uint32_float_t g_fNegRadiansToDegrees = {0xC2652EE1}
 Constant for -180/Pi in the float format.
 
const uint32_float_t g_fDegreesToRadians = {0x3C8EFA35}
 Constant for Pi/180 in the float format.
 
const uint32_float_t g_fNegDegreesToRadians = {0xBC8EFA35}
 Constant for -Pi/180 in the float format.
 
const uint32_float_t g_fSqrt2 = {0x3FB504F3}
 Constant for sqrt(2) in the float format.
 
const uint32_float_t g_fNegSqrt2 = {0xBFB504F3}
 Constant for -sqrt(2) in the float format.
 
const uint32_float_t g_fLN2 = {0x3F317218}
 Constant for ln(2) in the float format.
 
const uint32_float_t g_fNegLN2 = {0xBF317218}
 Constant for -ln(2) in the float format.
 
const uint32_float_t g_fLN10 = {0x40135D8E}
 Constant for ln(10) in the float format.
 
const uint32_float_t g_fNegLN10 = {0xC0135D8E}
 Constant for -ln(10) in the float format.
 
const uint32_float_t g_f1Div255 = {0x3B808081}
 Constant for 1.0f/255.f in the float format.
 
const uint32_float_t g_f1Div3 = {0x3EAAAAAB}
 Constant for 1.0f/3.f in the float format.
 
const uint32_float_t g_f2Div3 = {0x3F2AAAAB}
 Constant for 2.0f/3.f in the float format.
 
const uint32_float_t g_f65536 = {0x47800000}
 Constant for 65536.f in the float float.
 
const uint64_double_t g_dZero = {0x0000000000000000ULL}
 Constant for 0.0 in the double format.
 
const uint64_double_t g_dNegZero = {0x8000000000000000ULL}
 Constant for -0.0 in the double format.
 
const uint64_double_t g_dOne = {0x3FF0000000000000ULL}
 Constant for 1.0 in the double format.
 
const uint64_double_t g_dNegOne = {0xBFF0000000000000ULL}
 Constant for -1.0 in the double format.
 
const uint64_double_t g_dHalf = {0x3FE0000000000000ULL}
 Constant for 0.5 in the double format.
 
const uint64_double_t g_dNegHalf = {0xBFE0000000000000ULL}
 Constant for -0.5 in the double format.
 
const uint64_double_t g_dInf = {0x7FF0000000000000ULL}
 Constant for Infinity in the double format.
 
const uint64_double_t g_dNegInf = {0xFFF0000000000000ULL}
 Constant for -Infinity in the double format.
 
const uint64_double_t g_dNan = {0x7FF7FFFFFFFFFFFFULL}
 Constant for signaling Not a Number (NaN) in the double format.
 
const uint64_double_t g_dNegNan = {0xFFF7FFFFFFFFFFFFULL}
 Constant for negative signaling Not a Number (NaN) in the double format.
 
const uint64_double_t g_dQNan = {0x7FFFFFFFFFFFFFFFULL}
 Constant for non signaling Not a Number (Nan) in the double format.
 
const uint64_double_t g_dNegQNan = {0xFFFFFFFFFFFFFFFFULL}
 Constant for negative non signaling Not a Number (Nan) in the double format.
 
const uint64_double_t g_dMin = {0x0010000000000000ULL}
 Constant for the smallest number (Non-zero) in the double format.
 
const uint64_double_t g_dNegMin = {0x8010000000000000ULL}
 Constant for the negative smallest number (Non-zero) in the double format.
 
const uint64_double_t g_dMax = {0x7FEFFFFFFFFFFFFFULL}
 Constant for the largest number in the double format.
 
const uint64_double_t g_dNegMax = {0xFFEFFFFFFFFFFFFFULL}
 Constant for the negative largest number in the double format.
 
const uint64_double_t g_dMinNoInteger = {0x4330000000000000ULL}
 Constant for the smallest number that cannot have a fraction 4503599627370496.0.
 
const uint64_double_t g_dNegMinNoInteger
 Constant for the negative smallest number that cannot have a fraction -4503599627370496.0.
 
const uint64_double_t g_dEpsilon = {0x3CB0000000000000ULL}
 Constant for Epsilon in the double format.
 
const uint64_double_t g_dNegEpsilon = {0xBCB0000000000000ULL}
 Constant for negative Epsilon in the double format.
 
const uint64_double_t g_dQuarterPi = {0x3FE921FB54442D18ULL}
 Constant for Pi*0.25 in the double format.
 
const uint64_double_t g_dNegQuarterPi = {0xBFE921FB54442D18ULL}
 Constant for -Pi*0.25 in the double format.
 
const uint64_double_t g_dHalfPi = {0x3FF921FB54442D18ULL}
 Constant for Pi*0.5 in the double format.
 
const uint64_double_t g_dNegHalfPi = {0xBFF921FB54442D18ULL}
 Constant for -Pi*0.5 in the double format.
 
const uint64_double_t g_dPi = {0x400921FB54442D18ULL}
 Constant for Pi in the double format.
 
const uint64_double_t g_dNegPi = {0xC00921FB54442D18ULL}
 Constant for -Pi in the double format.
 
const uint64_double_t g_dPi2 = {0x401921FB54442D18ULL}
 Constant for Pi*2 in the double format.
 
const uint64_double_t g_dNegPi2 = {0xC01921FB54442D18ULL}
 Constant for -Pi*2 in the double format.
 
const uint64_double_t g_dPi4 = {0x402921FB54442D18ULL}
 Constant for Pi*4 in the double format.
 
const uint64_double_t g_dNegPi4 = {0xC02921FB54442D18ULL}
 Constant for -Pi*4 in the double format.
 
const uint64_double_t g_dCosPiDiv6 = {0x3FEBB67AE8584CABULL}
 Constant for get_cosine(Pi/6.0) in the double format.
 
const uint64_double_t g_dNegCosPiDiv6 = {0xBFEBB67AE8584CABULL}
 Constant for -get_cosine(Pi/6.0) in the double format.
 
const uint64_double_t g_dReciprocalHalfPi
 Constant for 1/(Pi*0.5) in the double format.
 
const uint64_double_t g_dNegReciprocalHalfPi
 Constant for -1/(Pi*0.5) in the double format.
 
const uint64_double_t g_dReciprocalPi = {0x3FD45F306DC9C883ULL}
 Constant for 1/Pi in the double format.
 
const uint64_double_t g_dNegReciprocalPi
 Constant for -1/Pi in the double format.
 
const uint64_double_t g_dReciprocalPi2
 Constant for 1/(Pi*2) in the double format.
 
const uint64_double_t g_dNegReciprocalPi2
 Constant for -1/(Pi*2) in the double format.
 
const uint64_double_t g_dRadiansToDegrees
 Constant for 180/Pi in the double format.
 
const uint64_double_t g_dNegRadiansToDegrees
 Constant for -180/Pi in the double format.
 
const uint64_double_t g_dDegreesToRadians
 Constant for Pi/180 in the double format.
 
const uint64_double_t g_dNegDegreesToRadians
 Constant for -Pi/180 in the double format.
 
const uint64_double_t g_dSqrt2 = {0x3FF6A09E667F3BCDULL}
 Constant for sqrt(2) in the double format.
 
const uint64_double_t g_dNegSqrt2 = {0xBFF6A09E667F3BCDULL}
 Constant for -sqrt(2) in the double format.
 
const uint64_double_t g_dLN2 = {0x3FE62E42FEFA39EFULL}
 Constant for ln(2) in the double format.
 
const uint64_double_t g_dNegLN2 = {0xBFE62E42FEFA39EFULL}
 Constant for -ln(2) in the double format.
 
const uint64_double_t g_dLN10 = {0x40026BB1BBB55516ULL}
 Constant for ln(10) in the double format.
 
const uint64_double_t g_dNegLN10 = {0xC0026BB1BBB55516ULL}
 Constant for -ln(10) in the double format.
 
const uint64_double_t g_d1Div255 = {0x3F70101010101010ULL}
 Constant for 1.0/255.0 in the double format.
 
const uint64_double_t g_d1Div3 = {0x3FD5555555555555ULL}
 Constant for 1.0/3.0 in the double format.
 
const uint64_double_t g_d2Div3 = {0x447696695DBD1CC3ULL}
 Constant for 2.0/3.0 in the double format.
 
const uint64_double_t g_d65536 = {0x40f0000000000000ULL}
 Constant for 65536.0 in the double format.
 
const uint16_t g_u8087RoundToZero = 0x0F7F
 8087 control word to set rounding to zero
 
const uint16_t g_u8087RoundToInfinity = 0x0B7F
 8087 control word to set rounding to +infinity
 
const uint16_t g_u8087RoundToNegativeInfinity = 0x077F
 8087 control word to set rounding to -infinity
 
const GUID g_GUID_zero
 Empty GUID.
 
const uint32_float_t g_X86HalfAndNegHalf [2]
 0.5f,-0.5f for roundup / rounddown
 
constexpr const Frac32 kMinFrac32 = (-0x7FFFFFFF) - 1
 Minimum value for Frac32.
 
constexpr const Frac32 kMaxFrac32 = 0x7FFFFFFF
 Maximum value for Frac32.
 
constexpr const Fixed32 kMinFixed32 = (-0x7FFFFFFF) - 1
 Minimum value for Fixed32.
 
constexpr const Fixed32 kMaxFixed32 = 0x7FFFFFFF
 Maximum value for Fixed32.
 
constexpr const Fixed32 kPiFixed32 = 0x003243F
 Pi in Fixed32 format (3.141... * 65536 = 205887.416)
 
const char g_EmptyString [1] = {0}
 "" This string is hard coded to be an empty string. It saves space by having a singular occurrence.
 
const char g_CRLFString [3] = {'\r', '\n', 0}
 "\r\n"
 
const char g_CRString [2] = {'\r', 0}
 "\r"
 
const char g_LFString [2] = {'\n', 0}
 "\n"
 
const char g_TokenDelimiters [5] = {' ', '\t', '\r', '\n', 0}
 " \t\r\n"
 
const char g_TrueString [5] = {'t', 'r', 'u', 'e', 0}
 "true"
 
const char g_FalseString [6] = {'f', 'a', 'l', 's', 'e', 0}
 "false"
 
const char g_YesString [4] = {'y', 'e', 's', 0}
 "yes"
 
const char g_NoString [3] = {'n', 'o', 0}
 "no"
 
const char g_NullString [7] = {'(', 'n', 'u', 'l', 'l', ')', 0}
 String to print when a NULL pointer is found.
 
const char * g_WeekDays [7]
 Days of the week.
 
const char * g_Months [12]
 Months of the year.
 
const char * g_pBoolStrings [2]
 Strings to print for a boolean.
 
const uint16_t g_EmptyString16 [1] = {0}
 "" in UTF16
 
const uint16_t g_CRLFString16 [3] = {'\r', '\n', 0}
 "\r\n" in UTF16
 
const uint16_t g_CRString16 [2] = {'\r', 0}
 "\r" in UTF16
 
const uint16_t g_LFString16 [2] = {'\n', 0}
 "\n" in UTF16
 
const uint16_t g_TokenDelimiters16 [5] = {' ', '\t', '\r', '\n', 0}
 " \t\r\n" in UTF16
 
const uint16_t g_TrueString16 [5] = {'t', 'r', 'u', 'e', 0}
 "true" in UTF16
 
const uint16_t g_FalseString16 [6] = {'f', 'a', 'l', 's', 'e', 0}
 "false" in UTF16
 
const uint16_t g_YesString16 [4] = {'y', 'e', 's', 0}
 "yes" in UTF16
 
const uint16_t g_NoString16 [3] = {'n', 'o', 0}
 "no" in UTF16
 
const uint8_t g_AsciiTestTable [256]
 Table to quickly determine the type of low ASCII character.
 
const char g_NibbleToAsciiUppercase [16]
 Table to convert nibbles (0-15) into upper case ASCII characters.
 
const char g_NibbleToAsciiLowercase [16]
 Table to convert nibbles (0-15) into lower case ASCII characters.
 
const uint8_t g_AsciiToWord8Table [256]
 Table to convert ASCII characters into nibbles (0-15).
 
const uint8_t g_reverse_bits [256]
 Table to reverse the bit order of a byte.
 
const uint32_t g_TensTable32 [10]
 Table used for testing powers of ten for 32 bit integer to ASCII conversion.
 
const uint64_t g_TensTable64 [20]
 Table used for testing powers of ten for 64 bit integer to ASCII conversion.
 
const char * g_VolumePrefixes [kUnixStadia+1]
 Folder for mounted volumes.
 
const Vector2D_t g_Vector2DZero = {0.0f, 0.0f}
 Constant of 0.0f,0.0f.
 
const Vector2D_t g_Vector2DOne = {1.0f, 1.0f}
 Constant of 1.0f,1.0f.
 
const Vector2D_t g_Vector2DOneX = {1.0f, 0.0f}
 Constant of 1.0f,0.0f.
 
const Vector2D_t g_Vector2DOneY = {0.0f, 1.0f}
 Constant of 0.0f,1.0f.
 
const Word32ToVector2D_t g_Vector2DMax
 Constant of Burger::g_fMax,Burger::g_fMax.
 
const Word32ToVector2D_t g_Vector2DInfinity
 Constant of Burger::g_fInf,Burger::g_fInf.
 
const Vector3D_t g_Vector3DZero = {0.0f, 0.0f, 0.0f}
 Constant of 0.0f,0.0f,0.0f.
 
const Vector3D_t g_Vector3DOne = {1.0f, 1.0f, 1.0f}
 Constant of 1.0f,1.0f,1.0f.
 
const Vector3D_t g_Vector3DOneX = {1.0f, 0.0f, 0.0f}
 Constant of 1.0f,0.0f,0.0f.
 
const Vector3D_t g_Vector3DOneY = {0.0f, 1.0f, 0.0f}
 Constant of 0.0f,1.0f,0.0f.
 
const Vector3D_t g_Vector3DOneZ = {0.0f, 0.0f, 1.0f}
 Constant of 0.0f,0.0f,1.0f.
 
const Word32ToVector3D_t g_Vector3DMax
 Constant of Burger::g_fMax,Burger::g_fMax,Burger::g_fMax.
 
const Word32ToVector3D_t g_Vector3DInfinity
 Constant of Burger::g_fInf,Burger::g_fInf,Burger::g_fInf.
 
const Vector4D_t g_Vector4DZero = {0.0f,0.0f,0.0f,0.0f}
 Constant of 0.0f,0.0f,0.0f,0.0f.
 
const Vector4D_t g_Vector4DOne = {1.0f,1.0f,1.0f,1.0f}
 Constant of 1.0f,1.0f,1.0f,1.0f.
 
const Vector4D_t g_Vector4DOneX = {1.0f,0.0f,0.0f,0.0f}
 Constant of 1.0f,0.0f,0.0f,0.0f.
 
const Vector4D_t g_Vector4DOneY = {0.0f,1.0f,0.0f,0.0f}
 Constant of 0.0f,1.0f,0.0f,0.0f.
 
const Vector4D_t g_Vector4DOneZ = {0.0f,0.0f,1.0f,0.0f}
 Constant of 0.0f,0.0f,1.0f,0.0f.
 
const Vector4D_t g_Vector4DOneW = {0.0f,0.0f,0.0f,1.0f}
 Constant of 0.0f,0.0f,0.0f,1.0f.
 
const FixedVector3D_t s_FixedVector3DZero = {BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f)}
 Constant of 0.0f,0.0f,0.0f in fixed point.
 
const FixedVector3D_t s_FixedVector3DOne = {BURGER_FLOAT_TO_FIXED(1.0f),BURGER_FLOAT_TO_FIXED(1.0f),BURGER_FLOAT_TO_FIXED(1.0f)}
 Constant of 1.0f,1.0f,1.0f in fixed point.
 
const FixedVector3D_t s_FixedVector3DOneX = {BURGER_FLOAT_TO_FIXED(1.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f)}
 Constant of 1.0f,0.0f,0.0f in fixed point.
 
const FixedVector3D_t s_FixedVector3DOneY = {BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(1.0f),BURGER_FLOAT_TO_FIXED(0.0f)}
 Constant of 0.0f,1.0f,0.0f in fixed point.
 
const FixedVector3D_t s_FixedVector3DOneZ = {BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(1.0f)}
 Constant of 0.0f,0.0f,1.0f in fixed point.
 
const FixedVector4D_t s_FixedVector4DZero = {BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f)}
 Constant of 0.0f,0.0f,0.0f,0.0f in fixed point.
 
const FixedVector4D_t s_FixedVector4DOne = {BURGER_FLOAT_TO_FIXED(1.0f),BURGER_FLOAT_TO_FIXED(1.0f),BURGER_FLOAT_TO_FIXED(1.0f),BURGER_FLOAT_TO_FIXED(1.0f)}
 Constant of 1.0f,1.0f,1.0f,1.0f in fixed point.
 
const FixedVector4D_t s_FixedVector4DOneX = {BURGER_FLOAT_TO_FIXED(1.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f)}
 Constant of 1.0f,0.0f,0.0f,0.0f in fixed point.
 
const FixedVector4D_t s_FixedVector4DOneY = {BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(1.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f)}
 Constant of 0.0f,1.0f,0.0f,0.0f in fixed point.
 
const FixedVector4D_t s_FixedVector4DOneZ = {BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(1.0f),BURGER_FLOAT_TO_FIXED(0.0f)}
 Constant of 0.0f,0.0f,1.0f,0.0f in fixed point.
 
const FixedVector4D_t s_FixedVector4DOneW = {BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(0.0f),BURGER_FLOAT_TO_FIXED(1.0f)}
 Constant of 0.0f,0.0f,0.0f,1.0f in fixed point.
 
const Matrix3D_t g_Matrix3DIdentity
 Constant 3x3 identity matrix.
 
const Matrix4D_t s_Matrix4DIdentity
 Constant 4x4 identity matrix.
 
const FixedMatrix3D_t s_FixedMatrix3DIdentity
 Constant 3x3 fixed point identity matrix.
 
const FixedMatrix4D_t s_FixedMatrix4DIdentity
 Constant 4x4 fixed point identity matrix.
 
const uint32_float_tg_pMP3CosinePoints [5] = { g_MP3Cosine64, g_MP3Cosine32, g_MP3Cosine16, g_MP3Cosine8, g_MP3Cosine4 }
 Array of cosine points.
 
const uint32_float_t g_MP3FHTCosines [4][2]
 4 pairs of FHT cosine/sine values for MP3 encoding
 
const uint32_float_t g_MP3DCT36Constants [18]
 MP3 Layer 3 table for MP3DCT36.
 
const uint32_float_t g_MP3DCT12Constants [3]
 MP3 Layer 3 table for 0.5 / cos((Burger::g_dPi * (i*2+1)) / 12.0)
 
const uint8_t g_pscclr4dx9 []
 
const uint8_t g_pstex2clr4dx9 []
 
const uint8_t g_pstexturedx9 []
 
const uint8_t g_pstexturecolordx9 []
 
const uint8_t g_vs20pos22ddx9 []
 
const uint8_t g_vs20pos2tex2clr42ddx9 []
 
const uint8_t g_vs20sprite2ddx9 []
 
const uint8_t g_vsstaticpositiondx9 []
 
const char g_glDiffuseTexture [15]
 (OpenGL only) "DiffuseTexture"
 
const char g_glPosition [9]
 (OpenGL only) "Position"
 
const char g_glTexcoord [9]
 (OpenGL only) "Texcoord"
 
const char g_glColor [6]
 (OpenGL only) "Color"
 
const char g_glViewProjectionMatrix [21]
 (OpenGL only) "ViewProjectionMatrix"
 
const char g_glXYWidthHeight [14]
 (OpenGL only) "XYWidthHeight"
 
const char g_pscclr4gl []
 
const char g_pstex2clr4gl []
 
const char g_pstexturegl []
 
const char g_pstexturecolorgl []
 
const char g_vs20pos22dgl []
 
const char g_vs20pos2tex2clr42dgl []
 
const char g_vs20sprite2dgl []
 
const char g_vsstaticpositiongl []
 
const uint32_t g_pscclr4360 []
 
const uint32_t g_pstex2clr4360 []
 
const uint32_t g_pstexture360 []
 
const uint32_t g_pstexturecolor360 []
 
const uint32_t g_vs20pos22d360 []
 
const uint32_t g_vs20pos2tex2clr42d360 []
 
const uint32_t g_vs20sprite2d360 []
 
const uint32_t g_vsstaticposition360 []
 
const uint8_t g_pstexturevitaimage []
 
const uint8_t g_pstexturecolorvitaimage []
 
const uint8_t g_vs20sprite2dvitaimage []
 
const uint8_t g_vsstaticpositionvitaimage []
 
const uint_t g_Effect2DMemberDescription []
 Vertex description for Effect2D 2 entries for position 2 entries for UV.
 
const VertexBuffer::VertexAoS_t g_Effect2DDefaultVertexBufferDescription
 Describe the location for Effect2D.
 
const uint_t g_Shader2DColorVertexMemberDescription []
 Vertex description for Shader2DColorVertex 2 entries for position 2 entries for UV 4 entries for color.
 
const VertexBuffer::VertexAoS_t g_Shader2DColorVertexDefaultVertexBufferDescription
 Describe the location for Shader2DColorVertex.
 
const uint_t g_Shader2DCColorMemberDescription []
 Vertex description for Shader2DCColor 2 entries for position.
 
const VertexBuffer::VertexAoS_t g_Shader2DCColorDefaultVertexBufferDescription
 Describe the location for Shader2DCColor.
 

Typedef Documentation

◆ DisplayDefault

◆ Effect2DDefault

◆ EffectPositionColorTextureDefault

◆ EffectPositionTextureDefault

◆ false_type

Static bool constant of false.


A bool_constant set to false.

See also
bool_constant or true_type

◆ float16_t

16 bit float


Typedef that directly maps to a uint16_t to hold in a register, a 16 bit floating point number.

See also
Half

◆ Float80Bit

Burger::Float80Bit

80 bit float(Extended)


This is a type to abstract the 80-bit floating point data type found in the x8087 and 680x0 math co-processors. Currently, this type is hardly used anymore with the exception of the audio frame rate used in AIFF files.

Burgerlib only has functions to read and write this format into double and float.

Note
Use of this data type for runtime math is discouraged and only used for x86 code and AIFF audio file support.

◆ Shader2DCColorDefault

◆ Shader2DColorVertexDefault

◆ SocketType

Cross platform type for a socket.


BSD sockets are either int for most platforms or an unsigned integer the size of a void * for Microsoft Windows. This type is used to handle this platform difference.

◆ ThreadID

Platform Thread ID.


Every thread has a thread identification number. The number itself is not important, and if 0 it means it's invalid. If non-zero, it's a value that is used by the platform to identify a thread. This ID is not a pointer, but an integer value used by the operating system.

See also
Burger::Thread

◆ TLSShutdownProc

Burger::TLSShutdownProc

Callback prototype for TLS shutdown.


typedef void(BURGER_API* TLSShutdownProc)(void *pThis);

When ttls_set(uint32_t, const void*, TLSShutdownProc) is called, the passed pointer can be cleaned up using a callback function that matches this prototype. The data pointer is passed as the pThis parameter to the callback when tls_release() is called.

See also
tls_set(uint32_t, const void*, TLSShutdownProc) or, tls_release()

◆ true_type

Static bool constant of true.


A bool_constant set to true.

See also
bool_constant or false_type

◆ VertexBufferDefault

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
kSleepYield 

Used by sleep_ms(uint32_t) to yield the current time quantum.

kSleepInfinite 

Used by sleep_ms(uint32_t) for an infinite time delay.

◆ e8087Precision

32 bit Intel floating point precision


On Intel 32 bit processors, there's a special floating point register to control the precision of the 80387 compatible FPU

Note
This enumeration only exists on 32 bit Intel compatible CPU targets
See also
set_8087_precision(e8087Precision), get_8087_precision()
Enumerator
k8087Precision24Bit 

Use 24 bit / float precision (DirectX default)

k8087PrecisionInvalid 

Invalid value, do not use.

k8087Precision56Bit 

Use 56 bit / double precision.

k8087Precision64Bit 

Use 64 bit / long double precision (Power up default)

◆ e8087Rounding

32 bit Intel floating point rounding mode


On Intel 32 bit processors, there's a special floating point register to control the rounding mode from float to integer conversions in the 80387 compatible FPU

Note
This enumeration only exists on 32 bit Intel compatible CPU targets
See also
set_8087_rounding(e8087Rounding)
Enumerator
k8087RoundingNearest 

Use round to nearest integer (Banker's rounding)

k8087RoundingDown 

Use get_floor() rounding (-Infinity)

k8087RoundingUp 

Use get_ceiling() rounding (+Infinity)

k8087RoundingTruncate 

Use fraction truncation rounding (To Zero)

◆ eArgumentType

Type stored in this object.


When a ArgumentType object is created, it contains intrinsic data of a specific type. This enumeration lists the type it could be.

Enumerator
kArgumentTypeInvalid 

Invalid argument type.

kArgumentTypeInt8 

Signed 1 byte integer.

kArgumentTypeInt16 

Signed 2 byte integer.

kArgumentTypeInt32 

Signed 4 byte integer.

kArgumentTypeInt64 

Signed 8 byte integer.

kArgumentTypeUInt8 

Unsigned 1 byte integer.

kArgumentTypeUInt16 

Unsigned 2 byte integer.

kArgumentTypeUInt32 

Unsigned 4 byte integer.

kArgumentTypeUInt64 

Unsigned 8 byte integer.

kArgumentTypeFloat16 

16-bit IEEE 754-2008 float, aka binary16

kArgumentTypeFloat32 

32-bit IEEE 754 float

kArgumentTypeFloat64 

64-bit IEEE 754 float

kArgumentTypeBool 

bool C++ built in boolean type

kArgumentTypeVector2 

64-bit SIMD structure

kArgumentTypeVector4 

128-bit SIMD structure

kArgumentTypeVector4Int 

128-bit SIMD structure, integer only

kArgumentTypeVector4Dbl 

128-bit SIMD structure, 2 doubles only

kArgumentTypeBurgerStringPtr 

Burgerlib String.

kArgumentTypeCharPtr 

const char* for a "C" string

kArgumentTypeInt8Ptr 

const signed char* for a "C" string

kArgumentTypeUInt8Ptr 

const unsigned char* for a "C" string

kArgumentTypeInt16Ptr 

Pointer to an int16_t.

kArgumentTypeUInt16Ptr 

Pointer to a uint16_t.

kArgumentTypeInt32Ptr 

Pointer to an int32_t.

kArgumentTypeUInt32Ptr 

Pointer to a uint32_t.

kArgumentTypeInt64Ptr 

Pointer to an int64_t.

kArgumentTypeUInt64Ptr 

Pointer to a uint64_t.

kArgumentTypeFloat32Ptr 

Pointer to a float.

kArgumentTypeFloat64Ptr 

Pointer to a double.

kArgumentTypeBoolPtr 

Pointer to a bool.

kArgumentTypeVector2Ptr 

Pointer to a 64-bit SIMD structure.

kArgumentTypeVector4Ptr 

Pointer to a 128-bit SIMD structure, 4 floats only.

kArgumentTypeVector4IntPtr 

Pointer to a 128-bit SIMD structure, 4 32-bit integers.

kArgumentTypeVector4DblPtr 

Pointer to a 128-bit SIMD structure, 2 doubles only.

kArgumentTypeVoidPtr 

void * for a catchall

kArgumentTypeCount 

Auto list counter, all valid types must appear above this.

kArgumentTypeAny 

Used to indicate 'any valid arg'.

kArgumentTypeFirstInt 

First integer entry.

kArgumentTypeLastInt 

Last integer entry.

kArgumentTypeFirstSigned 

First signed integer entry.

kArgumentTypeLastSigned 

Last signed integer entry.

kArgumentTypeFirstUnsigned 

First unsigned integer entry.

kArgumentTypeLastUnsigned 

Last unsigned integer entry.

kArgumentTypeFirstFloat 

First floating point entry.

kArgumentTypeLastFloat 

Last floating point entry.

kArgumentTypeFirstCString 

First "C" string pointer entry.

kArgumentTypeLastCString 

Last "C" string pointer entry.

kArgumentTypeFirstPointer 

First pointer type entry.

kArgumentTypeLastPointer 

Last pointer type entry.

kArgumentTypeFirstVector 

First SIMD entry.

kArgumentTypeLastVector 

Last SIMD entry.

kArgumentTypeFirstVectorPointer 

First SIMD pointer type entry.

kArgumentTypeLastVectorPointer 

Last SIMD pointer type entry.

◆ eASCIITypeFlag

enum Burger::eASCIITypeFlag : uint8_t

Bit flags to quickly test low ASCII character type.


When g_AsciiTestTable[256] is indexed with a low ASCII character in the range of 0 through 127 inclusive, the value will contain one or more flags to quickly determine the type of ASCII character.

See also
g_AsciiTestTable[256]
Enumerator
ASCII_LOWER 

Lower case character.

ASCII_UPPER 

Upper case character.

ASCII_CONTROL 

Control character.

ASCII_SPACE 

Space character (Tab/CR/LF/FF)

ASCII_WHITESPACE 

Whitespace (Space/Tab only)

ASCII_PUNCTUATION 

Punctuation character.

kASCIITypeFlagHex 

Base 16 numeric character.

ASCII_DIGIT 

Base 10 numeric character.

◆ eError

Decompression error code.

Global error codes.



When a Burgerlib function fails, it will return one of these error codes. If the code returned by the operating system can't be mapped to these codes, it will be returned unmodified instead.

Enumerator
kErrorNone 

No error (Always zero).

kErrorGeneric 

General error.

kErrorInvalidParameter 

Input parameter is invalid.

kErrorInvalidArgument 

Invalid argument in function call.

kErrorNotInitialized 

Class or subsystem not initialized.

kErrorAlreadyInitialized 

Class or subsystem already initialized.

kErrorNotSupported 

Command not supported.

kErrorNotSupportedOnThisPlatform 

Function not supported on this platform.

kErrorVersionMismatch 

Version not supported.

kErrorItemNotFound 

Item searched for was not found.

kErrorNotReady 

Not ready yet.

kErrorOutOfEntries 

Fixed array is out of entries.

kErrorOutOfBounds 

Index is beyond the allowed range.

kErrorFailedTest 

Failed unit test.

kErrorDuplicateEntries 

Data was found more than once.

kErrorRestartRequired 

Restart is required.

kErrorFile 

File system errors.

kErrorFileNotFound 

File not found.

kErrorPathNotFound 

Directory to file not found.

kErrorVolumeNotFound 

Volume not found.

kErrorWriteProtected 

Write access was not granted.

kErrorNoMoreFileDescriptors 

No more file descriptors are available.

kErrorFileTableOverflow 

System file table overflow.

kErrorDirectoryNotEmpty 

Files are present in the directory.

kErrorNotAFile 

Operation attempted on an object that wasn't a file.

kErrorNotADirectory 

Operation attempted on an object that wasn't a directory.

kErrorFileExists 

File already exists.

kErrorOpenFailure 

Failed on opening.

kErrorReadFailure 

Failed on reading data.

kErrorWriteFailure 

Failed on writing data.

kErrorSeekFailure 

File or stream seek operation failed.

kErrorAccessDenied 

Permission not granted to perform operation.

kErrorResourceNotFound 

Data resource not found.

kErrorIO 

IO Error.

kErrorEndOfFile 

End of file.

kErrorIsLocked 

File object is locked.

kErrorMemory 

Memory system errors.

kErrorOutOfMemory 

Not enough memory to perform operation.

kErrorDataCorruption 

Data isn't valid or memory overrun detected.

kErrorBadAlignment 

Data wasn't aligned on a proper byte boundary.

kErrorNoData 

No data remaining.

kErrorBufferTooSmall 

Buffer not large enough for operation.

kErrorBufferTooLarge 

Buffer is too large for this operation.

kErrorAudio 

Sound system errors.

kErrorAudioDriverFailure 

Audio driver failed.

kErrorAudioFormatNotSupported 

Audio data format is not supported by the driver.

kErrorNetwork 

Network errors.

kErrorCancelled 

User cancelled.

kErrorRefused 

Operation was refused.

kErrorNetworkFailure 

Network hardware or software failure.

kErrorDataStarvation 

Data required for stream was not available in time.

kErrorSocketFailure 

Network socket failure.

kErrorAcceptFailure 

Failed on accepting a connection.

kErrorAddressNotFound 

Network address not found.

kErrorFlowInterrupted 

Network flow interrupted (Or blocked)

kErrorVideo 

Video and shader errors.

kErrorColorDepthNotSupported 

Color depth requested is not available on current hardware.

kErrorResolutionNotSupported 

Requested display resolution is not available on current hardware.

kErrorGPUFailure 

GPU hardware fault.

kErrorShaderCompile 

Shader didn't compile.

kErrorShaderIncludeMissing 

Shader has a bad include.

kErrorOutOfVideoMemory 

Out of video memory.

kErrorPalette 

Palette upload failure.

kErrorThread 

Thread and process errors.

kErrorTimeout 

Operation timed out.

kErrorEnumerationInProgress 

Enumeration operation is in progress.

kErrorNotEnumerating 

Enumeration operation isn't running.

kErrorCantLock 

Thread lock failure.

kErrorCantUnlock 

Thread unlock failure.

kErrorThreadNotStarted 

Thread couldn't start.

kErrorThreadAlreadyStarted 

Thread already in progress.

kErrorThreadCantStop 

Thread won't stop.

kErrorThreadNotFound 

Thread not found.

kErrorThreadNotModified 

Thread not modified.

◆ eEvent

Enumeration for input events.


Enumerator
EVENT_NULL 

Keyboard null event.

EVENT_TIMER 

Keyboard timer event.

EVENT_KEYDOWN 

Keyboard keypress event.

EVENT_KEYUP 

Keyboard key up event.

EVENT_KEYAUTO 

Keyboard repeated key event.

EVENT_MOUSEDOWN 

Mouse button down event.

EVENT_MOUSEUP 

Mouse button up event.

EVENT_MOUSEMOVE 

Mouse motion event.

EVENT_MOUSEPOSITION 

Mouse position event.

EVENT_MOUSEWHEEL 

Mouse wheel event.

EVENT_JOYPADDOWN 

Joypad button press.

EVENT_JOYPADUP 

Joypad button release.

EVENT_JOYPADAXIS 

Joypad axis motion.

EVENT_COUNT 

Maximum event code.

◆ eHintFlags

Flags to enable/disable underlying code.


Some underlying code in Burgerlib may or may not cause issues with higher level code, such as throwing exception, debugger integration which can cause issues. These flags will enable or disable these underlying features.

See also
get_hintflags(), set_hintflags(uint32_t), or Win32::throw_thread_naming_exception(uint32_t, const char*)
Enumerator
kHintWin32DisableThreadNamingException 

Disable the throwing of an exception to name a thread.

◆ eNetworkProtocol

ID codes for supported Network protocols.


For each NetworkModule class, there is a unique ID code for that protocol. Not all protocols are supported on all platforms.

TCP/IP is the only protocol supported by a majority of platforms.

See also
NetworkModule
Enumerator
kNetworkProtocolAppleTalk 

Module is AppleTalk.

kNetworkProtocolIP 

Module is TCP/IP (Both IPv4 and IPv6)

kNetworkProtocolIPX 

Module is IPX/SPX.

kNetworkProtocolBonjour 

Module is TCP/IP using Bonjour.

kNetworkProtocolSteam 

Module is Steam.

kNetworkProtocolXBoxLive 

Module is Xbox Live.

kNetworkProtocolUnknown 

Module is not loaded or defined.

kNetworkProtocolCount 

Number of valid module types.

◆ eNumericConversionFlags

Bit flags to control numeric text generation.


The functions that convert a float or integer into an ASCII string use these flags to suppress the output of the terminating zero and/or leading zeros. The default behavior is that a zero is output as the last character so that the string is a valid "C" string and no leading ASCII zeros.

See also
NumberToAscii(char *,uint32_t,uint_t)
Enumerator
NOENDINGNULL 

Pass this flag to disable storing a terminating zero.

LEADINGZEROS 

Pass this flag to enable leading ASCII zeros output.

◆ ePowerPCRounding

PowerPC floating point rounding mode.


On PowerPC processors, there's a special floating point register to control the rounding mode when precision is lost.

Note
This enumeration only exists on PowerPC compatible CPU targets
See also
set_PowerPC_rounding(ePowerPCRounding)
Enumerator
kPPCRoundingNearest 

Use round to nearest integer (Banker's rounding)

kPPCRoundingTruncate 

Use fraction truncation rounding (To Zero)

kPPCRoundingUp 

Use get_ceiling() rounding (+Infinity)

kPPCRoundingDown 

Use get_floor() rounding (-Infinity)

◆ eSocketFlags

Flags for socket types.


Network sockets come in two types, guaranteed in order delivery and out of order. These bit flags are used to determine which types are needed to be connected to a port.

See also
eSocketIndexes, NetworkEndpoint and NetworkModule
Enumerator
kSocketFlagDatagram 

Flag for datagram mode.

kSocketFlagStream 

Flag for stream mode.

kSocketFlagAll 

Flag for all modes.

kSocketFlagNone 

Flag for no modes.

◆ eSocketIndexes

Number of types of sockets available.


Network sockets come in two types, guaranteed in order delivery and out of order. This enum enumerates these types.

See also
eSocketFlags, NetworkEndpoint and NetworkModule
Enumerator
kSocketIndexDatagram 

Index to the socket for datagrams.

kSocketIndexStream 

Index to the socket for streams.

kSocketIndexCount 

Number of sockets allowed for this endpoint.

◆ eThreadPriority

Thread priority setting.


When calling Burger::set_thread_priority(Burger::ThreadID, Burger::eThreadPriority), this is the enumeration used to set the thread priority in a cross platform way.

Note
kThreadPriorityInvalid is used as an error code for functions that fail to retrieve a thread priority.
See also
Burger::Thread, or Burger::set_thread_priority(Burger::ThreadID, Burger::eThreadPriority)
Enumerator
kThreadPriorityInvalid 

Invalid thread priority.

kThreadPriorityLow 

Set thread to only execute when main thread is sleepin.

kThreadPriorityNormal 

Set thread to equal priority to main game thread.

kThreadPriorityHigh 

Set thread priority to higher than main game thread.

kThreadPriorityRealTime 

Set thread priority over everything.

◆ eTraceFlags

Flags to enable debugging features.


Many burgerlib functions allow for logging of information at runtime, and the behavior is enabled by setting these flags. Normally, the default is all flags clear.

See also
get_traceflags(), or set_traceflags(uint32_t)
Enumerator
kTraceFlagMemoryLeak 

Test and display memory leaks.

kTraceFlagRezLoad 

Print the name of a resource file being loaded.

kTraceFlagFileLoad 

Print the name of a file being loaded.

kTraceFlagRaceWarnings 

Print possible errors.

kTraceFlagNetwork 

Print the network commands.

kTraceFlagMessages 

Print operating system messages.

kTraceFlagActiveDebugging 

Actively debugging the code (NEVER SET THIS for applications sent to testers or release)

kTraceFlagAll 

GIVE ME everything!

◆ eUnixFlavor

Enum describing the actual platform Unix is running on.


Enumerator
kUnixUnknown 

Unknown flavor of Linux.

kUnixNative 

Native Linux distribution.

kUnixMSYS2 

Linux running under MSYS2.

kUnixWSL 

Linux running under Windows Subsystem for Linux.

kUnixCygwin 

Linux running under Cygwin.

kUnixMacOSX 

Unix running as MacOSX.

kUnixiOS 

Unix running as iOS.

kUnixAndroid 

Linux running under Android.

kUnixStadia 

Linux running under Google Stadia.

◆ eXInputDeadZoneType

Enumerator
XINPUTDEADZONE_NONE 

Don't apply a dead zone.

XINPUTDEADZONE_CARDINAL 

Apply an axis based dead zone.

XINPUTDEADZONE_CENTER 

Apply an x/y based dead zone.

Function Documentation

◆ _load_unaligned() [1/5]

double BURGER_API Burger::_load_unaligned ( const double * pInput)
externnoexcept

Fetch a double value from memory with byte alignment.


Assuming the data is unaligned, it will grab data a byte at a time and reconstruct it into a double value in native endian.

Parameters
pInputPointer to a double value.
Returns
The double value.
See also
_load_unaligned_swap(const double*), or _load_unaligned(const uint64_t*)

◆ _load_unaligned() [2/5]

float BURGER_API Burger::_load_unaligned ( const float * pInput)
externnoexcept

Fetch a float value from memory with byte alignment.


Assuming the data is unaligned, it will grab data a byte at a time and reconstruct it into a float value in native endian.

Parameters
pInputPointer to a float value.
Returns
The float value.
See also
_load_unaligned_swap(const float*), or _load_unaligned(const uint32_t*)

◆ _load_unaligned() [3/5]

uint16_t BURGER_API Burger::_load_unaligned ( const uint16_t * pInput)
externnoexcept

Fetch a 16 bit unsigned value from memory with byte alignment.


Assuming the data is unaligned, it will grab data a byte at a time and reconstruct it into a 16 bit value in native endian.

Parameters
pInputPointer to a 16 bit value.
Returns
The 16 bit unsigned value.
See also
_load_unaligned_swap(const uint16_t*)

◆ _load_unaligned() [4/5]

uint32_t BURGER_API Burger::_load_unaligned ( const uint32_t * pInput)
externnoexcept

Fetch a 32 bit unsigned value from memory with byte alignment.


Assuming the data is unaligned, it will grab data a byte at a time and reconstruct it into a 32 bit value in native endian.

Parameters
pInputPointer to a 32 bit value.
Returns
The 32 bit unsigned value.
See also
_load_unaligned_swap(const uint32_t*)

◆ _load_unaligned() [5/5]

uint64_t BURGER_API Burger::_load_unaligned ( const uint64_t * pInput)
externnoexcept

Fetch a 64 bit unsigned value from memory with byte alignment.


Assuming the data is unaligned, it will grab data a byte at a time and reconstruct it into a 64 bit value in native endian.

Parameters
pInputPointer to a 64 bit value.
Returns
The 64 bit unsigned value.
See also
_load_unaligned_swap(const uint64_t*)

◆ _load_unaligned_swap() [1/5]

double BURGER_API Burger::_load_unaligned_swap ( const double * pInput)
externnoexcept

Fetch a 64 bit reverse endian float from memory with byte alignment.


Given a pointer to a 64-bit floating point value, load it and swap the bytes so that 0x123456789ABCDEF0 becomes 0xF0DEBC9A78563412. The pointer does not have to be 64-bit aligned. uint8_t alignment is acceptable.

Parameters
pInputPointer to the value to endian convert
Returns
The value with the bytes swapped.
Note
nullptr pointers are illegal and will page fault.
See also
_load_unaligned(const double *)

◆ _load_unaligned_swap() [2/5]

float BURGER_API Burger::_load_unaligned_swap ( const float * pInput)
externnoexcept

Fetch a 32 bit reverse endian float from memory with byte alignment.


Given a pointer to a 32-bit floating point value, load it and swap the bytes so that 0x12345678 becomes 0x78563412. The pointer does not have to be 32-bit aligned. uint8_t alignment is acceptable.

Parameters
pInputPointer to the value to endian convert
Returns
The value with the bytes swapped.
Note
nullptr pointers are illegal and will page fault.
See also
_load_unaligned(const float *)

◆ _load_unaligned_swap() [3/5]

uint16_t BURGER_API Burger::_load_unaligned_swap ( const uint16_t * pInput)
externnoexcept

Fetch a 16 bit unsigned reverse endian integer from memory with byte alignment.


Given a pointer to a 16 bit value, load it and swap the bytes so that 0x1234 becomes 0x3412. The pointer does not have to be 16-bit aligned. uint8_t alignment is acceptable.

Parameters
pInputPointer to a value to endian convert
Returns
The value with the bytes swapped.
Note
nullptr pointers are illegal and will page fault.
See also
_load_unaligned(const uint16_t *)

◆ _load_unaligned_swap() [4/5]

uint32_t BURGER_API Burger::_load_unaligned_swap ( const uint32_t * pInput)
externnoexcept

Fetch a 32 bit unsigned reverse endian integer from memory with byte alignment.


Given a pointer to a 32 bit value, load it and swap the bytes so that 0x12345678 becomes 0x78563412. The pointer does not have to be 32-bit aligned. uint8_t alignment is acceptable.

Parameters
pInputPointer to value to endian convert
Returns
The value with the bytes swapped.
Note
nullptr pointers are illegal and will page fault.
See also
_load_unaligned(const uint32_t *)

◆ _load_unaligned_swap() [5/5]

uint64_t BURGER_API Burger::_load_unaligned_swap ( const uint64_t * pInput)
externnoexcept

Fetch a 64 bit unsigned reverse endian integer from memory with byte alignment.


Assuming the data is unaligned, it will grab data a byte at a time and reconstruct it into a 64 bit value in reverse endian. The pointer does not have to be 64-bit aligned. uint8_t alignment is acceptable.

Parameters
pInputPointer to a 64 bit value.
Returns
The value with the bytes swapped.
Note
nullptr pointers are illegal and will page fault.
See also
_load_unaligned(const uint64_t*)

◆ _store_unaligned() [1/5]

void BURGER_API Burger::_store_unaligned ( double * pOutput,
double dInput )
externnoexcept

Store a double value to memory with byte alignment.


Assuming the output pointer is unaligned, it will store data a byte at a time into a 64 bit float value in native endian.

Parameters
pOutputPointer to a double value.
dInputThe double value.
See also
_store_unaligned_swap(double*,double).

◆ _store_unaligned() [2/5]

void BURGER_API Burger::_store_unaligned ( float * pOutput,
float fInput )
externnoexcept

Store a float value to memory with byte alignment.


Assuming the output pointer is unaligned, it will store data a byte at a time into a 32 bit float value in native endian.

Parameters
pOutputPointer to a float value.
fInputThe float value.
See also
_store_unaligned_swap(float*,float)

◆ _store_unaligned() [3/5]

void BURGER_API Burger::_store_unaligned ( uint16_t * pOutput,
uint16_t uInput )
externnoexcept

Store a 16 bit unsigned value to memory with byte alignment.


Assuming the output pointer is unaligned, it will store data a byte at a time into a 16 bit value in native endian.

Parameters
pOutputPointer to a 16 bit value.
uInputThe 16 bit unsigned value.
See also
_store_unaligned_swap(uint16_t*,uint16_t)

◆ _store_unaligned() [4/5]

void BURGER_API Burger::_store_unaligned ( uint32_t * pOutput,
uint32_t uInput )
externnoexcept

Store a 32 bit unsigned value to memory with byte alignment.


Assuming the output pointer is unaligned, it will store data a byte at a time into a 32 bit value in native endian.

Parameters
pOutputPointer to a 32 bit value.
uInputThe 32 bit unsigned value.
See also
_store_unaligned_swap(uint32_t*,uint32_t)

◆ _store_unaligned() [5/5]

void BURGER_API Burger::_store_unaligned ( uint64_t * pOutput,
uint64_t uInput )
externnoexcept

Store a 64 bit unsigned value to memory with byte alignment.


Assuming the output pointer is unaligned, it will store data a byte at a time into a 64 bit value in native endian.

Parameters
pOutputPointer to a 64 bit value.
uInputThe 64 bit unsigned value.
See also
_store_unaligned_swap(uint64_t*,uint64_t)

◆ _store_unaligned_swap() [1/5]

void BURGER_API Burger::_store_unaligned_swap ( double * pOutput,
double dInput )
externnoexcept

Store a double value to memory with endian swapping with byte alignment.


Assuming the output pointer is unaligned, it will store data a byte at a time into a 64 bit float value in reversed endian.

Parameters
pOutputPointer to a double value.
dInputThe double value.
See also
_store_unaligned(double*,double)

◆ _store_unaligned_swap() [2/5]

void BURGER_API Burger::_store_unaligned_swap ( float * pOutput,
float fInput )
externnoexcept

Store a float value to memory with endian swapping with byte alignment.


Assuming the output pointer is unaligned, it will store data a byte at a time into a 32 bit float value in reversed endian.

Parameters
pOutputPointer to a float value.
fInputThe float value.
See also
_store_unaligned(float*, float)

◆ _store_unaligned_swap() [3/5]

void BURGER_API Burger::_store_unaligned_swap ( uint16_t * pOutput,
uint16_t uInput )
externnoexcept

Store a 16 bit unsigned value with endian swapping to memory with byte alignment.


Assuming the output pointer is unaligned, it will store data a byte at a time into a 16 bit value in reversed endian.

Parameters
pOutputPointer to a 16 bit value.
uInputThe 16 bit unsigned value.
See also
_store_unaligned(uint16_t*,uint16_t)

◆ _store_unaligned_swap() [4/5]

void BURGER_API Burger::_store_unaligned_swap ( uint32_t * pOutput,
uint32_t uInput )
externnoexcept

Store a 32 bit unsigned value with endian swapping to memory with byte alignment.


Assuming the output pointer is unaligned, it will store data a byte at a time into a 32 bit value in reversed endian.

Parameters
pOutputPointer to a 32 bit value.
uInputThe 32 bit unsigned value.
See also
_store_unaligned(uint32_t*, uint32_t)

◆ _store_unaligned_swap() [5/5]

void BURGER_API Burger::_store_unaligned_swap ( uint64_t * pOutput,
uint64_t uInput )
externnoexcept

Store a 64 bit unsigned value with endian swapping to memory with byte alignment.


Assuming the output pointer is unaligned, it will store data a byte at a time into a 64 bit value in reversed endian.

Parameters
pOutputPointer to a 64 bit value.
uInputThe 64 bit unsigned value.
See also
_store_unaligned(uint64_t*,uint64_t)

◆ _swapendiandouble() [1/2]

double BURGER_API Burger::_swapendiandouble ( const double * pInput)
externnoexcept

Swap endian of a 64 bit float.


Reverse the endian of a 64 bit float. Implemented in assembly on some platforms.

Parameters
pInputPointer to the value to return endian swapped
Returns
Input endian swapped
See also
_swapendiandouble(double), SwapEndian::load(T)

◆ _swapendiandouble() [2/2]

double BURGER_API Burger::_swapendiandouble ( double dInput)
externnoexcept

Swap endian of a 64 bit float.


Reverse the endian of a 64 bit float. Implemented in assembly on some platforms.

Note
It's recommended to use the pointer versions of this function because they guarantee bit accurate endian swaps. Some CPUs will modify floating point values if endian swapped if they convert to a NaN.
Parameters
dInputThe value to return endian swapped
Returns
Input endian swapped
See also
_swapendiandouble(const double*), SwapEndian::load(T)

◆ _swapendianfloat() [1/2]

float BURGER_API Burger::_swapendianfloat ( const float * pInput)
externnoexcept

Swap endian of a 32 bit float from a pointer.


Reverse the endian of a 32 bit float. Implemented in assembly on some platforms.

Parameters
pInputPointer to the value to return endian swapped
Returns
Input endian swapped
See also
_swapendianfloat(float), SwapEndian::load(T)

◆ _swapendianfloat() [2/2]

float BURGER_API Burger::_swapendianfloat ( float fInput)
externnoexcept

Swap endian of a 32 bit float.


Reverse the endian of a 32 bit float. Implemented in assembly on some platforms.

Note
It's recommended to use the pointer versions of this function because they guarantee bit accurate endian swaps. Some CPUs will modify floating point values if endian swapped if they convert to a NaN.
Parameters
fInputThe value to return endian swapped
Returns
Input endian swapped
See also
_swapendianfloat(const float*), SwapEndian::load(T)

◆ absolute() [1/6]

double BURGER_API Burger::absolute ( double dInput)
externnoexcept

Get the absolute value of a double.


Return the absolute value of the floating point input. This is usually done by inline assembly.

Note
-Inf will return +Inf. NaN is undefined
Parameters
dInputA valid double precision floating point number.
Returns
The absolute value of the input.
See also
absolute(int32_t), absolute(int64_t) and absolute(float)

◆ absolute() [2/6]

float BURGER_API Burger::absolute ( float fInput)
externnoexcept

Get the absolute value of a float.


Return the absolute value of the floating point input. This is usually done by inline assembly.

Note
-Inf will return +Inf. NaN is undefined
Parameters
fInputA valid single precision floating point number.
Returns
The absolute value of the input.
See also
absolute(int32_t), absolute(int64_t) and absolute(double)

◆ absolute() [3/6]

int16_t Burger::absolute ( int16_t iInput)
inlinenoexcept

Get the absolute value of an integer.


Without branching, calculate the absolute value of an integer.

Parameters
iInputValue to get the absolute value of.
Returns
The absolute value of iInput.
See also
absolute(int8_t), absolute(int32_t), absolute(int64_t), absolute(float) and absolute(double)

◆ absolute() [4/6]

int32_t Burger::absolute ( int32_t iInput)
inlinenoexcept

Get the absolute value of an integer.


Without branching, calculate the absolute value of an integer.

Parameters
iInputValue to get the absolute value of.
Returns
The absolute value of iInput.
See also
absolute(int8_t), absolute(int16_t), absolute(int64_t), absolute(float) and absolute(double)

◆ absolute() [5/6]

int64_t Burger::absolute ( int64_t iInput)
inlinenoexcept

Get the absolute value of a 64 bit integer.


Without branching, calculate the absolute value of an integer.

Parameters
iInputValue to get the absolute value of.
Returns
The absolute value of iInput.
See also
absolute(int8_t), absolute(int16_t), absolute(int32_t), absolute(float) and absolute(double)

◆ absolute() [6/6]

int8_t Burger::absolute ( int8_t iInput)
inline

Get the absolute value of an integer.


Without branching, calculate the absolute value of an integer.

Parameters
iInputValue to get the absolute value of.
Returns
The absolute value of iInput.
See also
absolute(int16_t), absolute(int32_t), absolute(int64_t), absolute(float) and absolute(double)

◆ Alloc()

void *BURGER_API Burger::Alloc ( uintptr_t uSize)
externnoexcept

Allocate memory.


Allocate memory using the GlobalMemoryManager

Parameters
uSizeNumber of bytes requested to allocate
Returns
nullptr if no bytes are requested or an out of memory condition exists.
See also
Burger::alloc_clear() or Burger::Free()

◆ alloc_clear()

void *BURGER_API Burger::alloc_clear ( uintptr_t uSize)
externnoexcept

Allocate memory that is preinitialized to zero.


Allocate memory using the Burger::GlobalMemoryManager. If the allocation was successful, initialize all the memory to zero.

Parameters
uSizeNumber of bytes requested to allocate
Returns
nullptr if no bytes are requested or of an out of memory condition exists.
See also
Burger::Alloc() or Burger::Free()

◆ alloc_copy()

void *BURGER_API Burger::alloc_copy ( const void * pInput,
uintptr_t uSize )
externnoexcept

Allocate a buffer and copy data into it.


Allocate memory and copy the contents of the pointer to the new memory

Parameters
pInputPointer to the data to copy. nullptr will leave the data uninitialized
uSizeSize of the buffer to allocate.
Returns
nullptr on failure, a pointer with the data on success
See also
Burger::Alloc() or Burger::Realloc()

◆ alloc_platform_memory()

void *BURGER_API Burger::alloc_platform_memory ( uintptr_t uSize)
externnoexcept

Allocate memory from the underlying operating system.


The handle based memory manager obtains the memory it controls from the operating system. Generic systems call malloc(), other systems call the low level functions directly

On MacOS, this calls NewPtr(), Windows calls HeapAlloc(), etc...

Parameters
uSizeNumber of bytes requested from the operating system
Returns
Pointer to memory allocated from the operating system
See also
free_platform_memory(const void *)

◆ amplitude_ratio_to_decibels()

float BURGER_API Burger::amplitude_ratio_to_decibels ( float fVolume)
externnoexcept

Convert a XAudio2 Amplitude multiplier to a DirectSound decibel value.


Convert the volume of 0.0f to 1.0f into decibels from -10000 to 0

Parameters
fVolumein the form of 0.0f to 1.0f in the scale needed for XAudio2 GetVolume()
Returns
DirectSound decibels from -10000 to 0.
See also
decibels_to_amplitude_ratio(float)

◆ AsciiHexToInteger() [1/2]

uint32_t BURGER_API Burger::AsciiHexToInteger ( const char * pInput,
uintptr_t uLength )
externnoexcept

Convert hex ASCII string to an integer.


Scan a hex string and return a 32 bit unsigned integer

Parsing ends either when characters are exhausted of if a non-ASCII character is found. Overflow returns BURGER_MAXUINT

Parameters
pInputPointer to the ASCII string
uLengthLength of the string in bytes
Returns
0 if the string is invalid, or the hex value
See also
AsciiHexToInteger(const uint16_t *,uintptr_t)

◆ AsciiHexToInteger() [2/2]

uint32_t BURGER_API Burger::AsciiHexToInteger ( const uint16_t * pInput,
uintptr_t uLength )
externnoexcept

Convert hex UTF-16 string to an integer.


Scan a hex string and return a 32 bit unsigned integer

Parsing ends either when characters are exhausted of if a non-ASCII character is found. Overflow returns BURGER_MAXUINT

Parameters
pInputPointer to the UTF-16 string
uLengthLength of the string in bytes
Returns
0 if the string is invalid, or the hex value
See also
AsciiHexToInteger(const char *,uintptr_t)

◆ AsciiToBoolean() [1/3]

uint_t BURGER_API Burger::AsciiToBoolean ( const char * pInput,
const char ** pDest = nullptr )
externnoexcept

Convert an ASCII string into a boolean.


If the case insensitive string matches yes, no, true or false, return 1,0,1,0 in that order. Otherwise, parse it as a number and return 1 if it's non-zero and 0 if it's zero or invalid.

String matching does not look for ending whitespace, so true and true value will both match as "true" and return 1. The pDest return value will be moved forward by four characters in both cases.

Parameters
pInputPointer to the string to convert. nullptr will page fault.
pDestPointer to a const char * that will either be given pInput (Error) of pInput moved ahead until a non-numeric character was found. This can be nullptr if the application doesn't require the location of the string after the integer was parsed.
Returns
0 if no, false, ASCII 0 or invalid input. 1 if yes, true or a non-zero numeric value.
See also
AsciiToInteger(const char *,const char **) or AsciiToBoolean(const char ,uint_t)

◆ AsciiToBoolean() [2/3]

uint_t BURGER_API Burger::AsciiToBoolean ( const char * pInput,
uint_t bDefault )
externnoexcept

Convert an ASCII string into a boolean.


Convert the string to a TRUE or a FALSE. If the input is nullptr or invalid, return the default value.

"true" and "yes" are considered TRUE while "false" and "no" are considered FALSE. The comparison is case insensitive.

Parameters
pInputPointer to the string to convert. nullptr will force the default
bDefaultDefault boolean to return in the event of a parsing error.
Returns
TRUE or FALSE
See also
AsciiToBoolean(const char *,const char **)

◆ AsciiToBoolean() [3/3]

uint_t BURGER_API Burger::AsciiToBoolean ( uint_t * pOutput,
const char * pInput )
externnoexcept

Convert an ASCII string into a boolean and signal if successful.


Convert the string to a TRUE or a FALSE. If the input is nullptr or invalid, return FALSE.

"true" and "yes" are considered TRUE while "false" and "no" are considered FALSE. The comparison is case insensitive.

Parameters
pOutputPointer to the value to return
pInputPointer to the string to convert. nullptr will force the default
Returns
TRUE if a value was parsed, FALSE if the ASCII string was not a boolean
See also
AsciiToBoolean(const char *,const char **) or AsciiToBoolean(const char ,uint_t)

◆ AsciiToDouble() [1/4]

double BURGER_API Burger::AsciiToDouble ( const char * pInput,
const char ** pDest = nullptr )
externnoexcept

Convert an ASCII string into a floating point number.


Take a floating point number of the format (+/-)303.030e(+/-)1 and turn it into a double that is the equivalent.

If a number is parsed, the character at the end of the string after whitespace is removed is the one pointed by pDest.

Examples:
1.0
1.666
1666.4
1e3 -> 1000
NAN -> NAN
INF -> INF

Note
A 64 bit floating point number is of the range 1.797693134862316e+308 (Max) to 2.225073858507201e-308 (min).
This function is not recommended for use on the PlayStation 2 due to its heavy use of double operations. Use Burger::AsciiToFloat(const char ,const char **) instead.
Parameters
pInputPointer to the ASCII string with the number to parse.
pDestPointer to receive the character beyond the last character parsed. Will equal pInput on error.
Returns
The number as a double.
See also
Burger::AsciiToFloat(const char *,const char **) or Burger::AsciiToInteger(const char *,const char **)

◆ AsciiToDouble() [2/4]

double BURGER_API Burger::AsciiToDouble ( const char * pInput,
double dDefault )
externnoexcept

Return a 64 bit floating point value.


Scan the value string as a 64 bit floating point numeric value and if successful, return it. If it's not a number, return the default.

If NaN or Inf is detected, it will be converted to a zero to prevent floating point issues.

Parameters
pInputPointer to the string to convert. nullptr will force the default
dDefaultValue to return on error
Returns
Value or dDefault
See also
AsciiToDouble(const char *,const char **) or AsciiToFloat(const char ,float)

◆ AsciiToDouble() [3/4]

double BURGER_API Burger::AsciiToDouble ( const char * pInput,
double dDefault,
double dMin,
double dMax )
externnoexcept

Return a 64 bit floating point value.


Scan the value string as a 64 bit floating point numeric value and if successful, test it against the valid range and return the value clamped to that range. If it's not a number, return the default.

If NaN or Inf is detected, it will be converted to a zero to prevent floating point issues.

Parameters
pInputPointer to the string to convert. nullptr will force the default
dDefaultValue to return on error
dMinMinimum acceptable value
dMaxMaximum acceptable value
Returns
Value in between dMin and dMax or dDefault
See also
AsciiToDouble(const char *,const char **) or AsciiToFloat(const char ,float,float,float)

◆ AsciiToDouble() [4/4]

uint_t BURGER_API Burger::AsciiToDouble ( double * pOutput,
const char * pInput )
externnoexcept

Return a 64 bit floating point value and signal if successful.


Scan the value string as a 64 bit floating point numeric value and if successful, return TRUE. If it's not a number, return FALSE.

Parameters
pOutputPointer to the value to return
pInputPointer to the string to convert. nullptr will force the default
Returns
TRUE if a value was parsed, FALSE if the ASCII string was not a 64 bit float
See also
AsciiToDouble(const char *,const char **) or AsciiToFloat(float *,const char *)

◆ AsciiToFloat() [1/4]

float BURGER_API Burger::AsciiToFloat ( const char * pInput,
const char ** pDest = nullptr )
externnoexcept

Convert an ASCII string into a floating point number.


Take a floating point number of the format (+/-)303.030e(+/-)1 and turn it into a float that is the equivalent.

If a number is parsed, the character at the end of the string after whitespace is removed is the one pointed by pDest.

Examples:
1.0
1.666
1666.4
1e3 -> 1000
NAN -> NAN
INF -> INF

Note
A 32 bit floating point number is of the range 3.402823e+38 (Max) to 1.175494e-38 (min).
Parameters
pInputPointer to the ASCII string with the number to parse.
pDestPointer to receive the character beyond the last character parsed. Will equal pInput on error.
Returns
The number as a float.
See also
Burger::AsciiToDouble(const char *,const char **) or Burger::AsciiToInteger(const char *,const char **)

◆ AsciiToFloat() [2/4]

float BURGER_API Burger::AsciiToFloat ( const char * pInput,
float fDefault )
externnoexcept

Return a floating point value.


Scan the value string as a 32 bit floating point numeric value and if successful, return it. If it's not a number, return the default.

If NaN or Inf is detected, it will be converted to a zero to prevent floating point issues.

Parameters
pInputPointer to the string to convert. nullptr will force the default
fDefaultValue to return on error
Returns
Value parsed or fDefault
See also
AsciiToFloat(const char *,const char **) or AsciiToDouble(const char ,double)

◆ AsciiToFloat() [3/4]

float BURGER_API Burger::AsciiToFloat ( const char * pInput,
float fDefault,
float fMin,
float fMax )
externnoexcept

Return a floating point value.


Scan the value string as a 32 bit floating point numeric value and if successful, test it against the valid range and return the value clamped to that range. If it's not a number, return the default.

If NaN or Inf is detected, it will be converted to a zero to prevent floating point issues.

Parameters
pInputPointer to the string to convert. nullptr will force the default
fDefaultValue to return on error
fMinMinimum acceptable value
fMaxMaximum acceptable value
Returns
Value in between fMin and fMax or fDefault
See also
AsciiToFloat(const char *,const char **) or AsciiToDouble(const char ,double,double,double)

◆ AsciiToFloat() [4/4]

uint_t BURGER_API Burger::AsciiToFloat ( float * pOutput,
const char * pInput )
externnoexcept

Return a floating point value and signal if successful.


Scan the value string as a 32 bit floating point numeric value and if successful, return TRUE. If it's not a number, return FALSE.

Parameters
pOutputPointer to the value to return
pInputPointer to the string to convert. nullptr will force the default
Returns
TRUE if a value was parsed, FALSE if the ASCII string was not a 32 bit float
See also
AsciiToFloat(const char *,const char **) or AsciiToDouble(double *,const char *)

◆ AsciiToInteger() [1/3]

uint32_t BURGER_API Burger::AsciiToInteger ( const char * pInput,
const char ** pDest = nullptr )
externnoexcept

Convert an ASCII string into an integer.


Take a string formatted as a simple integer number a hex number of the form $5123 or 0x1234 with or without a preceding '-' sign and convert it into a 32 bit integer value.

Overflow is detected and is considered an error condition. 0xFFFFFFFFU will be returned in this case.

Parameters
pInputPointer to the string to convert. nullptr will page fault.
pDestPointer to a const char * that will either be given pInput (Error) of pInput moved ahead until a non-numeric character was found. This can be nullptr if the application doesn't require the location of the string after the integer was parsed.
Returns
A 32 bit integer that represents the ASCII string. Will be 0xFFFFFFFF if an overflow occurred and 0 if nothing could be parsed.
See also
Burger::AsciiToFloat(const char *,const char **) or Burger::AsciiToDouble(const char *,const char **)

◆ AsciiToInteger() [2/3]

int_t BURGER_API Burger::AsciiToInteger ( const char * pInput,
int_t iDefault,
int_t iMin = INT32_MIN,
int_t iMax = INT32_MAX )
externnoexcept

Return a signed integer value.


Scan the value string as a 32 bit signed integer or hex value and if successful, test it against the valid range and return the value clamped to that range. If it's not a number, return the default.

Hex strings are acceptable input in the form of $1234 and 0x1234. 0xFFFFFFFF will be converted to -1.

Parameters
pInputPointer to the string to convert. nullptr will force the default
iDefaultValue to return on error
iMinMinimum acceptable value
iMaxMaximum acceptable value
Returns
Value in between iMin and iMax or iDefault
See also
AsciiToInteger(const char *,const char **) or AsciiToWord(const char ,uint_t,uint_t,uint_t)

◆ AsciiToInteger() [3/3]

uint_t BURGER_API Burger::AsciiToInteger ( uint32_t * pOutput,
const char * pInput )
externnoexcept

Convert a 32 bit integer and signal if successful.


Scan the value string as a 32 bit integer or hex value and if successful, return TRUE.

Hex strings are acceptable input in the form of $1234 and 0x1234. 0xFFFFFFFF will be converted to -1.

Parameters
pOutputPointer to the value to return
pInputPointer to the string to convert. nullptr will force the default
Returns
TRUE if a value was parsed, FALSE if the ASCII string was not a number
See also
AsciiToInteger(const char *,const char **) or AsciiToInteger(const char *,int_t,int_t,int_t)

◆ AsciiToInteger64() [1/3]

uint64_t BURGER_API Burger::AsciiToInteger64 ( const char * pInput,
const char ** pDest = nullptr )
externnoexcept

Convert an ASCII string into a 64 bit integer.


Take a string formatted as a simple integer number, a hex number of the form $5123 or 0x1234 with or without a preceding '-' sign and convert it into a 64 bit integer value.

Overflow is detected and is considered an error condition. 0xFFFFFFFFFFFFFFFFU will be returned in this case.

Parameters
pInputPointer to the string to convert. nullptr will page fault.
pDestPointer to a const char * that will either be given pInput (Error) of pInput moved ahead until a non-numeric character was found. This can be nullptr if the application doesn't require the location of the string after the integer was parsed.
Returns
A 64 bit integer that represents the ASCII string. Will be 0xFFFFFFFF if an overflow occurred and 0 if nothing could be parsed.
See also
Burger::AsciiToFloat(const char *,const char **) or Burger::AsciiToDouble(const char *,const char **)

◆ AsciiToInteger64() [2/3]

int64_t BURGER_API Burger::AsciiToInteger64 ( const char * pInput,
int64_t iDefault,
int64_t iMin = INT64_MIN,
int64_t iMax = INT64_MAX )
externnoexcept

Return a signed integer value.


Scan the value string as a 64 bit signed integer or hex value and if successful, test it against the valid range and return the value clamped to that range. If it's not a number, return the default.

Hex strings are acceptable input in the form of $1234 and 0x1234. 0xFFFFFFFFFFFFFFFF will be converted to -1.

Parameters
pInputPointer to the string to convert. nullptr will force the default
iDefaultValue to return on error
iMinMinimum acceptable value
iMaxMaximum acceptable value
Returns
Value in between iMin and iMax or iDefault
See also
AsciiToInteger64(const char *,const char **) or AsciiToWord64(const char ,uint64_t,uint64_t,uint64_t)

◆ AsciiToInteger64() [3/3]

uint_t BURGER_API Burger::AsciiToInteger64 ( uint64_t * pOutput,
const char * pInput )
externnoexcept

Convert a 64 bit integer and signal if successful.


Scan the value string as a 64 bit integer or hex value and if successful, return TRUE.

Hex strings are acceptable input in the form of $1234 and 0x1234. 0xFFFFFFFFFFFFFFFF will be converted to -1.

Parameters
pOutputPointer to the value to return
pInputPointer to the string to convert. nullptr will force the default
Returns
TRUE if a value was parsed, FALSE if the ASCII string was not a number
See also
AsciiToInteger64(const char *,const char **) or AsciiToInteger64(const char *,int64_t,int64_t,int64_t)

◆ AsciiToWord()

uint_t BURGER_API Burger::AsciiToWord ( const char * pInput,
uint_t uDefault,
uint_t uMin = 0,
uint_t uMax = 0xFFFFFFFFU )
externnoexcept

Return an unsigned integer value.


Scan the value string as a 32 bit unsigned integer or hex value and if successful, test it against the valid range and return the value clamped to that range. If it's not a number, return the default.

Hex strings are acceptable input in the form of $1234 and 0x1234

Parameters
pInputPointer to the string to convert. nullptr will force the default
uDefaultValue to return on error
uMinMinimum acceptable value
uMaxMaximum acceptable value
Returns
Value in between uMin and uMax or uDefault
See also
AsciiToInteger(const char *,const char **) or AsciiToInteger(const char ,int_t,int_t,int_t)

◆ AsciiToWord64()

uint64_t BURGER_API Burger::AsciiToWord64 ( const char * pInput,
uint64_t uDefault,
uint64_t uMin = 0,
uint64_t uMax = 0xFFFFFFFFFFFFFFFFULL )
externnoexcept

Return an unsigned integer value.


Scan the value string as a 64 bit unsigned integer or hex value and if successful, test it against the valid range and return the value clamped to that range. If it's not a number, return the default.

Hex strings are acceptable input in the form of $1234 and 0x1234

Parameters
pInputPointer to the string to convert. nullptr will force the default
uDefaultValue to return on error
uMinMinimum acceptable value
uMaxMaximum acceptable value
Returns
Value in between uMin and uMax or uDefault
See also
AsciiToInteger64(const char *,const char **) or AsciiToInteger64(const char *,int64_t,int64_t,int64_t)

◆ Assert()

int BURGER_API Burger::Assert ( const char * pCondition,
const char * pFilename,
uint32_t uLineNumber )
externnoexcept

Redirect an assert to the application's assert function.


When an assert is fired from the use of the macro BURGER_ASSERT this function is called which redirects to the currently logged assert function. It's global by design.

Prints the message "Assertion from \"%s\" in file %s at line %u.\n", pCondition, pFilename, uLineNumber using Debug::Message(), and then calls invoke_debugger(). If execution continues, it will call Debug::Fatal() with the same message and exit the application.

Note
This function normally does not return and calls Debug::Fatal() or some other shutdown function. If the function returns, usually via manual user input, it will return a conditional override which is usually 0 to match the condition that triggered the assert.
Parameters
pCondition"C" string of the test condition that fired off the assert
pFilenameThe value of the "__FILE__" macro at the location of the BURGER_ASSERT macro
uLineNumberThe value of the "__LINE__" macro at the location of the BURGER_ASSERT macro
Returns
Defaults to 0.
See also
Assert_t::DefaultAssert(), BURGER_ASSERT, or BURGER_ASSERTTEST

◆ atomic_add() [1/2]

uint32_t BURGER_API Burger::atomic_add ( volatile uint32_t * pOutput,
uint32_t uInput )
externnoexcept

Atomically add a 32 bit value to a variable in memory.


For multi-CPU machines, this function will atomically add a value to one stored in memory using appropriate locking for all CPUs. It will return the value before the addition was applied.

Parameters
pOutputPointer to a 32 bit aligned memory location to add a value to
uInput32 bit value to add
Returns
Value that was stored in the variable previously

◆ atomic_add() [2/2]

uint64_t BURGER_API Burger::atomic_add ( volatile uint64_t * pOutput,
uint64_t uInput )
externnoexcept

Atomically add a 64 bit value to a variable in memory.


For multi-CPU machines, this function will atomically add a value to one stored in memory using appropriate locking for all CPUs. It will return the value before the addition was applied.

Parameters
pOutputPointer to a 64 bit aligned memory location to add a value to
uInput64 bit value to add
Returns
Value that was stored in the variable previously

◆ atomic_compare_and_set() [1/2]

uint_t BURGER_API Burger::atomic_compare_and_set ( volatile uint32_t * pOutput,
uint32_t uOld,
uint32_t uNew )
externnoexcept

Atomically swaps a 32 bit value for one in memory.


Atomically swap a value in a memory only if the memory matches the previous value.

Parameters
pOutputPointer to a 32 bit aligned memory location to swap with
uOld32 bit value to compare with the memory location
uNew32 bit value to store if the comparison succeeds
Returns
TRUE if successful, FALSE if the memory is unstable

◆ atomic_compare_and_set() [2/2]

uint_t BURGER_API Burger::atomic_compare_and_set ( volatile uint64_t * pOutput,
uint64_t uOld,
uint64_t uNew )
externnoexcept

Atomically swaps a 64 bit value for one in memory.


Atomically swap a value in a memory only if the memory matches the previous value.

Parameters
pOutputPointer to a 64 bit aligned memory location to swap with
uOld64 bit value to compare with the memory location
uNew64 bit value to store if the comparison succeeds
Returns
TRUE if successful, FALSE if the memory is unstable

◆ atomic_get() [1/2]

uint32_t BURGER_API Burger::atomic_get ( volatile uint32_t * pInput)
externnoexcept

Atomically gets a 32 bit value from memory.


For multi-CPU machines, this function will atomically load a value with using appropriate locking for all CPUs

Parameters
pInputPointer to a 32 bit aligned memory location to load from
Returns
Value that was stored in the variable

◆ atomic_get() [2/2]

uint64_t BURGER_API Burger::atomic_get ( volatile uint64_t * pInput)
externnoexcept

Atomically gets a 64 bit value from memory.


For multi-CPU machines, this function will atomically load a value with using appropriate locking for all CPUs

Parameters
pInputPointer to a 64 bit aligned memory location to load from
Returns
Value that was stored in the variable

◆ atomic_lock()

void BURGER_API Burger::atomic_lock ( volatile uint32_t * pInput)
externnoexcept

Lock a spin lock.


Wait until a spin lock is released and then lock it. If the lock is already in possession by another thread, let this thread sleep for a moment to let the other thread do it's job and release the lock for this thread's use.

Note
This is NOT a mutex, it's an atomic value. A thread can lock forever if a thread locks a spin lock twice, since the thread won't exit this function to release the thread.
Parameters
pInputPointer to a 32 bit aligned memory location to lock
See also
Mutex, or atomic_unlock()

◆ atomic_set() [1/2]

uint32_t BURGER_API Burger::atomic_set ( volatile uint32_t * pOutput,
uint32_t uInput )
externnoexcept

Atomically sets a 32 bit value to memory.


For multi-CPU machines, this function will atomically store a value with using appropriate locking for all CPUs

Parameters
pOutputPointer to a 32 bit aligned memory location to set
uInput32 bit value to set in the memory location
Returns
Value that was stored in the variable previously

◆ atomic_set() [2/2]

uint64_t BURGER_API Burger::atomic_set ( volatile uint64_t * pOutput,
uint64_t uInput )
externnoexcept

Atomically sets a 64 bit value for one in memory.


For multi-CPU machines, this function will atomically swap a value with one stored in memory using appropriate locking for all CPUs

Note
This function is only available on systems with a 64 bit CPU
Parameters
pOutputPointer to a 64 bit aligned memory location to set
uInput64 bit value to set in the memory location
Returns
Value that was stored in the variable previously

◆ atomic_trylock()

uint_t BURGER_API Burger::atomic_trylock ( volatile uint32_t * pInput)
externnoexcept

Attempt to lock a spin lock.


Try to atomically set a lock to TRUE. If the lock is already set to TRUE, then return FALSE to not it was not successful. If the lock was FALSE and was successfully set to TRUE, return TRUE

Parameters
pInputPointer to a 32 bit aligned memory location to lock
Returns
TRUE if successful, FALSE if it's already locked

◆ atomic_unlock()

void BURGER_API Burger::atomic_unlock ( volatile uint32_t * pInput)
externnoexcept

Unlock a spin lock.


Set a spin lock to zero, atomically.

Parameters
pInputPointer to a 32 bit aligned memory location to unlock
See also
atomic_lock(), Mutex

◆ AudioDeviceGetMasterVolume()

float Burger::AudioDeviceGetMasterVolume ( uint32_t uDeviceID)
extern

◆ AudioDeviceSetMasterVolume()

uint_t Burger::AudioDeviceSetMasterVolume ( uint32_t uDeviceID,
float fInput )
extern

◆ big_endian_load_extended()

double BURGER_API Burger::big_endian_load_extended ( const Float80Bit pInput)
externnoexcept

Load a big endian 80 bit float as a double.


Convert an 80 bit float stored in memory in big endian format into a double in native endian

Parameters
pInputPointer to the 80 bit floating point number
Returns
Value in the form of a double
See also
little_endian_load_extended(const Float80Bit)

◆ bit_reverse() [1/2]

uint32_t BURGER_API Burger::bit_reverse ( uint32_t uInput,
uint_t uBitLength )
externnoexcept

Reverse the bits in a byte.


Given a bit width (From 1 through 32), reverse the order of the bits within.

Since this version is variable width, if uBitLength is equal to 4, the truth table would look like this...

Input Output
0x00 0x00
0x01 0x02
0x02 0x01
0x03 0x03

Whereas if uBitLength is equal to 8, the truth table would look like this...

Input Output
0x00 0x00
0x01 0x00
0x02 0x40
0x03 0xC0
Note
This function will set the unused bits to zero, so if a 3 bit number is requested, the upper 29 (32-3) bits will be set to zero.
Parameters
uInputValue to bit reverse
uBitLengthWidth of the value to reverse (1 through 32)
Returns
uInput with the bits reversed
See also
bit_reverse(uint64_t,uint_t)

◆ bit_reverse() [2/2]

uint64_t BURGER_API Burger::bit_reverse ( uint64_t uInput,
uint_t uBitLength )
externnoexcept

Reverse the bits in a byte.


Given a bit width (From 1 through 64), reverse the order of the bits within.

Since this version is variable width, if uBitLength is equal to 4, the truth table would look like this...

Input Output
0x00 0x00
0x01 0x02
0x02 0x01
0x03 0x03

Whereas if uBitLength is equal to 8, the truth table would look like this...

Input Output
0x00 0x00
0x01 0x80
0x02 0x40
0x03 0xC0
Note
This function will set the unused bits to zero, so if a 3 bit number is requested, the upper 61 (64-3) bits will be set to zero.
Parameters
uInputValue to bit reverse
uBitLengthWidth of the value to reverse (1 through 64)
Returns
uInput with the bits reversed
See also
bit_reverse(uint32_t,uint_t)

◆ calc_adler16()

uint_t BURGER_API Burger::calc_adler16 ( const void * pInput,
uintptr_t uInputLength,
uint_t uAdler16 = 1 )
externnoexcept

Compute the (Mark) Adler-16 checksum.


Create a 16 bit Alder-16 checksum using a 16 bit version the Alder algorithm.

Implemented following the documentation for the 32 bit version found in http://en.wikipedia.org/wiki/Adler-32

The lower 8 bits is a simple additive checksum with a starting value of 1.

The upper 8 bits is a factorial additive checksum based on the additive checksum with a starting value of 0

Parameters
pInputPointer to a buffer to be checksummed
uInputLengthNumber of bytes in the buffer to be checksummed
uAdler16Alder-16 from previous calculations or one if a new checksum is desired
Returns
16 bit Alder-16 checksum of the data
See also
calc_crc32b(const void *, uintptr_t, uint32_t) or calc_adler32( const void *, uintptr_t, uint32_t)

◆ calc_adler32()

uint32_t BURGER_API Burger::calc_adler32 ( const void * pInput,
uintptr_t uInputLength,
uint32_t uAdler32 = 1 )
externnoexcept

Compute the (Mark) Adler-32 checksum.


Implemented following the documentation found in http://en.wikipedia.org/wiki/Adler-32 and http://tools.ietf.org/html/rfc1950

The lower 16 bits is a simple additive checksum with a starting value of 1.

The upper 16 bits is a factorial additive checksum based on the additive checksum with a starting value of 0

Parameters
pInputPointer to a buffer to be checksummed
uInputLengthNumber of bytes in the buffer to be checksummed
uAdler32Alder-32 from previous calculations or one if a new checksum is desired
Returns
32 bit Alder-32 checksum of the data
See also
calc_crc32b(const void *, uintptr_t, uint32_t) or calc_adler16( const void *, uintptr_t, uint_t)

◆ calc_crc16IBM()

uint16_t BURGER_API Burger::calc_crc16IBM ( const void * pInput,
uintptr_t uInputLength,
uint16_t uCRC = 0 )
externnoexcept

Calculate the CRC16-IBM checksum (MP3) for a buffer.


Calculates a 16-bit CRC, "CRC16-IBM", which is the 16-bit Frame Check Sequence of MP3.

The polynomial format is X^16+X^15+X^2+X^0 or 0x8005

Implemented following the documentation found in http://en.wikipedia.org/wiki/Cyclic_redundancy_check

Parameters
pInputPointer to a buffer to be checksummed
uInputLengthNumber of bytes in the buffer to be checksummed
uCRCCRC from previous calculations or zero if a new checksum is desired
Returns
16 bit CRC16-IBM checksum of the data
See also
calc_crc32(const void *,uintptr_t,uint32_t), calc_adler16(const void *,uintptr_t,uint_t) or calc_adler32(const void *,uintptr_t,uint32_t)

◆ calc_crc32()

uint32_t BURGER_API Burger::calc_crc32 ( const void * pInput,
uintptr_t uInputLength,
uint32_t uCRC = 0 )
externnoexcept

Calculate the CRC32 checksum (Ethernet) for a buffer.


Calculates a 32-bit CRC, "CRC32", which is the 32-bit Frame Check Sequence of ITU V.42. This is the CRC algorithm used for Ethernet

The polynomial format is X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 or 0x04C11DB7

Implemented following the documentation found in http://en.wikipedia.org/wiki/Cyclic_redundancy_check and http://wiki.osdev.org/CRC32

Parameters
pInputPointer to a buffer to be checksummed
uInputLengthNumber of bytes in the buffer to be checksummed
uCRCCRC from previous calculations or zero if a new checksum is desired
Returns
32 bit CRC32 checksum of the data
See also
calc_crc32b(const void *,uintptr_t,uint32_t), calc_adler16(const void *,uintptr_t,uint_t) or calc_adler32(const void *,uintptr_t,uint32_t)

◆ calc_crc32b()

uint32_t BURGER_API Burger::calc_crc32b ( const void * pInput,
uintptr_t uInputLength,
uint32_t uCRC = 0 )
externnoexcept

Calculate the CRC32B checksum (ZLib) for a buffer.


Calculates a 32-bit CRC, "CRC32B", which is the 32-bit Frame Check Sequence of ITU V.42. This is the CRC algorithm used for Zlib, PNG, MPEG-2, Gzip and others

The polynomial format is X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 or 0x04C11DB7

Implemented following the documentation found in http://en.wikipedia.org/wiki/Cyclic_redundancy_check and http://wiki.osdev.org/CRC32

Parameters
pInputPointer to a buffer to be checksummed
uInputLengthNumber of bytes in the buffer to be checksummed
uCRCCRC from previous calculations or zero if a new checksum is desired
Returns
32 bit CRC32B checksum of the data
See also
calc_crc32(const void *,uintptr_t,uint32_t), calc_adler16(const void *,uintptr_t,uint_t) or calc_adler32(const void *,uintptr_t,uint32_t)

◆ CheckForForks() [1/3]

int BURGER_API Burger::CheckForForks ( const FSRef * pFSRef,
uint_t * pbDataFork,
uint_t * pbResourceFork )
externnoexcept

Test if a file has either a resource or data fork.


Before copying a file, check if the source has a resource or data fork, so only the detected forks will be copied. Return two booleans that are either TRUE or FALSE if either fork is detected. FSGetCatalogInfo() is used to check the fork sizes.

This function always returns paramErr if running on MacOS 7 or 8.

Note
This is only available on Mac OS 7.5-9.9.2 or Carbon
Parameters
pFSRefPointer to the FSRef of the file of interest.
pbDataForkPointer to a boolean to receive the presence of a data fork.
pbResourceForkPointer to a boolean to receive the presence of a resource fork.

◆ CheckForForks() [2/3]

int BURGER_API Burger::CheckForForks ( const FSSpec * pFSSpec,
uint_t * pbDataFork,
uint_t * pbResourceFork )
externnoexcept

Test if a file has either a resource or data fork.


Before copying a file, check if the source has a resource or data fork, so only the detected forks will be copied. Return two booleans that are either TRUE or FALSE if either fork is detected. PBHGetFInfoSync() is used to check the fork sizes.

Note
This is only available on Mac OS 7.5-9.9.2 or Carbon
Parameters
pFSSpecPointer to the FSSpec of the file of interest.
pbDataForkPointer to a boolean to receive the presence of a data fork.
pbResourceForkPointer to a boolean to receive the presence of a resource fork.
See also
CheckForForks(short, long, const uint8_t *, uint_t *, uint_t *)

◆ CheckForForks() [3/3]

int BURGER_API Burger::CheckForForks ( short svRefNum,
long lDirID,
const uint8_t * pName,
uint_t * pbDataFork,
uint_t * pbResourceFork )
externnoexcept

Test if a file has either a resource or data fork.


Before copying a file, check if the source has a resource or data fork, so only the detected forks will be copied. Return two booleans that are either TRUE or FALSE if either fork is detected. PBHGetFInfoSync() is used to check the fork sizes.

Note
This is only available on Mac OS 7.5-9.9.2 or Carbon
Parameters
svRefNumVolume the file resides on
lDirIDDirectory ID the file resides on
pNamePointer to a PASCAL string of the filename
pbDataForkPointer to a boolean to receive the presence of a data fork.
pbResourceForkPointer to a boolean to receive the presence of a resource fork.

◆ CheckVolLock()

int BURGER_API Burger::CheckVolLock ( short svRefNum)
externnoexcept

Check if a volume is locked.


Given a volume reference number, get its information and determine if it is locked. If no error is returned, the volume is not locked. A wPrErr is returned if the lock is by hardware (Write protect tab) or vLckdErr if the volume was locked by a software flag.

Note
This is only available on Mac OS 7.5-9.9.2 or Carbon
Parameters
svRefNumVolume reference number
Returns
Zero if no error, or mac error code which shows how it was locked.

◆ ChooseGridSize()

void BURGER_API Burger::ChooseGridSize ( uint_t * pXCellCount,
uint_t * pYCellCount,
const Vector4D_t * pBoundingRect,
uintptr_t uItemCountEstimate,
float fGridScale = 0.707f )
extern

Determine the optimum size of a grid.


Utility to find good values for x width and y height for a grid index, based on the expected number of items to index and the bounding box.

A bias for the values up or down using grid_scale can be applied

Note
The cell count is clamped between 1 and 256 inclusive.
Parameters
pXCellCountPointer to receive the width of the new grid
pYCellCountPointer to receive the height of the new grid
pBoundingRectBounding rect of the grid
uItemCountEstimateNumber of items likely to occupy the grid
fGridScaleScale for precision

◆ clamp()

template<typename T >
T Burger::clamp ( T Input,