unit PXT.Headers;
(*
 * Copyright (c) 2015 - 2025 Dr. Yuriy Kotsarenko. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is
 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and limitations under the License.
 *)
interface

// NOTE: this file is auto-generated, please do not edit.

{$INCLUDE PXT.Config.inc}

uses
  PXT.Types;

const
  // Name of external dynamic library.
  AfterwarpLib = 'afterwarp';
  
type
  PDeviceHandle = ^TDeviceHandle;
  TDeviceHandle = record
  end;

  PSwapChainHandle = ^TSwapChainHandle;
  TSwapChainHandle = record
  end;

  PApplicationHandle = ^TApplicationHandle;
  TApplicationHandle = record
  end;

  PBufferHandle = ^TBufferHandle;
  TBufferHandle = record
  end;

  PProgramHandle = ^TProgramHandle;
  TProgramHandle = record
  end;

  PComputeProgramHandle = ^TComputeProgramHandle;
  TComputeProgramHandle = record
  end;

  PTextureHandle = ^TTextureHandle;
  TTextureHandle = record
  end;

  PSamplerHandle = ^TSamplerHandle;
  TSamplerHandle = record
  end;

  PPSurfaceHandle = ^PSurfaceHandle;
  PSurfaceHandle = ^TSurfaceHandle;
  TSurfaceHandle = record
  end;

  PCanvasBufferHandle = ^TCanvasBufferHandle;
  TCanvasBufferHandle = record
  end;

  PPathBrokerHandle = ^TPathBrokerHandle;
  TPathBrokerHandle = record
  end;

  PCanvasHandle = ^TCanvasHandle;
  TCanvasHandle = record
  end;

  PImageAtlasHandle = ^TImageAtlasHandle;
  TImageAtlasHandle = record
  end;

  PTextRendererHandle = ^TTextRendererHandle;
  TTextRendererHandle = record
  end;

  PTextModellerHandle = ^TTextModellerHandle;
  TTextModellerHandle = record
  end;

  PMeshBufferHandle = ^TMeshBufferHandle;
  TMeshBufferHandle = record
  end;

  PGrapherHandle = ^TGrapherHandle;
  TGrapherHandle = record
  end;

  PMeshModelHandle = ^TMeshModelHandle;
  TMeshModelHandle = record
  end;

  PPMeshMetaTagHandle = ^PMeshMetaTagHandle;
  PMeshMetaTagHandle = ^TMeshMetaTagHandle;
  TMeshMetaTagHandle = record
  end;

  PMeshMetaTagsHandle = ^TMeshMetaTagsHandle;
  TMeshMetaTagsHandle = record
  end;

  PMeshVoxelHandle = ^TMeshVoxelHandle;
  TMeshVoxelHandle = record
  end;

  PSceneMeshMaterialsHandle = ^TSceneMeshMaterialsHandle;
  TSceneMeshMaterialsHandle = record
  end;

  PGaussianBlurHandle = ^TGaussianBlurHandle;
  TGaussianBlurHandle = record
  end;

  PKawaseBlurHandle = ^TKawaseBlurHandle;
  TKawaseBlurHandle = record
  end;

  PColorDitheringHandle = ^TColorDitheringHandle;
  TColorDitheringHandle = record
  end;

  PSelectionHighlightHandle = ^TSelectionHighlightHandle;
  TSelectionHighlightHandle = record
  end;

  PSpatialFogHandle = ^TSpatialFogHandle;
  TSpatialFogHandle = record
  end;

  PSceneLightsHandle = ^TSceneLightsHandle;
  TSceneLightsHandle = record
  end;

  PObjectMaterialsHandle = ^TObjectMaterialsHandle;
  TObjectMaterialsHandle = record
  end;

  PTextureCabinetHandle = ^TTextureCabinetHandle;
  TTextureCabinetHandle = record
  end;

  PShadowCasterHandle = ^TShadowCasterHandle;
  TShadowCasterHandle = record
  end;

  PShadowCastingAtlasHandle = ^TShadowCastingAtlasHandle;
  TShadowCastingAtlasHandle = record
  end;

  PSceneHandle = ^TSceneHandle;
  TSceneHandle = record
  end;

  POceanSimulationHandle = ^TOceanSimulationHandle;
  TOceanSimulationHandle = record
  end;

  PObjectModelHandle = ^TObjectModelHandle;
  TObjectModelHandle = record
  end;

  PObjectModelsHandle = ^TObjectModelsHandle;
  TObjectModelsHandle = record
  end;

  PPSceneMeshHandle = ^PSceneMeshHandle;
  PSceneMeshHandle = ^TSceneMeshHandle;
  TSceneMeshHandle = record
  end;

  PSceneMeshesHandle = ^TSceneMeshesHandle;
  TSceneMeshesHandle = record
  end;

  PObjectModelViewHandle = ^TObjectModelViewHandle;
  TObjectModelViewHandle = record
  end;

  PSceneMeshMaterialHandle = ^TSceneMeshMaterialHandle;
  TSceneMeshMaterialHandle = record
  end;

  PSceneMeshLatchesHandle = ^TSceneMeshLatchesHandle;
  TSceneMeshLatchesHandle = record
  end;

  PActorCameraHandle = ^TActorCameraHandle;
  TActorCameraHandle = record
  end;

  PTimerHandle = ^TTimerHandle;
  TTimerHandle = record
  end;

  PWidgetHandle = ^TWidgetHandle;
  TWidgetHandle = record
  end;

function LibraryGetVersion(AMajor: PLongInt; AMinor: PLongInt; 
  ABuild: PLongWord): TLibraryBool; cdecl; external AfterwarpLib;

procedure LibrarySerialCode(ASerial: PAnsiChar; ALength: LongInt); cdecl; external AfterwarpLib;

function SwapChainCreate(ADevice: PDeviceHandle; AWindowHandle: TUntypedHandle; ASize: PPoint2i; 
  AFormat: TPixelFormat; ADepthStencil: TPixelFormat; AMultisamples: LongInt; 
  AVsync: TLibraryBool): PSwapChainHandle; cdecl; external AfterwarpLib;

procedure SwapChainDestroy(ASwapChain: PSwapChainHandle); cdecl; external AfterwarpLib;

function SwapChainGetDevice(ASwapChain: PSwapChainHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function SwapChainGetWindowHandle(
  ASwapChain: PSwapChainHandle): TUntypedHandle; cdecl; external AfterwarpLib;

function SwapChainGetWidth(ASwapChain: PSwapChainHandle): LongInt; cdecl; external AfterwarpLib;

function SwapChainGetHeight(ASwapChain: PSwapChainHandle): LongInt; cdecl; external AfterwarpLib;

function SwapChainGetFormat(ASwapChain: PSwapChainHandle): TPixelFormat; cdecl; external AfterwarpLib;

function SwapChainGetDepthStencil(ASwapChain: PSwapChainHandle): TPixelFormat; cdecl; external AfterwarpLib;

function SwapChainGetMultisamples(ASwapChain: PSwapChainHandle): LongInt; cdecl; external AfterwarpLib;

function SwapChainGetVSync(ASwapChain: PSwapChainHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SwapChainResize(ASwapChain: PSwapChainHandle; 
  ASize: PPoint2i): TLibraryBool; cdecl; external AfterwarpLib;

function SwapChainBegin(ASwapChain: PSwapChainHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure SwapChainEnd(ASwapChain: PSwapChainHandle); cdecl; external AfterwarpLib;

function DeviceCreate(AApplication: PApplicationHandle; ATechnology: TDeviceTechnology; 
  AAttributes: TDeviceAttributes): PDeviceHandle; cdecl; external AfterwarpLib;

function DeviceCreateWrapped(AApplication: PApplicationHandle; ATechnology: TDeviceTechnology; 
  AAttributes: TDeviceAttributes; 
  APlatformDevice: TUntypedHandle): PDeviceHandle; cdecl; external AfterwarpLib;

procedure DeviceDestroy(ADevice: PDeviceHandle); cdecl; external AfterwarpLib;

function DeviceGetPlatformDevice(ADevice: PDeviceHandle): TUntypedHandle; cdecl; external AfterwarpLib;

function DeviceGetAttributes(ADevice: PDeviceHandle): TDeviceAttributes; cdecl; external AfterwarpLib;

function DeviceGetBehavior(ADevice: PDeviceHandle): Cardinal; cdecl; external AfterwarpLib;

function DeviceGetLegacyBits(ADevice: PDeviceHandle): TDeviceLegacyBits; cdecl; external AfterwarpLib;

function DeviceGetTechnology(ADevice: PDeviceHandle): TDeviceTechnology; cdecl; external AfterwarpLib;

function DeviceGetPlatform(ADevice: PDeviceHandle): TDevicePlatform; cdecl; external AfterwarpLib;

function DeviceGetTechVersion(ADevice: PDeviceHandle): LongWord; cdecl; external AfterwarpLib;

function DeviceGetTechFeatureVersion(ADevice: PDeviceHandle): LongWord; cdecl; external AfterwarpLib;

procedure DeviceResetCache(ADevice: PDeviceHandle); cdecl; external AfterwarpLib;

function DeviceClear(ADevice: PDeviceHandle; AClearLayers: Byte; AClearColor: PFloatColor; 
  AClearDepth: Single; AClearStencil: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function DeviceSetRenderingState(ADevice: PDeviceHandle; 
  AState: PRenderingState): TLibraryBool; cdecl; external AfterwarpLib;

procedure DeviceGetRenderingState(ADevice: PDeviceHandle; 
  AState: PRenderingState); cdecl; external AfterwarpLib;

function DeviceSetViewport(ADevice: PDeviceHandle; 
  AViewport: PIntRect): TLibraryBool; cdecl; external AfterwarpLib;

procedure DeviceGetViewport(ADevice: PDeviceHandle; AViewport: PIntRect); cdecl; external AfterwarpLib;

function DeviceSetScissor(ADevice: PDeviceHandle; 
  AScissor: PIntRect): TLibraryBool; cdecl; external AfterwarpLib;

procedure DeviceGetScissor(ADevice: PDeviceHandle; AScissor: PIntRect); cdecl; external AfterwarpLib;

procedure DeviceMemoryBarrier(ADevice: PDeviceHandle; ABarrierBits: LongWord); cdecl; external AfterwarpLib;

function BufferCreate(ADevice: PDeviceHandle; ADataType: TBufferDataType; AAccessType: TBufferAccessType; 
  ASize: LongWord; APitch: LongWord; AFormat: TPixelFormat; 
  AInitialData: Pointer): PBufferHandle; cdecl; external AfterwarpLib;

procedure BufferDestroy(ABuffer: PBufferHandle); cdecl; external AfterwarpLib;

function BufferGetDevice(ABuffer: PBufferHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function BufferGetPlatformHandle(ABuffer: PBufferHandle): TUntypedHandle; cdecl; external AfterwarpLib;

function BufferGetDataType(ABuffer: PBufferHandle): TBufferDataType; cdecl; external AfterwarpLib;

function BufferGetAccessType(ABuffer: PBufferHandle): TBufferAccessType; cdecl; external AfterwarpLib;

function BufferGetSize(ABuffer: PBufferHandle): LongWord; cdecl; external AfterwarpLib;

function BufferGetPitch(ABuffer: PBufferHandle): LongWord; cdecl; external AfterwarpLib;

function BufferGetFormat(ABuffer: PBufferHandle): TPixelFormat; cdecl; external AfterwarpLib;

function BufferUpdate(ABuffer: PBufferHandle; AData: Pointer; AOffset: LongWord; 
  ASize: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function BufferRetrieve(ABuffer: PBufferHandle; AData: Pointer; AOffset: LongWord; 
  ASize: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function BufferCopy(ABuffer: PBufferHandle; ABufferSource: PBufferHandle; AOffsetDest: LongWord; 
  AOffsetSource: LongWord; ASize: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function ProgramCreate(ADevice: PDeviceHandle; AVertexElements: PVertexElement; 
  AVertexElementCount: LongInt; AProgramElements: PProgramElement; AProgramElementCount: LongInt; 
  AProgramVariables: PProgramVariable; AProgramVariableCount: LongInt; AShaderVertex: PAnsiChar; 
  AShaderVertexLength: LongInt; AShaderHull: PAnsiChar; AShaderHullLength: LongInt; 
  AShaderDomain: PAnsiChar; AShaderDomainLength: LongInt; AShaderGeometry: PAnsiChar; 
  AShaderGeometryLength: LongInt; AShaderPixel: PAnsiChar; 
  AShaderPixelLength: LongInt): PProgramHandle; cdecl; external AfterwarpLib;

procedure ProgramDestroy(AProgram: PProgramHandle); cdecl; external AfterwarpLib;

function ProgramGetDevice(AProgram: PProgramHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function ProgramUpdateByIndex(AProgram: PProgramHandle; AVariableIndex: LongInt; AVariableData: Pointer; 
  ASize: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function ProgramUpdateByName(AProgram: PProgramHandle; AVariableName: PAnsiChar; AVariableData: Pointer; 
  ASize: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function ProgramBind(AProgram: PProgramHandle; ABuffer: PBufferHandle; AChannel: LongWord; 
  AOffset: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

procedure ProgramUnbind(AProgram: PProgramHandle; ABuffer: PBufferHandle; 
  AChannel: LongWord); cdecl; external AfterwarpLib;

procedure ProgramResetBindings(AProgram: PProgramHandle); cdecl; external AfterwarpLib;

procedure ProgramResetCache(AProgram: PProgramHandle); cdecl; external AfterwarpLib;

function ProgramCommit(AProgram: PProgramHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ProgramBegin(AProgram: PProgramHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure ProgramEnd(AProgram: PProgramHandle); cdecl; external AfterwarpLib;

function ProgramDraw(AProgram: PProgramHandle; ATopology: TPrimitiveTopology; AVertexCount: LongInt; 
  ABaseVertex: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function ProgramDrawIndexed(AProgram: PProgramHandle; ATopology: TPrimitiveTopology; AIndexCount: LongInt; 
  AFirstIndex: LongInt; ABaseVertex: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function ProgramDrawInstances(AProgram: PProgramHandle; ATopology: TPrimitiveTopology; 
  AVertexCount: LongInt; AInstanceCount: LongInt; 
  ABaseVertex: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function ProgramDrawInstancesIndexed(AProgram: PProgramHandle; ATopology: TPrimitiveTopology; 
  AIndexCount: LongInt; AInstanceCount: LongInt; AFirstIndex: LongInt; 
  ABaseVertex: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function ProgramSetPatchVertices(AProgram: PProgramHandle; 
  APatchVertices: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function ComputeProgramCreate(ADevice: PDeviceHandle; AProgramElements: PProgramElement; 
  AProgramElementCount: LongInt; AShader: PAnsiChar; 
  AShaderLength: LongInt): PComputeProgramHandle; cdecl; external AfterwarpLib;

procedure ComputeProgramDestroy(AProgram: PComputeProgramHandle); cdecl; external AfterwarpLib;

function ComputeProgramGetDevice(
  AProgram: PComputeProgramHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function ComputeProgramBindBuffer(AProgram: PComputeProgramHandle; ABuffer: PBufferHandle; 
  AChannel: LongWord; AOffset: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

procedure ComputeProgramUnbindBuffer(AProgram: PComputeProgramHandle; ABuffer: PBufferHandle; 
  AChannel: LongWord); cdecl; external AfterwarpLib;

function ComputeProgramBindTexture(AProgram: PComputeProgramHandle; ATexture: PTextureHandle; 
  ABindFormat: PComputeBindTextureFormat): TLibraryBool; cdecl; external AfterwarpLib;

procedure ComputeProgramUnbindTexture(AProgram: PComputeProgramHandle; ATexture: PTextureHandle; 
  ABindFormat: PComputeBindTextureFormat); cdecl; external AfterwarpLib;

procedure ComputeProgramResetBindings(AProgram: PComputeProgramHandle); cdecl; external AfterwarpLib;

function ComputeProgramCommit(AProgram: PComputeProgramHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ComputeProgramBegin(AProgram: PComputeProgramHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure ComputeProgramEnd(AProgram: PComputeProgramHandle); cdecl; external AfterwarpLib;

function ComputeProgramDispatch(AProgram: PComputeProgramHandle; AGroupsX: LongInt; AGroupsY: LongInt; 
  AGroupsZ: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function SamplerCreate(ADevice: PDeviceHandle; 
  ASamplerState: PSamplerState): PSamplerHandle; cdecl; external AfterwarpLib;

procedure SamplerDestroy(ASampler: PSamplerHandle); cdecl; external AfterwarpLib;

function SamplerGetDevice(ASampler: PSamplerHandle): PDeviceHandle; cdecl; external AfterwarpLib;

procedure SamplerGetState(ASampler: PSamplerHandle; 
  ASamplerState: PSamplerState); cdecl; external AfterwarpLib;

function SamplerSetState(ASampler: PSamplerHandle; 
  ASamplerState: PSamplerState): TLibraryBool; cdecl; external AfterwarpLib;

function SamplerBind(ASampler: PSamplerHandle; 
  AChannel: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

procedure SamplerUnbind(ASampler: PSamplerHandle; AChannel: LongWord); cdecl; external AfterwarpLib;

function TextureCreate(ADevice: PDeviceHandle; 
  AParameters: PTextureParameters): PTextureHandle; cdecl; external AfterwarpLib;

function TextureCreateFromFile(ADevice: PDeviceHandle; AFileName: PAnsiChar; AFormat: TPixelFormat; 
  AAttributes: TTextureAttributes): PTextureHandle; cdecl; external AfterwarpLib;

function TextureCreateFromFileParallax(ADevice: PDeviceHandle; AFileName: PAnsiChar; AFormat: TPixelFormat; 
  AAttributes: TTextureAttributes): PTextureHandle; cdecl; external AfterwarpLib;

function TextureCreateFromFileNormalsAndOcclusion(ADevice: PDeviceHandle; AFileNameNormalMap: PAnsiChar; 
  AFileNameOcclusionMap: PAnsiChar; 
  AAttributes: TTextureAttributes): PTextureHandle; cdecl; external AfterwarpLib;

function TextureCreateFromFileInMemory(ADevice: PDeviceHandle; AFileContents: Pointer; 
  AContentSize: LongWord; AExtension: PAnsiChar; AFormat: TPixelFormat; 
  AAttributes: TTextureAttributes): PTextureHandle; cdecl; external AfterwarpLib;

function TextureCreateFromSurface(ADevice: PDeviceHandle; ASurface: PSurfaceHandle; 
  AAttributes: TTextureAttributes): PTextureHandle; cdecl; external AfterwarpLib;

procedure TextureDestroy(ATexture: PTextureHandle); cdecl; external AfterwarpLib;

function TextureGetDevice(ATexture: PTextureHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function TextureGetPlatformHandle(ATexture: PTextureHandle): TUntypedHandle; cdecl; external AfterwarpLib;

procedure TextureGetParameters(ATexture: PTextureHandle; 
  AParameters: PTextureParameters); cdecl; external AfterwarpLib;

function TextureUpdate(ATexture: PTextureHandle; AContent: Pointer; APitch: LongWord; ALayer: LongInt; 
  ARect: PIntRect; AMipLevel: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function TextureRetrieve(ATexture: PTextureHandle; AContent: Pointer; APitch: LongWord; ALayer: LongInt; 
  ARect: PIntRect; AMipLevel: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function TextureCopy(ATexture: PTextureHandle; ASource: PTextureHandle; ADestLayer: LongInt; 
  ADestPos: PPoint2i; ASrcLayer: LongInt; ASourceRect: PIntRect; ADestMipLevel: LongInt; 
  ASrcMipLevel: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function TextureCopyFromSurface(ATexture: PTextureHandle; ASurface: PSurfaceHandle; ALayer: LongInt; 
  ADestPos: PPoint2i; ASourceRect: PIntRect; AMipLevel: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function TextureCopyToSurface(ATexture: PTextureHandle; ASurface: PSurfaceHandle; ALayer: LongInt; 
  ADestPos: PPoint2i; ASourceRect: PIntRect; AMipLevel: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function TextureLoadFromFile(ATexture: PTextureHandle; AFileName: PAnsiChar; ALayer: LongInt; 
  ADestPos: PPoint2i; ASourceRect: PIntRect; AMipLevel: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function TextureSaveToFile(ATexture: PTextureHandle; AFileName: PAnsiChar; AQuality: LongInt; 
  ALayer: LongInt; ASourceRect: PIntRect; AMipLevel: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function TextureClear(ATexture: PTextureHandle): TLibraryBool; cdecl; external AfterwarpLib;

function TextureClearWith(ATexture: PTextureHandle; AColor: PFloatColor; ALayer: LongInt; 
  AMipLevel: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function TextureBind(ATexture: PTextureHandle; 
  AChannel: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function TextureUnbind(ATexture: PTextureHandle; 
  AChannel: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function TextureAttach(ATexture: PTextureHandle; AAttachment: PTextureHandle; ALayer: LongInt; 
  AMipLevel: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

procedure TextureDetach(ATexture: PTextureHandle); cdecl; external AfterwarpLib;

function TextureBegin(ATexture: PTextureHandle; ALayer: LongInt; 
  AMipLevel: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function TextureEnd(ATexture: PTextureHandle): TLibraryBool; cdecl; external AfterwarpLib;

function TextureGenerateMipMaps(ATexture: PTextureHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure TextureResetCache(ATexture: PTextureHandle); cdecl; external AfterwarpLib;

function SurfaceCreate(AWidth: LongInt; AHeight: LongInt; 
  AFormat: TPixelFormat): PSurfaceHandle; cdecl; external AfterwarpLib;

function SurfaceCreateFromFile(AFileName: PAnsiChar; 
  AFormatRequest: TAlphaFormatRequest): PSurfaceHandle; cdecl; external AfterwarpLib;

function SurfaceCreateFromFileInMemory(AFileContents: Pointer; AContentSize: LongWord; 
  AExtension: PAnsiChar; AFormatRequest: TAlphaFormatRequest): PSurfaceHandle; cdecl; external AfterwarpLib;

procedure SurfaceDestroy(ASurface: PSurfaceHandle); cdecl; external AfterwarpLib;

function SurfaceGetBits(ASurface: PSurfaceHandle): Pointer; cdecl; external AfterwarpLib;

function SurfaceGetPitch(ASurface: PSurfaceHandle): LongWord; cdecl; external AfterwarpLib;

function SurfaceGetBytesPerPixel(ASurface: PSurfaceHandle): LongInt; cdecl; external AfterwarpLib;

function SurfaceGetWidth(ASurface: PSurfaceHandle): LongInt; cdecl; external AfterwarpLib;

function SurfaceGetHeight(ASurface: PSurfaceHandle): LongInt; cdecl; external AfterwarpLib;

function SurfaceGetByteSize(ASurface: PSurfaceHandle): LongWord; cdecl; external AfterwarpLib;

function SurfaceGetFormat(ASurface: PSurfaceHandle): TPixelFormat; cdecl; external AfterwarpLib;

function SurfaceGetPremultipliedAlpha(ASurface: PSurfaceHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure SurfaceSetPremultipliedAlpha(ASurface: PSurfaceHandle; 
  APremultipliedAlpha: TLibraryBool); cdecl; external AfterwarpLib;

function SurfaceGetScanline(ASurface: PSurfaceHandle; 
  AIndex: LongInt): Pointer; cdecl; external AfterwarpLib;

function SurfaceGetPixelPtr(ASurface: PSurfaceHandle; AX: LongInt; 
  AY: LongInt): Pointer; cdecl; external AfterwarpLib;

function SurfaceEmpty(ASurface: PSurfaceHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceResize(ASurface: PSurfaceHandle; AWidth: LongInt; AHeight: LongInt; 
  AFormat: TPixelFormat): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceConvertFormat(ASurface: PSurfaceHandle; 
  AFormat: TPixelFormat): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceGetPixel(ASurface: PSurfaceHandle; AX: LongInt; 
  AY: LongInt): TIntColor; cdecl; external AfterwarpLib;

procedure SurfaceSetPixel(ASurface: PSurfaceHandle; AX: LongInt; AY: LongInt; 
  AColor: TIntColor); cdecl; external AfterwarpLib;

function SurfaceGetPixelBilinear(ASurface: PSurfaceHandle; AX: Single; 
  AY: Single): TIntColor; cdecl; external AfterwarpLib;

function SurfaceCopyRect(ASurface: PSurfaceHandle; ASource: PSurfaceHandle; ASourceRect: PIntRect; 
  ADestPos: PPoint2i): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceCopyFrom(ASurface: PSurfaceHandle; 
  ASource: PSurfaceHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure SurfaceClear(ASurface: PSurfaceHandle); cdecl; external AfterwarpLib;

function SurfaceClearWith(ASurface: PSurfaceHandle; 
  AColor: TIntColor): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceResetAlpha(ASurface: PSurfaceHandle; 
  AOpaque: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceHasAlphaChannel(ASurface: PSurfaceHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SurfacePremultiplyAlpha(ASurface: PSurfaceHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceUnpremultiplyAlpha(ASurface: PSurfaceHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceMirror(ASurface: PSurfaceHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceFlip(ASurface: PSurfaceHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceInvert(ASurface: PSurfaceHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceShrinkFrom(ASurface: PSurfaceHandle; 
  ASource: PSurfaceHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceStretchRect(ASurface: PSurfaceHandle; ASource: PSurfaceHandle; ADestRect: PFloatRect; 
  ASourceRect: PFloatRect): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceStretchRectBilinear(ASurface: PSurfaceHandle; ASource: PSurfaceHandle; 
  ADestRect: PFloatRect; ASourceRect: PFloatRect): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceMakeSignedDistanceField(ASurface: PSurfaceHandle; ASource: PSurfaceHandle; ASpread: Single; 
  ADestPos: PPoint2i; ASourceRect: PIntRect): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceSaveToFile(ASurface: PSurfaceHandle; AFileName: PAnsiChar; 
  AQuality: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function SurfaceSaveToFileInMemory(ASurface: PSurfaceHandle; AFileContents: Pointer; 
  AFileContentSize: LongWord; AExtension: PAnsiChar; 
  AQuality: LongInt): LongWord; cdecl; external AfterwarpLib;

function CanvasBufferCreate: PCanvasBufferHandle; cdecl; external AfterwarpLib;

procedure CanvasBufferDestroy(ABuffer: PCanvasBufferHandle); cdecl; external AfterwarpLib;

function CanvasBufferGetVertexCount(ABuffer: PCanvasBufferHandle): LongInt; cdecl; external AfterwarpLib;

function CanvasBufferSetVertexCount(ABuffer: PCanvasBufferHandle; 
  AVertexCount: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function CanvasBufferGetIndexCount(ABuffer: PCanvasBufferHandle): LongInt; cdecl; external AfterwarpLib;

function CanvasBufferSetIndexCount(ABuffer: PCanvasBufferHandle; 
  AIndexCount: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

procedure CanvasBufferClear(ABuffer: PCanvasBufferHandle); cdecl; external AfterwarpLib;

procedure CanvasBufferClearAndShrink(ABuffer: PCanvasBufferHandle); cdecl; external AfterwarpLib;

function CanvasBufferGetVertices(ABuffer: PCanvasBufferHandle): PPoint2f; cdecl; external AfterwarpLib;

function CanvasBufferGetColors(ABuffer: PCanvasBufferHandle): PIntColor; cdecl; external AfterwarpLib;

function CanvasBufferGetIndices(ABuffer: PCanvasBufferHandle): PLongInt; cdecl; external AfterwarpLib;

procedure CanvasBufferGetExtents(ABuffer: PCanvasBufferHandle; 
  AExtents: PFloatRect); cdecl; external AfterwarpLib;

function PathBrokerCreate: PPathBrokerHandle; cdecl; external AfterwarpLib;

procedure PathBrokerDestroy(ABroker: PPathBrokerHandle); cdecl; external AfterwarpLib;

function PathBrokerFill(ABroker: PPathBrokerHandle; ABuffer: PCanvasBufferHandle; APath: PPathElement; 
  APathLength: LongInt; AColors: PColorRect; 
  AQuality: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function PathBrokerStroke(ABroker: PPathBrokerHandle; ABuffer: PCanvasBufferHandle; APath: PPathElement; 
  APathLength: LongInt; AThickness: Single; AColor: TIntColor; AJoints: TPathJoint; ACaps: TLineCaps; 
  AMiterLimit: Single; ASmoothStep: Single): TLibraryBool; cdecl; external AfterwarpLib;

procedure PathBrokerReset(ABroker: PPathBrokerHandle); cdecl; external AfterwarpLib;

function CanvasCreate(ADevice: PDeviceHandle): PCanvasHandle; cdecl; external AfterwarpLib;

procedure CanvasDestroy(ACanvas: PCanvasHandle); cdecl; external AfterwarpLib;

function CanvasGetDevice(ACanvas: PCanvasHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function CanvasBegin(ACanvas: PCanvasHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure CanvasEnd(ACanvas: PCanvasHandle); cdecl; external AfterwarpLib;

procedure CanvasPixels(ACanvas: PCanvasHandle; APositions: PPoint2f; AColors: PIntColor; 
  AElementCount: LongInt; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasLines(ACanvas: PCanvasHandle; AVertices: PPoint2f; AColors: PIntColor; AIndices: PLongInt; 
  AVertexCount: LongInt; APrimitiveCount: LongInt; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTriangles(ACanvas: PCanvasHandle; AVertices: PPoint2f; AColors: PIntColor; 
  AIndices: PLongInt; AVertexCount: LongInt; APrimitiveCount: LongInt; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTexturedTriangles(ACanvas: PCanvasHandle; ATexture: PTextureHandle; AVertices: PPoint2f; 
  ATexCoords: PPoint2f; AColors: PIntColor; AIndices: PLongInt; AVertexCount: LongInt; 
  APrimitiveCount: LongInt; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasPixel(ACanvas: PCanvasHandle; APosition: PPoint2f; AColor: TIntColor; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasLine(ACanvas: PCanvasHandle; ASrcPos: PPoint2f; ADestPos: PPoint2f; AColors: PColorPair; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasThickLine(ACanvas: PCanvasHandle; ASrcPos: PPoint2f; ADestPos: PPoint2f; 
  AColors: PColorPair; AThickness: Single; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasLineEllipse(ACanvas: PCanvasHandle; AOrigin: PPoint2f; ARadius: PPoint2f; ASteps: LongInt; 
  AColor: TIntColor; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasLineCircle(ACanvas: PCanvasHandle; AOrigin: PPoint2f; ARadius: Single; ASteps: LongInt; 
  AColor: TIntColor; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasThickLineEllipse(ACanvas: PCanvasHandle; AOrigin: PPoint2f; ARadius: PPoint2f; 
  ASteps: LongInt; AColor: TIntColor; AThickness: Single; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasThickLineCircle(ACanvas: PCanvasHandle; AOrigin: PPoint2f; ARadius: Single; ASteps: LongInt; 
  AColor: TIntColor; AThickness: Single; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasLineTriangle(ACanvas: PCanvasHandle; AVertex1: PPoint2f; AVertex2: PPoint2f; 
  AVertex3: PPoint2f; AColor1: TIntColor; AColor2: TIntColor; AColor3: TIntColor; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasThickLineTriangle(ACanvas: PCanvasHandle; AVertex1: PPoint2f; AVertex2: PPoint2f; 
  AVertex3: PPoint2f; AColor1: TIntColor; AColor2: TIntColor; AColor3: TIntColor; AThickness: Single; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasLineQuad(ACanvas: PCanvasHandle; AVertices: PQuad; AColors: PColorRect; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasThickLineQuad(ACanvas: PCanvasHandle; AVertices: PQuad; AColors: PColorRect; 
  AThickness: Single; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasLineHexagon(ACanvas: PCanvasHandle; AColor1: TIntColor; AColor2: TIntColor; 
  AColor3: TIntColor; AColor4: TIntColor; AColor5: TIntColor; AColor6: TIntColor; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasLineHexagonGrad(ACanvas: PCanvasHandle; AColors: PColorRect; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasThickLineHexagon(ACanvas: PCanvasHandle; AColor1: TIntColor; AColor2: TIntColor; 
  AColor3: TIntColor; AColor4: TIntColor; AColor5: TIntColor; AColor6: TIntColor; AThickness: Single; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasThickLineHexagonGrad(ACanvas: PCanvasHandle; AColors: PColorRect; AThickness: Single; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTriangle(ACanvas: PCanvasHandle; AVertex1: PPoint2f; AVertex2: PPoint2f; AVertex3: PPoint2f; 
  AColor1: TIntColor; AColor2: TIntColor; AColor3: TIntColor; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasQuad(ACanvas: PCanvasHandle; AVertices: PQuad; AColors: PColorRect; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasFillRect(ACanvas: PCanvasHandle; ARect: PFloatRect; AColors: PColorRect; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasFrameRect(ACanvas: PCanvasHandle; ARect: PFloatRect; AColors: PColorRect; 
  AThickness: Single; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasFillRoundRect(ACanvas: PCanvasHandle; ARect: PFloatRect; AColors: PColorRect; 
  ARadius: Single; ASteps: LongInt; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasFrameRoundRect(ACanvas: PCanvasHandle; ARect: PFloatRect; AColors: PColorRect; 
  ARadius: Single; AThickness: Single; ASteps: LongInt; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasFillRoundRectTop(ACanvas: PCanvasHandle; ARect: PFloatRect; AColors: PColorRect; 
  ARadius: Single; ASteps: LongInt; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasFillRoundRectBottom(ACanvas: PCanvasHandle; ARect: PFloatRect; AColors: PColorRect; 
  ARadius: Single; ASteps: LongInt; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasFillRoundRectTopInverse(ACanvas: PCanvasHandle; ARect: PFloatRect; AColors: PColorRect; 
  ARadius: Single; ASteps: LongInt; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasHighlight(ACanvas: PCanvasHandle; ARect: PFloatRect; ACornerRadius: Single; ALuma: Single; 
  ADistance: Single; ASteps: LongInt); cdecl; external AfterwarpLib;

procedure CanvasHexagon(ACanvas: PCanvasHandle; AColor1: TIntColor; AColor2: TIntColor; AColor3: TIntColor; 
  AColor4: TIntColor; AColor5: TIntColor; AColor6: TIntColor; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasHexagonGrad(ACanvas: PCanvasHandle; AColors: PColorRect; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasArc(ACanvas: PCanvasHandle; AOrigin: PPoint2f; ARadius: PPoint2f; AInitAngle: Single; 
  AEndAngle: Single; ASteps: LongInt; AColorInside: TIntColor; AColorOutside: TIntColor; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasArcGrad(ACanvas: PCanvasHandle; AOrigin: PPoint2f; ARadius: PPoint2f; AInitAngle: Single; 
  AEndAngle: Single; ASteps: LongInt; AColors: PColorRect; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasEllipse(ACanvas: PCanvasHandle; AOrigin: PPoint2f; ARadius: PPoint2f; ASteps: LongInt; 
  AColors: PColorRect; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasRibbonGrad(ACanvas: PCanvasHandle; AOrigin: PPoint2f; AInsideRadius: PPoint2f; 
  AOutsideRadius: PPoint2f; ASteps: LongInt; AColors: PColorRect; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasRibbonTri(ACanvas: PCanvasHandle; AOrigin: PPoint2f; AInsideRadius: PPoint2f; 
  AOutsideRadius: PPoint2f; ASteps: LongInt; AColor1: PColorPair; AColor2: PColorPair; AColor3: PColorPair; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasRibbon(ACanvas: PCanvasHandle; AOrigin: PPoint2f; AInsideRadius: PPoint2f; 
  AOutsideRadius: PPoint2f; ASteps: LongInt; AColor: TIntColor; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTapeGrad(ACanvas: PCanvasHandle; AOrigin: PPoint2f; AInsideRadius: PPoint2f; 
  AOutsideRadius: PPoint2f; AInitAngle: Single; AEndAngle: Single; ASteps: LongInt; AColors: PColorRect; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTapeTri(ACanvas: PCanvasHandle; AOrigin: PPoint2f; AInsideRadius: PPoint2f; 
  AOutsideRadius: PPoint2f; AInitAngle: Single; AEndAngle: Single; ASteps: LongInt; AColor1: PColorPair; 
  AColor2: PColorPair; AColor3: PColorPair; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTape(ACanvas: PCanvasHandle; AOrigin: PPoint2f; AInsideRadius: PPoint2f; 
  AOutsideRadius: PPoint2f; AInitAngle: Single; AEndAngle: Single; ASteps: LongInt; AColor: TIntColor; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasRectWithHole(ACanvas: PCanvasHandle; ARect: PFloatRect; AHoleOrigin: PPoint2f; 
  AHoleRadius: PPoint2f; AColors: PColorPair; ASteps: LongInt; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasDrawBuffer(ACanvas: PCanvasHandle; ABuffer: PCanvasBufferHandle; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTexturedTriangle(ACanvas: PCanvasHandle; ATexture: PTextureHandle; AVertex1: PPoint2f; 
  AVertex2: PPoint2f; AVertex3: PPoint2f; ATexCoord1: PPoint2f; ATexCoord2: PPoint2f; ATexCoord3: PPoint2f; 
  AColor1: TIntColor; AColor2: TIntColor; AColor3: TIntColor; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTexturedTriangleRegion(ACanvas: PCanvasHandle; ATexture: PTextureHandle; AVertex1: PPoint2f; 
  AVertex2: PPoint2f; AVertex3: PPoint2f; ATexCoord1: PPoint2f; ATexCoord2: PPoint2f; ATexCoord3: PPoint2f; 
  AColor1: TIntColor; AColor2: TIntColor; AColor3: TIntColor; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTexturedQuad(ACanvas: PCanvasHandle; ATexture: PTextureHandle; AVertices: PQuad; 
  ATexCoords: PQuad; AColors: PColorRect; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTexturedQuadRegion(ACanvas: PCanvasHandle; ATexture: PTextureHandle; AVertices: PQuad; 
  ATexCoords: PQuad; AColors: PColorRect; AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTexturedRoundRect(ACanvas: PCanvasHandle; ATexture: PTextureHandle; ARect: PFloatRect; 
  ATexCoords: PQuad; AColors: PColorRect; ARadius: Single; ASteps: LongInt; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasTexturedRoundRectRegion(ACanvas: PCanvasHandle; ATexture: PTextureHandle; ARect: PFloatRect; 
  ATexCoords: PQuad; AColors: PColorRect; ARadius: Single; ASteps: LongInt; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasQuadImage(ACanvas: PCanvasHandle; AImageAtlas: PImageAtlasHandle; AVertices: PQuad; 
  ARegionIndex: LongInt; AColors: PColorRect; ASourceRect: PFloatRect; AModifiers: LongWord; 
  AEffect: TBlendingEffect); cdecl; external AfterwarpLib;

procedure CanvasSetWorld(ACanvas: PCanvasHandle; AWorld: PMatrix4f); cdecl; external AfterwarpLib;

procedure CanvasGetWorld(ACanvas: PCanvasHandle; AWorld: PMatrix4f); cdecl; external AfterwarpLib;

procedure CanvasSetViewProjection(ACanvas: PCanvasHandle; 
  AViewProjection: PMatrix4f); cdecl; external AfterwarpLib;

procedure CanvasGetViewProjection(ACanvas: PCanvasHandle; 
  AViewProjection: PMatrix4f); cdecl; external AfterwarpLib;

procedure CanvasSetTransform(ACanvas: PCanvasHandle; ATransform: PMatrix3x2f); cdecl; external AfterwarpLib;

procedure CanvasGetTransform(ACanvas: PCanvasHandle; ATransform: PMatrix3x2f); cdecl; external AfterwarpLib;

procedure CanvasSetSignedDistanceField(ACanvas: PCanvasHandle; 
  ASignedDistanceField: PSignedDistanceField); cdecl; external AfterwarpLib;

procedure CanvasGetSignedDistanceField(ACanvas: PCanvasHandle; 
  ASignedDistanceField: PSignedDistanceField); cdecl; external AfterwarpLib;

function CanvasGetContextState(ACanvas: PCanvasHandle): TCanvasContextState; cdecl; external AfterwarpLib;

function CanvasSetContextState(ACanvas: PCanvasHandle; 
  AContextState: TCanvasContextState): TLibraryBool; cdecl; external AfterwarpLib;

function CanvasSetSamplerState(ACanvas: PCanvasHandle; 
  ASamplerState: PCanvasSamplerState): TLibraryBool; cdecl; external AfterwarpLib;

function CanvasGetSamplerState(ACanvas: PCanvasHandle; 
  ASamplerState: PCanvasSamplerState): TLibraryBool; cdecl; external AfterwarpLib;

procedure CanvasResetSamplerState(ACanvas: PCanvasHandle); cdecl; external AfterwarpLib;

procedure CanvasSetAttributes(ACanvas: PCanvasHandle; AAttributes: LongWord); cdecl; external AfterwarpLib;

function CanvasGetAttributes(ACanvas: PCanvasHandle): LongWord; cdecl; external AfterwarpLib;

procedure CanvasFlush(ACanvas: PCanvasHandle); cdecl; external AfterwarpLib;

procedure CanvasReset(ACanvas: PCanvasHandle); cdecl; external AfterwarpLib;

function CanvasGetBatchCount(ACanvas: PCanvasHandle): LongInt; cdecl; external AfterwarpLib;

procedure CanvasGetClipRect(ACanvas: PCanvasHandle; AClipRect: PIntRect); cdecl; external AfterwarpLib;

function CanvasSetClipRect(ACanvas: PCanvasHandle; 
  ARect: PIntRect): TLibraryBool; cdecl; external AfterwarpLib;

function ImageAtlasCreate(ADevice: PDeviceHandle): PImageAtlasHandle; cdecl; external AfterwarpLib;

procedure ImageAtlasDestroy(AAtlas: PImageAtlasHandle); cdecl; external AfterwarpLib;

function ImageAtlasGetDevice(AAtlas: PImageAtlasHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function ImageAtlasTextureCount(AAtlas: PImageAtlasHandle): LongInt; cdecl; external AfterwarpLib;

function ImageAtlasTexture(AAtlas: PImageAtlasHandle; 
  ATextureIndex: LongInt): PTextureHandle; cdecl; external AfterwarpLib;

function ImageAtlasRegionCount(AAtlas: PImageAtlasHandle): LongInt; cdecl; external AfterwarpLib;

function ImageAtlasRegion(AAtlas: PImageAtlasHandle; ARegionIndex: LongInt; 
  ARegion: PImageRegion): TLibraryBool; cdecl; external AfterwarpLib;

function ImageAtlasCreateRegion(AAtlas: PImageAtlasHandle; ARect: PIntRect; 
  ATextureIndex: LongInt): LongInt; cdecl; external AfterwarpLib;

procedure ImageAtlasRemoveRegion(AAtlas: PImageAtlasHandle; 
  ARegionIndex: LongInt); cdecl; external AfterwarpLib;

procedure ImageAtlasClearRegions(AAtlas: PImageAtlasHandle); cdecl; external AfterwarpLib;

procedure ImageAtlasMakeRegions(AAtlas: PImageAtlasHandle; APatternSize: PPoint2i; AVisibleSize: PPoint2i; 
  APatternCount: LongInt); cdecl; external AfterwarpLib;

procedure ImageAtlasClearTextures(AAtlas: PImageAtlasHandle); cdecl; external AfterwarpLib;

procedure ImageAtlasRemoveTexture(AAtlas: PImageAtlasHandle; 
  ATextureIndex: LongInt); cdecl; external AfterwarpLib;

function ImageAtlasCreateTexture(AAtlas: PImageAtlasHandle; ASize: PPoint2i; AFormat: TPixelFormat; 
  AAttributes: TTextureAttributes): LongInt; cdecl; external AfterwarpLib;

function ImageAtlasPackRegion(AAtlas: PImageAtlasHandle; ASize: PPoint2i; 
  APadding: LongInt): LongInt; cdecl; external AfterwarpLib;

function ImageAtlasPackSurface(AAtlas: PImageAtlasHandle; ASurface: PSurfaceHandle; ASourceRect: PIntRect; 
  APadding: LongInt): LongInt; cdecl; external AfterwarpLib;

function TextRendererCreate(ACanvas: PCanvasHandle; ATextureSize: PPoint2i; APixelFormat: TPixelFormat; 
  AMipMapping: TLibraryBool): PTextRendererHandle; cdecl; external AfterwarpLib;

procedure TextRendererDestroy(ATextRenderer: PTextRendererHandle); cdecl; external AfterwarpLib;

function TextRendererGetCanvas(
  ATextRenderer: PTextRendererHandle): PCanvasHandle; cdecl; external AfterwarpLib;

function TextRendererSetFontParameters(ATextRenderer: PTextRendererHandle; 
  AParameters: PFontParameters): TLibraryBool; cdecl; external AfterwarpLib;

function TextRendererGetFontParameters(ATextRenderer: PTextRendererHandle; 
  AParameters: PFontParameters): TLibraryBool; cdecl; external AfterwarpLib;

procedure TextRendererExtent(ATextRenderer: PTextRendererHandle; AText: PAnsiChar; ADimensions: PPoint2f; 
  AModifiers: PTextRenderModifiers); cdecl; external AfterwarpLib;

procedure TextRendererExtentByPixels(ATextRenderer: PTextRendererHandle; AText: PAnsiChar; 
  ARect: PFloatRect; AModifiers: PTextRenderModifiers); cdecl; external AfterwarpLib;

function TextRendererRects(ATextRenderer: PTextRendererHandle; AExtent: PPoint2f; ARects: PTextEntryRect; 
  AText: PAnsiChar; AModifiers: PTextRenderModifiers): LongInt; cdecl; external AfterwarpLib;

procedure TextRendererDraw(ATextRenderer: PTextRendererHandle; APosition: PPoint2f; AText: PAnsiChar; 
  AColors: PColorPair; AAlpha: Single; AModifiers: PTextRenderModifiers); cdecl; external AfterwarpLib;

procedure TextRendererDrawAligned(ATextRenderer: PTextRendererHandle; APosition: PPoint2f; AText: PAnsiChar; 
  AColors: PColorPair; AHorizAlign: TTextAlignment; AVertAlign: TTextAlignment; AAlpha: Single; 
  AAlignToPixels: TLibraryBool; AModifiers: PTextRenderModifiers); cdecl; external AfterwarpLib;

procedure TextRendererDrawCentered(ATextRenderer: PTextRendererHandle; APosition: PPoint2f; 
  AText: PAnsiChar; AColors: PColorPair; AAlpha: Single; AAlignToPixels: TLibraryBool; 
  AModifiers: PTextRenderModifiers); cdecl; external AfterwarpLib;

procedure TextRendererDrawAlignedByPixels(ATextRenderer: PTextRendererHandle; APosition: PPoint2f; 
  AText: PAnsiChar; AColors: PColorPair; AHorizAlign: TTextAlignment; AVertAlign: TTextAlignment; 
  AAlpha: Single; AAlignToPixels: TLibraryBool; 
  AModifiers: PTextRenderModifiers); cdecl; external AfterwarpLib;

procedure TextRendererDrawCenteredByPixels(ATextRenderer: PTextRendererHandle; APosition: PPoint2f; 
  AText: PAnsiChar; AColors: PColorPair; AAlpha: Single; AAlignToPixels: TLibraryBool; 
  AModifiers: PTextRenderModifiers); cdecl; external AfterwarpLib;

function TextModellerCreate(ADevice: PDeviceHandle): PTextModellerHandle; cdecl; external AfterwarpLib;

procedure TextModellerDestroy(ATextModeller: PTextModellerHandle); cdecl; external AfterwarpLib;

function TextModellerGetDevice(
  ATextModeller: PTextModellerHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function TextModellerSetFontParameters(ATextModeller: PTextModellerHandle; 
  AParameters: PFontParameters): TUntypedHandle; cdecl; external AfterwarpLib;

function TextModellerGetFontProvider(
  ATextModeller: PTextModellerHandle): TUntypedHandle; cdecl; external AfterwarpLib;

procedure TextModellerSetFontProvider(ATextModeller: PTextModellerHandle; 
  AProvider: TUntypedHandle); cdecl; external AfterwarpLib;

procedure TextModellerExtent(ATextModeller: PTextModellerHandle; AText: PAnsiChar; AExtent: PPoint2f; 
  AModifiers: PTextRenderModifiers); cdecl; external AfterwarpLib;

procedure TextModellerExtentByShape(ATextModeller: PTextModellerHandle; AText: PAnsiChar; ARect: PFloatRect; 
  AModifiers: PTextRenderModifiers); cdecl; external AfterwarpLib;

function TextModellerRects(ATextModeller: PTextModellerHandle; AExtent: PPoint2f; ARects: PTextEntryRect; 
  AText: PAnsiChar; AModifiers: PTextRenderModifiers): LongInt; cdecl; external AfterwarpLib;

function TextModellerDrawToCanvas(ATextModeller: PTextModellerHandle; ACanvas: PCanvasHandle; 
  APosition: PPoint2f; AText: PAnsiChar; AColors: PColorPair; AAlignHoriz: TTextAlignment; 
  AAlignVert: TTextAlignment; AAlignByShape: TLibraryBool; AModifiers: PTextRenderModifiers; 
  AEffect: TBlendingEffect): TLibraryBool; cdecl; external AfterwarpLib;

function TextModellerDrawToCanvasBuffer(ATextModeller: PTextModellerHandle; ABuffer: PCanvasBufferHandle; 
  APosition: PPoint2f; AText: PAnsiChar; AColors: PColorPair; AAlignHoriz: TTextAlignment; 
  AAlignVert: TTextAlignment; AAlignByShape: TLibraryBool; 
  AModifiers: PTextRenderModifiers): TLibraryBool; cdecl; external AfterwarpLib;

function TextModellerDrawCurvedToCanvas(ATextModeller: PTextModellerHandle; ACanvas: PCanvasHandle; 
  APosition: PPoint2f; AText: PAnsiChar; ARadius: Single; AAngle: Single; AColors: PColorPair; 
  AModifiers: PTextRenderModifiers; AEffect: TBlendingEffect): TLibraryBool; cdecl; external AfterwarpLib;

function TextModellerDrawCurvedToCanvasBuffer(ATextModeller: PTextModellerHandle; 
  ABuffer: PCanvasBufferHandle; APosition: PPoint2f; AText: PAnsiChar; ARadius: Single; AAngle: Single; 
  AColors: PColorPair; AModifiers: PTextRenderModifiers): TLibraryBool; cdecl; external AfterwarpLib;

function TextModellerDraw(ATextModeller: PTextModellerHandle; APosition: PVector3f; AText: PAnsiChar; 
  ADepth: Single; AColors: PColorPair; AAlignHoriz: TTextAlignment; AAlignVert: TTextAlignment; 
  AAlignDepth: TTextAlignment; AAlignByShape: TLibraryBool; 
  AModifiers: PTextRenderModifiers): TLibraryBool; cdecl; external AfterwarpLib;

function TextModellerDrawCurved(ATextModeller: PTextModellerHandle; APosition: PVector3f; AText: PAnsiChar; 
  ARadius: Single; AAngle: Single; ADepth: Single; AColors: PColorPair; AAlignDepth: TTextAlignment; 
  AModifiers: PTextRenderModifiers): TLibraryBool; cdecl; external AfterwarpLib;

function TextModellerDrawDepthCurved(ATextModeller: PTextModellerHandle; APosition: PVector3f; 
  AText: PAnsiChar; ARadius: Single; AAngle: Single; ADepth: Single; AColors: PColorPair; 
  AModifiers: PTextRenderModifiers): TLibraryBool; cdecl; external AfterwarpLib;

procedure TextModellerClear(ATextModeller: PTextModellerHandle); cdecl; external AfterwarpLib;

function TextModellerPrepare(ATextModeller: PTextModellerHandle): TLibraryBool; cdecl; external AfterwarpLib;

function TextModellerRender(ATextModeller: PTextModellerHandle; AProgram: PProgramHandle; 
  AChannel: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function TextModellerCopyToMeshBuffer(ATextModeller: PTextModellerHandle; 
  AMeshBuffer: PMeshBufferHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure TextModellerReset(ATextModeller: PTextModellerHandle); cdecl; external AfterwarpLib;

procedure TextModellerGetTransform(ATextModeller: PTextModellerHandle; 
  ATransform: PMatrix4f); cdecl; external AfterwarpLib;

procedure TextModellerSetTransform(ATextModeller: PTextModellerHandle; 
  ATransform: PMatrix4f); cdecl; external AfterwarpLib;

function GrapherCreate(ADevice: PDeviceHandle): PGrapherHandle; cdecl; external AfterwarpLib;

procedure GrapherDestroy(AGrapher: PGrapherHandle); cdecl; external AfterwarpLib;

function GrapherGetDevice(AGrapher: PGrapherHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function GrapherBegin(AGrapher: PGrapherHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure GrapherEnd(AGrapher: PGrapherHandle); cdecl; external AfterwarpLib;

procedure GrapherPoints(AGrapher: PGrapherHandle; AVertices: PVector4f; AColors: PIntColor; 
  AAngles: PSingle; AElementCount: LongInt; AShape: TPointShape); cdecl; external AfterwarpLib;

procedure GrapherLines(AGrapher: PGrapherHandle; AVertices: PVector4f; AColors: PIntColor; 
  AIndices: PLongInt; AVertexCount: LongInt; AIndexCount: LongInt; 
  ACaps: TLineCaps); cdecl; external AfterwarpLib;

procedure GrapherPoint(AGrapher: PGrapherHandle; APosition: PVector3f; AColor: TIntColor; ASize: Single; 
  AShape: TPointShape; AAngle: Single); cdecl; external AfterwarpLib;

procedure GrapherLine(AGrapher: PGrapherHandle; APosition1: PVector3f; APosition2: PVector3f; 
  AColor1: TIntColor; AColor2: TIntColor; AThickness1: Single; AThickness2: Single; 
  ACaps: TLineCaps); cdecl; external AfterwarpLib;

procedure GrapherArrow(AGrapher: PGrapherHandle; ATargetSize: PPoint2f; AOrigin: PVector3f; 
  ADestination: PVector3f; AColor: TIntColor; AThickness: Single; ASize: Single; 
  ACaps: TLineCaps); cdecl; external AfterwarpLib;

procedure GrapherBoundingBox(AGrapher: PGrapherHandle; AVolume: PMatrix4f; AColor: TIntColor; 
  AThickness: Single; ALength: Single; ACaps: TLineCaps); cdecl; external AfterwarpLib;

procedure GrapherDottedLine(AGrapher: PGrapherHandle; APosition1: PVector3f; APosition2: PVector3f; 
  AColor1: TIntColor; AColor2: TIntColor; AThickness1: Single; AThickness2: Single; ASparsity: Single; 
  AShape: TPointShape; AAngle: Single); cdecl; external AfterwarpLib;

procedure GrapherFlush(AGrapher: PGrapherHandle); cdecl; external AfterwarpLib;

procedure GrapherReset(AGrapher: PGrapherHandle); cdecl; external AfterwarpLib;

procedure GrapherGetTransform(AGrapher: PGrapherHandle; ATransform: PMatrix4f); cdecl; external AfterwarpLib;

procedure GrapherSetTransform(AGrapher: PGrapherHandle; ATransform: PMatrix4f); cdecl; external AfterwarpLib;

function GrapherGetBatchCount(AGrapher: PGrapherHandle): LongInt; cdecl; external AfterwarpLib;

function MeshModelCreate(ADevice: PDeviceHandle; AVertexCount: LongInt; AVertexElementPitch: LongWord; 
  AIndexCount: LongInt; AChannel: LongWord; AInitialVertexData: Pointer; 
  AInitialIndexData: Pointer): PMeshModelHandle; cdecl; external AfterwarpLib;

procedure MeshModelDestroy(AMeshModel: PMeshModelHandle); cdecl; external AfterwarpLib;

function MeshModelRenderable(AMeshModel: PMeshModelHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure MeshModelDismantle(AMeshModel: PMeshModelHandle); cdecl; external AfterwarpLib;

procedure MeshModelTakeAway(AMeshModel: PMeshModelHandle; 
  AMeshModelAnother: PMeshModelHandle); cdecl; external AfterwarpLib;

function MeshModelGetVertexCount(AMeshModel: PMeshModelHandle): LongInt; cdecl; external AfterwarpLib;

function MeshModelGetIndexCount(AMeshModel: PMeshModelHandle): LongInt; cdecl; external AfterwarpLib;

function MeshModelGetChannel(AMeshModel: PMeshModelHandle): LongWord; cdecl; external AfterwarpLib;

function MeshModelGetVertexBuffer(AMeshModel: PMeshModelHandle): PBufferHandle; cdecl; external AfterwarpLib;

function MeshModelGetIndexBuffer(AMeshModel: PMeshModelHandle): PBufferHandle; cdecl; external AfterwarpLib;

function MeshModelDraw(AMeshModel: PMeshModelHandle; AProgram: PProgramHandle; 
  ATopology: TPrimitiveTopology; AElementCount: LongInt; AFirstIndex: LongInt; ABaseVertex: LongInt; 
  APostUnbind: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshModelDrawInstances(AMeshModel: PMeshModelHandle; AProgram: PProgramHandle; 
  AInstanceCount: LongInt; ATopology: TPrimitiveTopology; AElementCount: LongInt; AFirstIndex: LongInt; 
  ABaseVertex: LongInt; APostUnbind: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshMetaTagGetParent(ATag: PMeshMetaTagHandle): PMeshMetaTagsHandle; cdecl; external AfterwarpLib;

procedure MeshMetaTagGetName(ATag: PMeshMetaTagHandle; AName: PAnsiChar; 
  ANameLength: PLongInt); cdecl; external AfterwarpLib;

function MeshMetaTagGetType(ATag: PMeshMetaTagHandle): Byte; cdecl; external AfterwarpLib;

procedure MeshMetaTagGetBounds(ATag: PMeshMetaTagHandle; ABoundsMin: PVector3f; 
  ABoundsMax: PVector3f); cdecl; external AfterwarpLib;

function MeshMetaTagGetPortionCount(ATag: PMeshMetaTagHandle): LongInt; cdecl; external AfterwarpLib;

function MeshMetaTagPortionGet(ATag: PMeshMetaTagHandle; APortion: PMeshMetaTagPortion; 
  AIndex: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function MeshMetaTagPortionAdd(ATag: PMeshMetaTagHandle; 
  APortion: PMeshMetaTagPortion): TLibraryBool; cdecl; external AfterwarpLib;

procedure MeshMetaTagPortionErase(ATag: PMeshMetaTagHandle; AIndex: LongInt); cdecl; external AfterwarpLib;

procedure MeshMetaTagPortionsClear(ATag: PMeshMetaTagHandle); cdecl; external AfterwarpLib;

function MeshMetaTagPortionsCopy(ATag: PMeshMetaTagHandle; 
  ASource: PMeshMetaTagHandle): TLibraryBool; cdecl; external AfterwarpLib;

function MeshMetaTagsCreate: PMeshMetaTagsHandle; cdecl; external AfterwarpLib;

procedure MeshMetaTagsDestroy(ATags: PMeshMetaTagsHandle); cdecl; external AfterwarpLib;

function MeshMetaTagsCount(ATags: PMeshMetaTagsHandle): LongInt; cdecl; external AfterwarpLib;

function MeshMetaTagsGetByIndex(ATags: PMeshMetaTagsHandle; 
  AIndex: LongInt): PMeshMetaTagHandle; cdecl; external AfterwarpLib;

function MeshMetaTagsGetByName(ATags: PMeshMetaTagsHandle; AName: PAnsiChar; 
  AType: Byte): PMeshMetaTagHandle; cdecl; external AfterwarpLib;

function MeshMetaTagsAdd(ATags: PMeshMetaTagsHandle; AName: PAnsiChar; 
  AType: Byte): PMeshMetaTagHandle; cdecl; external AfterwarpLib;

procedure MeshMetaTagsErase(ATags: PMeshMetaTagsHandle; AIndex: LongInt); cdecl; external AfterwarpLib;

procedure MeshMetaTagsClear(ATags: PMeshMetaTagsHandle); cdecl; external AfterwarpLib;

function MeshMetaTagsCopy(ATags: PMeshMetaTagsHandle; 
  ATagsAnother: PMeshMetaTagsHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure MeshMetaTagsTakeAway(ATags: PMeshMetaTagsHandle; 
  ATagsAnother: PMeshMetaTagsHandle); cdecl; external AfterwarpLib;

function MeshBufferCreate: PMeshBufferHandle; cdecl; external AfterwarpLib;

procedure MeshBufferDestroy(AMeshBuffer: PMeshBufferHandle); cdecl; external AfterwarpLib;

function MeshBufferGetVertices(
  AMeshBuffer: PMeshBufferHandle): PMeshBufferEntry; cdecl; external AfterwarpLib;

function MeshBufferGetVertexCount(AMeshBuffer: PMeshBufferHandle): LongInt; cdecl; external AfterwarpLib;

function MeshBufferSetVertexCount(AMeshBuffer: PMeshBufferHandle; 
  AVertexCount: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferGetIndices(AMeshBuffer: PMeshBufferHandle): PLongInt; cdecl; external AfterwarpLib;

function MeshBufferGetIndexCount(AMeshBuffer: PMeshBufferHandle): LongInt; cdecl; external AfterwarpLib;

function MeshBufferSetIndexCount(AMeshBuffer: PMeshBufferHandle; 
  AIndexCount: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferCreateModel(AMeshBuffer: PMeshBufferHandle; ADevice: PDeviceHandle; 
  AVertexElements: PVertexElement; AVertexElementCount: LongInt; AFirstVertex: LongInt; 
  AVertexCount: LongInt; AFirstIndex: LongInt; AIndexCount: LongInt; 
  AChannel: LongWord): PMeshModelHandle; cdecl; external AfterwarpLib;

function MeshBufferSuperEllipse(AMeshBuffer: PMeshBufferHandle; ALongitudeSections: LongInt; 
  ALatitudeSections: LongInt; AOrigin: PVector3f; ARadius: PVector3f; AInitLongitudeAngle: Single; 
  AEndLongitudeAngle: Single; ALongitudeShape: Single; AInitLatitudeAngle: Single; 
  AEndLatitudeAngle: Single; ALatitudeShape: Single; AInitTexCoord: PPoint2f; AEndTexCoord: PPoint2f; 
  AColor: PFloatColor; AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferGeosphere(AMeshBuffer: PMeshBufferHandle; ASubdivisions: LongInt; AColor: PFloatColor; 
  AFlatNormals: TLibraryBool; AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferCylinder(AMeshBuffer: PMeshBufferHandle; ARadialSections: LongInt; 
  AHeightSections: LongInt; AOrigin: PVector3f; AHorizAxis: PVector3f; AVertAxis: PVector3f; 
  AHeightAxis: PVector3f; AInitAngle: Single; AEndAngle: Single; AShape: Single; AInitTexCoord: PPoint2f; 
  AEndTexCoord: PPoint2f; ABendAngle: Single; ALateralAngle: Single; AColor: PFloatColor; 
  AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferConeSimple(AMeshBuffer: PMeshBufferHandle; ASections: LongInt; AOrigin: PVector3f; 
  ARadius: Single; AHeight: Single; AColor: PFloatColor; 
  AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferDisc(AMeshBuffer: PMeshBufferHandle; ARadialSections: LongInt; AInnerSections: LongInt; 
  AOrigin: PVector3f; AHorizAxis: PVector3f; AVertAxis: PVector3f; ANormal: PVector3f; AInitAngle: Single; 
  AEndAngle: Single; AShape: Single; AInitRadius: Single; AInitTexCoord: PPoint2f; AEndTexCoord: PPoint2f; 
  ALateralAngle: Single; AColor: PFloatColor; 
  AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferPlane(AMeshBuffer: PMeshBufferHandle; AHorizSections: LongInt; AVertSections: LongInt; 
  AOrigin: PVector3f; AHorizAxis: PVector3f; AVertAxis: PVector3f; ANormal: PVector3f; 
  AInitTexCoord: PPoint2f; AEndTexCoord: PPoint2f; AColor: PFloatColor; 
  AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferCube(AMeshBuffer: PMeshBufferHandle; AHorizSections: LongInt; AVertSections: LongInt; 
  ADepthSections: LongInt; AOrigin: PVector3f; AHorizAxis: PVector3f; AVertAxis: PVector3f; 
  ADepthAxis: PVector3f; AInitTexCoord: PPoint2f; AEndTexCoord: PPoint2f; AColor: PFloatColor; 
  AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferCubeMinimal(AMeshBuffer: PMeshBufferHandle; AOrigin: PVector3f; ASize: PVector3f; 
  AColor: PFloatColor; AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferCubeRound(AMeshBuffer: PMeshBufferHandle; AOrigin: PVector3f; ASize: PVector3f; 
  ARoundness: Single; AColor: PFloatColor; 
  AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferTorus(AMeshBuffer: PMeshBufferHandle; AOuterSections: LongInt; AInnerSections: LongInt; 
  AOrigin: PVector3f; AHorizAxis: PVector3f; AVertAxis: PVector3f; AInitOuterAngle: Single; 
  AEndOuterAngle: Single; AOuterShape: Single; AInitInnerAngle: Single; AEndInnerAngle: Single; 
  AInnerShape: Single; AInnerRadius: PPoint2f; AInitTexCoord: PPoint2f; AEndTexCoord: PPoint2f; 
  ALateralAngle: Single; AColor: PFloatColor; 
  AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferTorusKnot(AMeshBuffer: PMeshBufferHandle; AOuterSections: LongInt; 
  AInnerSections: LongInt; AOrigin: PVector3f; AP: LongInt; AQ: LongInt; AInitOuterAngle: Single; 
  AEndOuterAngle: Single; AOuterRadius: Single; AInitInnerAngle: Single; AEndInnerAngle: Single; 
  AInnerShape: Single; AInnerRadius: PPoint2f; AInitTexCoord: PPoint2f; AEndTexCoord: PPoint2f; 
  ALateralAngle: Single; AColor: PFloatColor; 
  AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferSupertoroid(AMeshBuffer: PMeshBufferHandle; AOuterSections: LongInt; 
  AInnerSections: LongInt; AOrigin: PVector3f; AInitOuterAngle: Single; AEndOuterAngle: Single; 
  AOuterRadius: Single; AOuterShape: Single; AInitInnerAngle: Single; AEndInnerAngle: Single; 
  AInnerRadius: Single; AInnerShape: Single; AInitTexCoord: PPoint2f; AEndTexCoord: PPoint2f; 
  AColor: PFloatColor; AIndicesClockwise: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferFrustumVolume(AMeshBuffer: PMeshBufferHandle; AViewProjectionInverse: PMatrix4f; 
  ADepthClipNegative: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferExtrusion(AMeshBuffer: PMeshBufferHandle; APath: PPathElement; APathLength: LongInt; 
  ADepth: Single; ATexCoords: PPoint2f; AColors: PFloatColor; 
  AQuality: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

procedure MeshBufferTransformVertices(AMeshBuffer: PMeshBufferHandle; AFirstVertex: LongInt; 
  AVertexCount: LongInt); cdecl; external AfterwarpLib;

function MeshBufferCalculateFlatNormals(AMeshBuffer: PMeshBufferHandle; 
  AEpsilon: Single): TLibraryBool; cdecl; external AfterwarpLib;

procedure MeshBufferCalculateNormals(AMeshBuffer: PMeshBufferHandle; AFirstVertex: LongInt; 
  AVertexCount: LongInt; AFirstIndex: LongInt; AIndexCount: LongInt); cdecl; external AfterwarpLib;

procedure MeshBufferCalculateNormalsWeld(AMeshBuffer: PMeshBufferHandle; AFirstVertex: LongInt; 
  AVertexCount: LongInt; AFirstIndex: LongInt; AIndexCount: LongInt; 
  AWeldEpsilon: Single); cdecl; external AfterwarpLib;

procedure MeshBufferInvertNormals(AMeshBuffer: PMeshBufferHandle; AFirstVertex: LongInt; 
  AVertexCount: LongInt); cdecl; external AfterwarpLib;

procedure MeshBufferInvertIndexOrder(AMeshBuffer: PMeshBufferHandle; AFirstIndex: LongInt; 
  AIndexCount: LongInt); cdecl; external AfterwarpLib;

procedure MeshBufferCalculateBounds(AMeshBuffer: PMeshBufferHandle; AVertexMin: PVector3f; 
  AVertexMax: PVector3f; AFirstVertex: LongInt; AVertexCount: LongInt); cdecl; external AfterwarpLib;

procedure MeshBufferCentralize(AMeshBuffer: PMeshBufferHandle; AFirstVertex: LongInt; 
  AVertexCount: LongInt); cdecl; external AfterwarpLib;

procedure MeshBufferEliminateUnusedVertices(AMeshBuffer: PMeshBufferHandle; AFirstVertex: LongInt; 
  AVertexCount: LongInt); cdecl; external AfterwarpLib;

function MeshBufferJoinDuplicateVertices(AMeshBuffer: PMeshBufferHandle; AFirstVertex: LongInt; 
  AVertexCount: LongInt; ATreshold: Single): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferCombine(AMeshBuffer: PMeshBufferHandle; AMeshBufferSource: PMeshBufferHandle; 
  AFirstVertex: LongInt; AVertexCount: LongInt; AFirstIndex: LongInt; 
  AIndexCount: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

procedure MeshBufferClear(AMeshBuffer: PMeshBufferHandle); cdecl; external AfterwarpLib;

procedure MeshBufferSetTransform(AMeshBuffer: PMeshBufferHandle; 
  ATransform: PMatrix4f); cdecl; external AfterwarpLib;

procedure MeshBufferGetTransform(AMeshBuffer: PMeshBufferHandle; 
  ATransform: PMatrix4f); cdecl; external AfterwarpLib;

function MeshBufferTransferVertexElements(AMeshBuffer: PMeshBufferHandle; ABuffer: Pointer; 
  AVertexElements: PVertexElement; AVertexElementCount: LongInt; AFirstVertex: LongInt; 
  AVertexCount: LongInt; AChannel: LongWord; 
  ASemanticIndex: LongWord): LongWord; cdecl; external AfterwarpLib;

function MeshBufferTransferIndexElements(AMeshBuffer: PMeshBufferHandle; ABuffer: Pointer; APitch: LongWord; 
  AFirstVertex: LongInt; AFirstIndex: LongInt; AIndexCount: LongInt): LongWord; cdecl; external AfterwarpLib;

function MeshBufferTransferVertices(AMeshBuffer: PMeshBufferHandle; ABuffer: PBufferHandle; 
  AVertexElements: PVertexElement; AVertexElementCount: LongInt; AFirstVertex: LongInt; 
  AVertexCount: LongInt; AChannel: LongWord; AOffset: LongWord; 
  ASemanticIndex: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferTransferIndices(AMeshBuffer: PMeshBufferHandle; ABuffer: PBufferHandle; 
  AFirstVertex: LongInt; AFirstIndex: LongInt; AIndexCount: LongInt; 
  AOffset: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferVoxelize(AMeshBuffer: PMeshBufferHandle; ALevels: Byte; 
  AColors: TLibraryBool): PMeshVoxelHandle; cdecl; external AfterwarpLib;

function MeshBufferLoadFromFile(AMeshBuffer: PMeshBufferHandle; AFileName: PAnsiChar; 
  AMaterials: PSceneMeshMaterialsHandle; ATags: PMeshMetaTagsHandle; AOptions: PLongWord; 
  AFeedback: TMeshLoadSaveFeedback; AFeedbackUser: Pointer; ADebug: PAnsiChar; 
  ADebugLength: PLongInt): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferSaveToFile(AMeshBuffer: PMeshBufferHandle; AFileName: PAnsiChar; 
  AMaterials: PSceneMeshMaterialsHandle; ATags: PMeshMetaTagsHandle; AOptions: LongWord; 
  AFeedback: TMeshLoadSaveFeedback; AFeedbackUser: Pointer; ADebug: PAnsiChar; 
  ADebugLength: PLongInt): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferLoadFromFileEx(AMeshBuffer: PMeshBufferHandle; ATags: PMeshMetaTagsHandle; 
  AFileName: PAnsiChar; AMinBounds: PVector3f; AMaxBounds: PVector3f; ANormals: TLibraryBool; 
  ADebug: PAnsiChar; ADebugLength: PLongInt): TLibraryBool; cdecl; external AfterwarpLib;

function MeshBufferSaveToFileEx(AMeshBuffer: PMeshBufferHandle; AFileName: PAnsiChar; AOptions: PLongWord; 
  ADebug: PAnsiChar; ADebugLength: PLongInt): TLibraryBool; cdecl; external AfterwarpLib;

function GaussianBlurCreate(ADevice: PDeviceHandle; ASigma: Single; ASamples: LongInt; 
  AHardwareFiltering: TLibraryBool): PGaussianBlurHandle; cdecl; external AfterwarpLib;

procedure GaussianBlurDestroy(AGaussianBlur: PGaussianBlurHandle); cdecl; external AfterwarpLib;

function GaussianBlurGetDevice(
  AGaussianBlur: PGaussianBlurHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function GaussianBlurGetFixedSamples(
  AGaussianBlur: PGaussianBlurHandle): LongInt; cdecl; external AfterwarpLib;

function GaussianBlurGetSamples(AGaussianBlur: PGaussianBlurHandle): LongInt; cdecl; external AfterwarpLib;

procedure GaussianBlurSetSamples(AGaussianBlur: PGaussianBlurHandle; 
  ASamples: LongInt); cdecl; external AfterwarpLib;

function GaussianBlurGetSigma(AGaussianBlur: PGaussianBlurHandle): Single; cdecl; external AfterwarpLib;

procedure GaussianBlurSetSigma(AGaussianBlur: PGaussianBlurHandle; 
  ASigma: Single); cdecl; external AfterwarpLib;

function GaussianBlurGetChroma(AGaussianBlur: PGaussianBlurHandle): Single; cdecl; external AfterwarpLib;

procedure GaussianBlurSetChroma(AGaussianBlur: PGaussianBlurHandle; 
  AChroma: Single); cdecl; external AfterwarpLib;

function GaussianBlurGetHardwareFiltering(
  AGaussianBlur: PGaussianBlurHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure GaussianBlurSetHardwareFiltering(AGaussianBlur: PGaussianBlurHandle; 
  AHardwareFiltering: TLibraryBool); cdecl; external AfterwarpLib;

function GaussianBlurUpdate(AGaussianBlur: PGaussianBlurHandle; ADestination: PTextureHandle; 
  AIntermediary: PTextureHandle; ASource: PTextureHandle): TLibraryBool; cdecl; external AfterwarpLib;

function GaussianBlurUpdateAt(AGaussianBlur: PGaussianBlurHandle; ADestination: PTextureHandle; 
  AIntermediary: PTextureHandle; ASource: PTextureHandle; ADestPos: PPoint2i; 
  AIntermRect: PIntRect): TLibraryBool; cdecl; external AfterwarpLib;

function KawaseBlurCreate(ADevice: PDeviceHandle): PKawaseBlurHandle; cdecl; external AfterwarpLib;

procedure KawaseBlurDestroy(AKawaseBlur: PKawaseBlurHandle); cdecl; external AfterwarpLib;

function KawaseBlurGetDevice(AKawaseBlur: PKawaseBlurHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function KawaseBlurGetPasses(AKawaseBlur: PKawaseBlurHandle): LongInt; cdecl; external AfterwarpLib;

procedure KawaseBlurSetPasses(AKawaseBlur: PKawaseBlurHandle; 
  APasses: LongInt); cdecl; external AfterwarpLib;

procedure KawaseBlurGetOffset(AKawaseBlur: PKawaseBlurHandle; 
  AOffset: PPoint2f); cdecl; external AfterwarpLib;

procedure KawaseBlurSetOffset(AKawaseBlur: PKawaseBlurHandle; 
  AOffset: PPoint2f); cdecl; external AfterwarpLib;

function KawaseBlurUpdate(AKawaseBlur: PKawaseBlurHandle; ADestination: PTextureHandle; 
  AIntermediary: PTextureHandle; ASource: PTextureHandle): TLibraryBool; cdecl; external AfterwarpLib;

function KawaseBlurSinglePass(AKawaseBlur: PKawaseBlurHandle; ADestination: PTextureHandle; 
  ASource: PTextureHandle; AOffset: PPoint2f): TLibraryBool; cdecl; external AfterwarpLib;

function ColorDitheringCreate(ADevice: PDeviceHandle): PColorDitheringHandle; cdecl; external AfterwarpLib;

procedure ColorDitheringDestroy(AColorDithering: PColorDitheringHandle); cdecl; external AfterwarpLib;

function ColorDitheringGetDevice(
  AColorDithering: PColorDitheringHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function ColorDitheringGetFormat(
  AColorDithering: PColorDitheringHandle): TColorDitheringFormat; cdecl; external AfterwarpLib;

procedure ColorDitheringSetFormat(AColorDithering: PColorDitheringHandle; 
  AFormat: TColorDitheringFormat); cdecl; external AfterwarpLib;

function ColorDitheringExecuteTo(AColorDithering: PColorDitheringHandle; ADestination: PTextureHandle; 
  ASource: PTextureHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ColorDitheringExecute(AColorDithering: PColorDitheringHandle; 
  ASource: PTextureHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SelectionHighlightCreate(ADevice: PDeviceHandle; ASize: PPoint2i; ADepthStencil: TPixelFormat; 
  ASamples: LongInt; AGrayscale: TLibraryBool): PSelectionHighlightHandle; cdecl; external AfterwarpLib;

procedure SelectionHighlightDestroy(
  ASelectionHighlight: PSelectionHighlightHandle); cdecl; external AfterwarpLib;

function SelectionHighlightGetDevice(
  ASelectionHighlight: PSelectionHighlightHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function SelectionHighlightSetSize(ASelectionHighlight: PSelectionHighlightHandle; 
  ASize: PPoint2i): TLibraryBool; cdecl; external AfterwarpLib;

procedure SelectionHighlightGetSize(ASelectionHighlight: PSelectionHighlightHandle; 
  ASize: PPoint2i); cdecl; external AfterwarpLib;

function SelectionHighlightGetDepthStencil(
  ASelectionHighlight: PSelectionHighlightHandle): TPixelFormat; cdecl; external AfterwarpLib;

function SelectionHighlightGetSamples(
  ASelectionHighlight: PSelectionHighlightHandle): LongInt; cdecl; external AfterwarpLib;

function SelectionHighlightGetGrayscale(
  ASelectionHighlight: PSelectionHighlightHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure SelectionHighlightGetParameters(ASelectionHighlight: PSelectionHighlightHandle; 
  AParameters: PSelectionHighlightParameters); cdecl; external AfterwarpLib;

function SelectionHighlightSetParameters(ASelectionHighlight: PSelectionHighlightHandle; 
  AParameters: PSelectionHighlightParameters): TLibraryBool; cdecl; external AfterwarpLib;

function SelectionHighlightClear(
  ASelectionHighlight: PSelectionHighlightHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SelectionHighlightBegin(
  ASelectionHighlight: PSelectionHighlightHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure SelectionHighlightEnd(
  ASelectionHighlight: PSelectionHighlightHandle); cdecl; external AfterwarpLib;

function SelectionHighlightRendering(
  ASelectionHighlight: PSelectionHighlightHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SelectionHighlightFilter(
  ASelectionHighlight: PSelectionHighlightHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SelectionHighlightGetTexture(ASelectionHighlight: PSelectionHighlightHandle; 
  AType: TSelectionHighlightTextureType): PTextureHandle; cdecl; external AfterwarpLib;

procedure SelectionHighlightGetTextureCoordinates(ASelectionHighlight: PSelectionHighlightHandle; 
  ACoords: PQuad); cdecl; external AfterwarpLib;

function SpatialFogCreate(ADevice: PDeviceHandle): PSpatialFogHandle; cdecl; external AfterwarpLib;

procedure SpatialFogDestroy(ASpatialFog: PSpatialFogHandle); cdecl; external AfterwarpLib;

function SpatialFogGetDevice(ASpatialFog: PSpatialFogHandle): PDeviceHandle; cdecl; external AfterwarpLib;

procedure SpatialFogGetParameters(ASpatialFog: PSpatialFogHandle; 
  AParameters: PFogParameters); cdecl; external AfterwarpLib;

function SpatialFogSetParameters(ASpatialFog: PSpatialFogHandle; 
  AParameters: PFogParameters): TLibraryBool; cdecl; external AfterwarpLib;

procedure SpatialFogGetView(ASpatialFog: PSpatialFogHandle; AView: PMatrix4f); cdecl; external AfterwarpLib;

function SpatialFogSetView(ASpatialFog: PSpatialFogHandle; 
  AView: PMatrix4f): TLibraryBool; cdecl; external AfterwarpLib;

procedure SpatialFogGetProjection(ASpatialFog: PSpatialFogHandle; 
  AProjection: PMatrix4f); cdecl; external AfterwarpLib;

function SpatialFogSetProjection(ASpatialFog: PSpatialFogHandle; 
  AProjection: PMatrix4f): TLibraryBool; cdecl; external AfterwarpLib;

function SpatialFogGetFormula(ASpatialFog: PSpatialFogHandle): TFogFormula; cdecl; external AfterwarpLib;

function SpatialFogSetFormula(ASpatialFog: PSpatialFogHandle; 
  AFormula: TFogFormula): TLibraryBool; cdecl; external AfterwarpLib;

function SpatialFogGetDepthDistance(
  ASpatialFog: PSpatialFogHandle): TDepthFogDistance; cdecl; external AfterwarpLib;

function SpatialFogSetDepthDistance(ASpatialFog: PSpatialFogHandle; 
  ADepthDistance: TDepthFogDistance): TLibraryBool; cdecl; external AfterwarpLib;

function SpatialFogExecute(ASpatialFog: PSpatialFogHandle; ADestination: PTextureHandle; 
  ALinearDepths: PTextureHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SpatialFogExecuteGlassy(ASpatialFog: PSpatialFogHandle; ADestination: PTextureHandle; 
  ALinearDepths: PTextureHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SceneLightsCreate(ADevice: PDeviceHandle): PSceneLightsHandle; cdecl; external AfterwarpLib;

procedure SceneLightsDestroy(ASceneLights: PSceneLightsHandle); cdecl; external AfterwarpLib;

function SceneLightsGetDevice(ASceneLights: PSceneLightsHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function SceneLightsGetCount(ASceneLights: PSceneLightsHandle): LongInt; cdecl; external AfterwarpLib;

function SceneLightsGetElement(ASceneLights: PSceneLightsHandle; 
  AIndex: LongInt): PSceneLight; cdecl; external AfterwarpLib;

function SceneLightsAdd(ASceneLights: PSceneLightsHandle): PSceneLight; cdecl; external AfterwarpLib;

function SceneLightsErase(ASceneLights: PSceneLightsHandle; 
  AIndex: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneLightsClear(ASceneLights: PSceneLightsHandle); cdecl; external AfterwarpLib;

procedure SceneLightsGetViewSize(ASceneLights: PSceneLightsHandle; 
  AViewSize: PPoint2i); cdecl; external AfterwarpLib;

procedure SceneLightsSetViewSize(ASceneLights: PSceneLightsHandle; 
  AViewSize: PPoint2i); cdecl; external AfterwarpLib;

function SceneLightsGetClusterSize(ASceneLights: PSceneLightsHandle): LongInt; cdecl; external AfterwarpLib;

procedure SceneLightsSetClusterSize(ASceneLights: PSceneLightsHandle; 
  AClusterSize: LongInt); cdecl; external AfterwarpLib;

function SceneLightsGetDepthSlices(ASceneLights: PSceneLightsHandle): LongInt; cdecl; external AfterwarpLib;

procedure SceneLightsSetDepthSlices(ASceneLights: PSceneLightsHandle; 
  ADepthSlices: LongInt); cdecl; external AfterwarpLib;

function SceneLightsGetCullingMode(
  ASceneLights: PSceneLightsHandle): TClustersCullingMode; cdecl; external AfterwarpLib;

procedure SceneLightsSetCullingMode(ASceneLights: PSceneLightsHandle; 
  AMode: TClustersCullingMode); cdecl; external AfterwarpLib;

procedure SceneLightsGetClusters(ASceneLights: PSceneLightsHandle; 
  AClusters: PPoint2i); cdecl; external AfterwarpLib;

function SceneLightsGetIndices(
  ASceneLights: PSceneLightsHandle): PBufferHandle; cdecl; external AfterwarpLib;

function SceneLightsExecute(ASceneLights: PSceneLightsHandle; AView: PMatrix4f; 
  AProjection: PMatrix4f): TLibraryBool; cdecl; external AfterwarpLib;

function SceneLightsRenderDebug(ASceneLights: PSceneLightsHandle; 
  AIntensity: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function ObjectMaterialsCreate: PObjectMaterialsHandle; cdecl; external AfterwarpLib;

procedure ObjectMaterialsDestroy(AObjectMaterials: PObjectMaterialsHandle); cdecl; external AfterwarpLib;

function ObjectMaterialsGetCount(
  AObjectMaterials: PObjectMaterialsHandle): LongInt; cdecl; external AfterwarpLib;

function ObjectMaterialsGetElement(AObjectMaterials: PObjectMaterialsHandle; 
  AIndex: LongInt): PObjectMaterial; cdecl; external AfterwarpLib;

function ObjectMaterialsAdd(
  AObjectMaterials: PObjectMaterialsHandle): PObjectMaterial; cdecl; external AfterwarpLib;

function ObjectMaterialsErase(AObjectMaterials: PObjectMaterialsHandle; 
  AIndex: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

procedure ObjectMaterialsClear(AObjectMaterials: PObjectMaterialsHandle); cdecl; external AfterwarpLib;

function TextureCabinetCreate(ADevice: PDeviceHandle; ASize: PPoint2i; AFidelity: TTextureFidelity; 
  ASamples: LongInt; ADepthStencil: TPixelFormat): PTextureCabinetHandle; cdecl; external AfterwarpLib;

procedure TextureCabinetDestroy(ATextureCabinet: PTextureCabinetHandle); cdecl; external AfterwarpLib;

function TextureCabinetGetDevice(
  ATextureCabinet: PTextureCabinetHandle): PDeviceHandle; cdecl; external AfterwarpLib;

procedure TextureCabinetGetSize(ATextureCabinet: PTextureCabinetHandle; 
  ASize: PPoint2i); cdecl; external AfterwarpLib;

function TextureCabinetSetSize(ATextureCabinet: PTextureCabinetHandle; 
  ASize: PPoint2i): TLibraryBool; cdecl; external AfterwarpLib;

function TextureCabinetGetSamples(
  ATextureCabinet: PTextureCabinetHandle): LongInt; cdecl; external AfterwarpLib;

function TextureCabinetGetDepthStencil(
  ATextureCabinet: PTextureCabinetHandle): TPixelFormat; cdecl; external AfterwarpLib;

function TextureCabinetGetFidelity(
  ATextureCabinet: PTextureCabinetHandle): TTextureFidelity; cdecl; external AfterwarpLib;

function TextureCabinetGetAttributes(
  ATextureCabinet: PTextureCabinetHandle): TTextureCabinetAttributes; cdecl; external AfterwarpLib;

function TextureCabinetSetAttributes(ATextureCabinet: PTextureCabinetHandle; 
  AAttributes: TTextureCabinetAttributes): TLibraryBool; cdecl; external AfterwarpLib;

function TextureCabinetGetTexture(ATextureCabinet: PTextureCabinetHandle; 
  AType: TTextureCabinetType): PTextureHandle; cdecl; external AfterwarpLib;

function TextureCabinetGetFinalTexture(
  ATextureCabinet: PTextureCabinetHandle): PTextureHandle; cdecl; external AfterwarpLib;

function TextureCabinetClear(ATextureCabinet: PTextureCabinetHandle; APass: TTextureCabinetPass; 
  AColor: PFloatColor): TLibraryBool; cdecl; external AfterwarpLib;

function TextureCabinetBegin(ATextureCabinet: PTextureCabinetHandle; 
  APass: TTextureCabinetPass): TLibraryBool; cdecl; external AfterwarpLib;

procedure TextureCabinetEnd(ATextureCabinet: PTextureCabinetHandle); cdecl; external AfterwarpLib;

function TextureCabinetRendering(
  ATextureCabinet: PTextureCabinetHandle): TLibraryBool; cdecl; external AfterwarpLib;

function TextureCabinetFilter(ATextureCabinet: PTextureCabinetHandle; AFilter: TTextureCabinetFilterType; 
  AProjection: PMatrix4f): TLibraryBool; cdecl; external AfterwarpLib;

function TextureCabinetResolve(
  ATextureCabinet: PTextureCabinetHandle): TLibraryBool; cdecl; external AfterwarpLib;

function TextureCabinetPresent(
  ATextureCabinet: PTextureCabinetHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure TextureCabinetGetToneMappingBloom(ATextureCabinet: PTextureCabinetHandle; 
  AParameters: PToneMappingBloom); cdecl; external AfterwarpLib;

procedure TextureCabinetSetToneMappingBloom(ATextureCabinet: PTextureCabinetHandle; 
  AParameters: PToneMappingBloom); cdecl; external AfterwarpLib;

procedure TextureCabinetGetAmbientOcclusionParameters(ATextureCabinet: PTextureCabinetHandle; 
  AParameters: PAmbientOcclusionParameters); cdecl; external AfterwarpLib;

procedure TextureCabinetSetAmbientOcclusionParameters(ATextureCabinet: PTextureCabinetHandle; 
  AParameters: PAmbientOcclusionParameters); cdecl; external AfterwarpLib;

function TextureCabinetRetrieveGlassyMetrics(ATextureCabinet: PTextureCabinetHandle; 
  AValues: PLongWord): TLibraryBool; cdecl; external AfterwarpLib;

function ShadowCasterGetDevice(
  AShadowCaster: PShadowCasterHandle): PDeviceHandle; cdecl; external AfterwarpLib;

procedure ShadowCasterGetPosition(AShadowCaster: PShadowCasterHandle; 
  APosition: PPoint2i); cdecl; external AfterwarpLib;

procedure ShadowCasterGetSize(AShadowCaster: PShadowCasterHandle; 
  ASize: PPoint2i); cdecl; external AfterwarpLib;

procedure ShadowCasterGetViewProjection(AShadowCaster: PShadowCasterHandle; 
  AViewProjection: PMatrix4f); cdecl; external AfterwarpLib;

procedure ShadowCasterSetViewProjection(AShadowCaster: PShadowCasterHandle; 
  AViewProjection: PMatrix4f); cdecl; external AfterwarpLib;

function ShadowCasterGetAtlas(
  AShadowCaster: PShadowCasterHandle): PShadowCastingAtlasHandle; cdecl; external AfterwarpLib;

function ShadowCasterClear(AShadowCaster: PShadowCasterHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ShadowCasterBegin(AShadowCaster: PShadowCasterHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure ShadowCasterEnd(AShadowCaster: PShadowCasterHandle); cdecl; external AfterwarpLib;

function ShadowCasterFilter(AShadowCaster: PShadowCasterHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ShadowCasterRendering(
  AShadowCaster: PShadowCasterHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ShadowCasterGetTexture(AShadowCaster: PShadowCasterHandle; 
  AIndex: LongInt): PTextureHandle; cdecl; external AfterwarpLib;

function ShadowCastingAtlasCreate(ADevice: PDeviceHandle; ASize: PPoint2i; ATechnique: TTechniqueShadows; 
  ASamples: LongInt; APadding: LongInt): PShadowCastingAtlasHandle; cdecl; external AfterwarpLib;

procedure ShadowCastingAtlasDestroy(
  AShadowCastingAtlas: PShadowCastingAtlasHandle); cdecl; external AfterwarpLib;

function ShadowCastingAtlasGetDevice(
  AShadowCastingAtlas: PShadowCastingAtlasHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function ShadowCastingAtlasGetTechnique(
  AShadowCastingAtlas: PShadowCastingAtlasHandle): TTechniqueShadows; cdecl; external AfterwarpLib;

procedure ShadowCastingAtlasGetParameters(AShadowCastingAtlas: PShadowCastingAtlasHandle; 
  AParameters: PShadowParameters); cdecl; external AfterwarpLib;

function ShadowCastingAtlasSetParameters(AShadowCastingAtlas: PShadowCastingAtlasHandle; 
  AParameters: PShadowParameters): TLibraryBool; cdecl; external AfterwarpLib;

procedure ShadowCastingAtlasGetSize(AShadowCastingAtlas: PShadowCastingAtlasHandle; 
  ASize: PPoint2i); cdecl; external AfterwarpLib;

function ShadowCastingAtlasGetSamples(
  AShadowCastingAtlas: PShadowCastingAtlasHandle): LongInt; cdecl; external AfterwarpLib;

function ShadowCastingAtlasGetPadding(
  AShadowCastingAtlas: PShadowCastingAtlasHandle): LongInt; cdecl; external AfterwarpLib;

function ShadowCastingAtlasGetTexture(
  AShadowCastingAtlas: PShadowCastingAtlasHandle): PTextureHandle; cdecl; external AfterwarpLib;

function ShadowCastingAtlasAdd(AShadowCastingAtlas: PShadowCastingAtlasHandle; ASize: PPoint2i; 
  AShared: TLibraryBool): PShadowCasterHandle; cdecl; external AfterwarpLib;

procedure ShadowCastingAtlasErase(AShadowCastingAtlas: PShadowCastingAtlasHandle; 
  ACaster: PShadowCasterHandle); cdecl; external AfterwarpLib;

procedure ShadowCastingAtlasClear(
  AShadowCastingAtlas: PShadowCastingAtlasHandle); cdecl; external AfterwarpLib;

function ShadowCastingAtlasGetCount(
  AShadowCastingAtlas: PShadowCastingAtlasHandle): LongInt; cdecl; external AfterwarpLib;

function ShadowCastingAtlasGetCaster(AShadowCastingAtlas: PShadowCastingAtlasHandle; 
  AIndex: LongInt): PShadowCasterHandle; cdecl; external AfterwarpLib;

function ShadowCastingAtlasBorderFill(
  AShadowCastingAtlas: PShadowCastingAtlasHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SceneCreateDepthsNormals(ADevice: PDeviceHandle): PSceneHandle; cdecl; external AfterwarpLib;

function SceneCreateModeling(ADevice: PDeviceHandle): PSceneHandle; cdecl; external AfterwarpLib;

procedure SceneDestroy(AScene: PSceneHandle); cdecl; external AfterwarpLib;

function SceneGetDevice(AScene: PSceneHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function SceneGetVertexElementCount(AScene: PSceneHandle; 
  AIndex: LongInt): LongInt; cdecl; external AfterwarpLib;

function SceneGetVertexElements(AScene: PSceneHandle; 
  AIndex: LongInt): PVertexElement; cdecl; external AfterwarpLib;

function SceneSetVertexElements(AScene: PSceneHandle; AIndex: LongInt; AVertexElements: PVertexElement; 
  AVertexElementCount: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function SceneSetVertexElementsFromTextModeller(AScene: PSceneHandle; 
  AIndex: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function SceneGetActiveVertexElements(AScene: PSceneHandle): LongInt; cdecl; external AfterwarpLib;

function SceneSetActiveVertexElements(AScene: PSceneHandle; 
  AIndex: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function SceneGetAttributes(AScene: PSceneHandle): TSceneAttributes; cdecl; external AfterwarpLib;

function SceneSetAttributes(AScene: PSceneHandle; 
  AAttributes: TSceneAttributes): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneGetWorld(AScene: PSceneHandle; AWorld: PMatrix4f); cdecl; external AfterwarpLib;

procedure SceneSetWorld(AScene: PSceneHandle; AWorld: PMatrix4f); cdecl; external AfterwarpLib;

procedure SceneGetView(AScene: PSceneHandle; AView: PMatrix4f); cdecl; external AfterwarpLib;

procedure SceneSetView(AScene: PSceneHandle; AView: PMatrix4f); cdecl; external AfterwarpLib;

procedure SceneGetProjection(AScene: PSceneHandle; AProjection: PMatrix4f); cdecl; external AfterwarpLib;

procedure SceneSetProjection(AScene: PSceneHandle; AProjection: PMatrix4f); cdecl; external AfterwarpLib;

function SceneInstances(AScene: PSceneHandle; ATransforms: PMatrix4f; AColors: PFloatColor; 
  ACount: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function SceneGetInstancesCount(AScene: PSceneHandle): LongInt; cdecl; external AfterwarpLib;

function SceneGetProgram(AScene: PSceneHandle): PProgramHandle; cdecl; external AfterwarpLib;

function SceneBegin(AScene: PSceneHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneEnd(AScene: PSceneHandle); cdecl; external AfterwarpLib;

function SceneRendering(AScene: PSceneHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneResetCache(AScene: PSceneHandle); cdecl; external AfterwarpLib;

procedure SceneGetMaterial(AScene: PSceneHandle; AMaterial: PObjectMaterial); cdecl; external AfterwarpLib;

function SceneSetMaterial(AScene: PSceneHandle; 
  AMaterial: PObjectMaterial): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneGetToneMappingCoefficients(AScene: PSceneHandle; 
  ACoefficients: PVector4f); cdecl; external AfterwarpLib;

function SceneSetToneMappingCoefficients(AScene: PSceneHandle; 
  ACoefficients: PVector4f): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneGetParallaxMappingParameters(AScene: PSceneHandle; 
  AParameters: PParallaxMappingParameters); cdecl; external AfterwarpLib;

function SceneSetParallaxMappingParameters(AScene: PSceneHandle; 
  AParameters: PParallaxMappingParameters): TLibraryBool; cdecl; external AfterwarpLib;

function SceneGetSampler(AScene: PSceneHandle; 
  AType: TSceneSamplerType): PSamplerHandle; cdecl; external AfterwarpLib;

function SceneGetTexture(AScene: PSceneHandle; 
  AType: TSceneTextureType): PTextureHandle; cdecl; external AfterwarpLib;

function SceneSetTexture(AScene: PSceneHandle; ATexture: PTextureHandle; 
  AType: TSceneTextureType): TLibraryBool; cdecl; external AfterwarpLib;

function SceneGetLights(AScene: PSceneHandle): PSceneLightsHandle; cdecl; external AfterwarpLib;

procedure SceneSetLights(AScene: PSceneHandle; 
  ASceneLights: PSceneLightsHandle); cdecl; external AfterwarpLib;

function SceneGetShadowCastingAtlas(
  AScene: PSceneHandle): PShadowCastingAtlasHandle; cdecl; external AfterwarpLib;

procedure SceneSetShadowCastingAtlas(AScene: PSceneHandle; 
  AShadowCastingAtlas: PShadowCastingAtlasHandle); cdecl; external AfterwarpLib;

function SceneGetTextureCabinet(AScene: PSceneHandle): PTextureCabinetHandle; cdecl; external AfterwarpLib;

procedure SceneSetTextureCabinet(AScene: PSceneHandle; 
  ATextureCabinet: PTextureCabinetHandle); cdecl; external AfterwarpLib;

function ScenePrepare(AScene: PSceneHandle): TLibraryBool; cdecl; external AfterwarpLib;

function OceanSimulationCreate(ADevice: PDeviceHandle): POceanSimulationHandle; cdecl; external AfterwarpLib;

procedure OceanSimulationDestroy(AOceanSimulation: POceanSimulationHandle); cdecl; external AfterwarpLib;

function OceanSimulationGetDevice(
  AOceanSimulation: POceanSimulationHandle): PDeviceHandle; cdecl; external AfterwarpLib;

procedure OceanSimulationGetWavesParameters(AOceanSimulation: POceanSimulationHandle; 
  AParameters: POceanWavesParameters); cdecl; external AfterwarpLib;

function OceanSimulationSetWavesParameters(AOceanSimulation: POceanSimulationHandle; 
  AParameters: POceanWavesParameters): TLibraryBool; cdecl; external AfterwarpLib;

function OceanSimulationGetWavesTexture(AOceanSimulation: POceanSimulationHandle; 
  AIndex: LongInt): PTextureHandle; cdecl; external AfterwarpLib;

procedure OceanSimulationGetSections(AOceanSimulation: POceanSimulationHandle; 
  ASections: PPoint2i); cdecl; external AfterwarpLib;

function OceanSimulationSetSections(AOceanSimulation: POceanSimulationHandle; 
  ASections: PPoint2i): TLibraryBool; cdecl; external AfterwarpLib;

procedure OceanSimulationGetView(AOceanSimulation: POceanSimulationHandle; 
  AView: PMatrix4f); cdecl; external AfterwarpLib;

function OceanSimulationSetView(AOceanSimulation: POceanSimulationHandle; 
  AView: PMatrix4f): TLibraryBool; cdecl; external AfterwarpLib;

procedure OceanSimulationGetProjection(AOceanSimulation: POceanSimulationHandle; 
  AProjection: PMatrix4f); cdecl; external AfterwarpLib;

function OceanSimulationSetProjection(AOceanSimulation: POceanSimulationHandle; 
  AProjection: PMatrix4f): TLibraryBool; cdecl; external AfterwarpLib;

procedure OceanSimulationGetScale(AOceanSimulation: POceanSimulationHandle; 
  AScale: PVector3f); cdecl; external AfterwarpLib;

function OceanSimulationSetScale(AOceanSimulation: POceanSimulationHandle; 
  AScale: PVector3f): TLibraryBool; cdecl; external AfterwarpLib;

procedure OceanSimulationGetPlane(AOceanSimulation: POceanSimulationHandle; 
  APlane: PVector4f); cdecl; external AfterwarpLib;

function OceanSimulationSetPlane(AOceanSimulation: POceanSimulationHandle; 
  APlane: PVector4f): TLibraryBool; cdecl; external AfterwarpLib;

function OceanSimulationGetViewDistance(
  AOceanSimulation: POceanSimulationHandle): Single; cdecl; external AfterwarpLib;

function OceanSimulationSetViewDistance(AOceanSimulation: POceanSimulationHandle; 
  AViewDistance: Single): TLibraryBool; cdecl; external AfterwarpLib;

function OceanSimulationGetAttributes(
  AOceanSimulation: POceanSimulationHandle): TSceneAttributes; cdecl; external AfterwarpLib;

procedure OceanSimulationSetAttributes(AOceanSimulation: POceanSimulationHandle; 
  AAttributes: TSceneAttributes); cdecl; external AfterwarpLib;

procedure OceanSimulationGetMaterial(AOceanSimulation: POceanSimulationHandle; 
  AMaterial: POceanMaterial); cdecl; external AfterwarpLib;

function OceanSimulationSetMaterial(AOceanSimulation: POceanSimulationHandle; 
  AMaterial: POceanMaterial): TLibraryBool; cdecl; external AfterwarpLib;

function OceanSimulationGetSamplerShadow(
  AOceanSimulation: POceanSimulationHandle): PSamplerHandle; cdecl; external AfterwarpLib;

function OceanSimulationUpdate(AOceanSimulation: POceanSimulationHandle; 
  ALatency: Double): TLibraryBool; cdecl; external AfterwarpLib;

function OceanSimulationRender(AOceanSimulation: POceanSimulationHandle; ALinearDepths: PTextureHandle; 
  ASceneLights: PSceneLightsHandle; 
  AAtlas: PShadowCastingAtlasHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ObjectModelGetOwner(
  AObjectModel: PObjectModelHandle): PObjectModelsHandle; cdecl; external AfterwarpLib;

function ObjectModelGetID(AObjectModel: PObjectModelHandle): TObjectModelID; cdecl; external AfterwarpLib;

procedure ObjectModelGetName(AObjectModel: PObjectModelHandle; AModelName: PAnsiChar; 
  AModelNameLength: PLongInt); cdecl; external AfterwarpLib;

function ObjectModelGetPayload(
  AObjectModel: PObjectModelHandle): TObjectPayload; cdecl; external AfterwarpLib;

function ObjectModelSetName(AObjectModel: PObjectModelHandle; 
  AName: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

procedure ObjectModelGetDescription(AObjectModel: PObjectModelHandle; ADescription: PAnsiChar; 
  ADescriptionLength: PLongInt); cdecl; external AfterwarpLib;

function ObjectModelSetDescription(AObjectModel: PObjectModelHandle; 
  ADescription: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

function ObjectModelGetVoxel(
  AObjectModel: PObjectModelHandle): PMeshVoxelHandle; cdecl; external AfterwarpLib;

procedure ObjectModelSetVoxel(AObjectModel: PObjectModelHandle; 
  AMeshVoxel: PMeshVoxelHandle); cdecl; external AfterwarpLib;

function ObjectModelGetMesh(
  AObjectModel: PObjectModelHandle): PSceneMeshHandle; cdecl; external AfterwarpLib;

function ObjectModelSetMesh(AObjectModel: PObjectModelHandle; 
  ASceneMesh: PSceneMeshHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure ObjectModelGetMeshName(AObjectModel: PObjectModelHandle; AMeshName: PAnsiChar; 
  AMeshNameLength: PLongInt); cdecl; external AfterwarpLib;

function ObjectModelSetMeshName(AObjectModel: PObjectModelHandle; 
  AMeshName: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

function ObjectModelGetParent(
  AObjectModel: PObjectModelHandle): PObjectModelHandle; cdecl; external AfterwarpLib;

function ObjectModelSetParent(AObjectModel: PObjectModelHandle; 
  AParent: PObjectModelHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ObjectModelGetChildCount(AObjectModel: PObjectModelHandle): LongInt; cdecl; external AfterwarpLib;

function ObjectModelGetChild(AObjectModel: PObjectModelHandle; 
  AIndex: LongInt): PObjectModelHandle; cdecl; external AfterwarpLib;

procedure ObjectModelGetTransform(AObjectModel: PObjectModelHandle; ATransform: TModelTransform; 
  AMatrix: PMatrix4f); cdecl; external AfterwarpLib;

function ObjectModelSetTransform(AObjectModel: PObjectModelHandle; ATransform: TModelTransform; 
  AMatrix: PMatrix4f): TLibraryBool; cdecl; external AfterwarpLib;

procedure ObjectModelGetPosition(AObjectModel: PObjectModelHandle; 
  APosition: PVector3f); cdecl; external AfterwarpLib;

function ObjectModelGetDepthBias(AObjectModel: PObjectModelHandle): Single; cdecl; external AfterwarpLib;

procedure ObjectModelSetDepthBias(AObjectModel: PObjectModelHandle; 
  ADepthBias: Single); cdecl; external AfterwarpLib;

procedure ObjectModelGetAABB(AObjectModel: PObjectModelHandle; ABoxMin: PVector3f; 
  ABoxMax: PVector3f); cdecl; external AfterwarpLib;

function ObjectModelGetAttributes(AObjectModel: PObjectModelHandle): LongWord; cdecl; external AfterwarpLib;

procedure ObjectModelSetAttributes(AObjectModel: PObjectModelHandle; 
  AAttributes: LongWord); cdecl; external AfterwarpLib;

function ObjectModelGetOrderIndex(AObjectModel: PObjectModelHandle): LongInt; cdecl; external AfterwarpLib;

procedure ObjectModelSetOrderIndex(AObjectModel: PObjectModelHandle; 
  AOrderIndex: LongInt); cdecl; external AfterwarpLib;

function ObjectModelGetLayers(AObjectModel: PObjectModelHandle): UInt64; cdecl; external AfterwarpLib;

procedure ObjectModelSetLayers(AObjectModel: PObjectModelHandle; 
  ALayers: UInt64); cdecl; external AfterwarpLib;

procedure ObjectModelGetSize(AObjectModel: PObjectModelHandle; 
  ASize: PVector3f); cdecl; external AfterwarpLib;

procedure ObjectModelSetSize(AObjectModel: PObjectModelHandle; 
  ASize: PVector3f); cdecl; external AfterwarpLib;

procedure ObjectModelGetAlignments(AObjectModel: PObjectModelHandle; 
  AAligns: PMeshAligns); cdecl; external AfterwarpLib;

procedure ObjectModelSetAlignments(AObjectModel: PObjectModelHandle; 
  AAligns: PMeshAligns); cdecl; external AfterwarpLib;

function ObjectModelGetMaterial(AObjectModel: PObjectModelHandle): LongInt; cdecl; external AfterwarpLib;

procedure ObjectModelSetMaterial(AObjectModel: PObjectModelHandle; 
  AMaterial: LongInt); cdecl; external AfterwarpLib;

procedure ObjectModelGetColor(AObjectModel: PObjectModelHandle; 
  AColor: PFloatColor); cdecl; external AfterwarpLib;

procedure ObjectModelSetColor(AObjectModel: PObjectModelHandle; 
  AColor: PFloatColor); cdecl; external AfterwarpLib;

procedure ObjectModelGetHighlight(AObjectModel: PObjectModelHandle; 
  AHighlight: PFloatColor); cdecl; external AfterwarpLib;

procedure ObjectModelSetHighlight(AObjectModel: PObjectModelHandle; 
  AHighlight: PFloatColor); cdecl; external AfterwarpLib;

procedure ObjectModelConnectLatches(AObjectModel: PObjectModelHandle; ALatchParent: LongInt; 
  ALatchLocal: LongInt); cdecl; external AfterwarpLib;

procedure ObjectModelConnectLatchesByName(AObjectModel: PObjectModelHandle; ALatchParentName: PAnsiChar; 
  ALatchLocalName: PAnsiChar); cdecl; external AfterwarpLib;

procedure ObjectModelGetConnectedLatches(AObjectModel: PObjectModelHandle; ALatchParent: PLongInt; 
  ALatchLocal: PLongInt); cdecl; external AfterwarpLib;

function ObjectModelGetWaypointDistance(AObjectModel: PObjectModelHandle; 
  AGroup: LongInt): Single; cdecl; external AfterwarpLib;

procedure ObjectModelGetLatchWaypointCouple(AObjectModel: PObjectModelHandle; AGroup: LongInt; 
  ADistance: Single; APosition: PVector3f; AOrientation: PQuaternion); cdecl; external AfterwarpLib;

procedure ObjectModelGetLatchWaypointCoupleMatrix(AObjectModel: PObjectModelHandle; AGroup: LongInt; 
  ADistance: Single; ATransform: PMatrix4f); cdecl; external AfterwarpLib;

procedure ObjectModelGetLatchTransform(AObjectModel: PObjectModelHandle; ATransform: PMatrix4f; 
  ALatchIndex: LongInt; ALocal: TLibraryBool); cdecl; external AfterwarpLib;

procedure ObjectModelGetLatchTransformByName(AObjectModel: PObjectModelHandle; ATransform: PMatrix4f; 
  AName: PAnsiChar; ALocal: TLibraryBool); cdecl; external AfterwarpLib;

procedure ObjectModelInvalidate(AObjectModel: PObjectModelHandle); cdecl; external AfterwarpLib;

function ObjectModelGetNext(
  AObjectModel: PObjectModelHandle): PObjectModelHandle; cdecl; external AfterwarpLib;

function ObjectModelsCreate(
  ASceneMeshes: PSceneMeshesHandle): PObjectModelsHandle; cdecl; external AfterwarpLib;

procedure ObjectModelsDestroy(AObjectModels: PObjectModelsHandle); cdecl; external AfterwarpLib;

function ObjectModelsGetMeshes(
  AObjectModels: PObjectModelsHandle): PSceneMeshesHandle; cdecl; external AfterwarpLib;

function ObjectModelsGetObjectCount(
  AObjectModels: PObjectModelsHandle): LongInt; cdecl; external AfterwarpLib;

function ObjectModelsGetFirst(
  AObjectModels: PObjectModelsHandle): PObjectModelHandle; cdecl; external AfterwarpLib;

function ObjectModelsAddWithID(AObjectModels: PObjectModelsHandle; AId: TObjectModelID; AName: PAnsiChar; 
  APayload: TObjectPayload; AAttributes: LongWord): PObjectModelHandle; cdecl; external AfterwarpLib;

function ObjectModelsAdd(AObjectModels: PObjectModelsHandle; AName: PAnsiChar; APayload: TObjectPayload; 
  AAttributes: LongWord): PObjectModelHandle; cdecl; external AfterwarpLib;

procedure ObjectModelsErase(AObjectModels: PObjectModelsHandle; 
  AObjectModel: PObjectModelHandle); cdecl; external AfterwarpLib;

procedure ObjectModelsClear(AObjectModels: PObjectModelsHandle); cdecl; external AfterwarpLib;

function ObjectModelsGetObjectByID(AObjectModels: PObjectModelsHandle; 
  AId: TObjectModelID): PObjectModelHandle; cdecl; external AfterwarpLib;

function ObjectModelsGetObjectByName(AObjectModels: PObjectModelsHandle; 
  AName: PAnsiChar): PObjectModelHandle; cdecl; external AfterwarpLib;

function ObjectModelsPayload(AObjectModels: PObjectModelsHandle; 
  APayload: TObjectPayload): PObjectModelHandle; cdecl; external AfterwarpLib;

function ObjectModelsCreateView(
  AObjectModels: PObjectModelsHandle): PObjectModelViewHandle; cdecl; external AfterwarpLib;

procedure ObjectModelsEraseView(AObjectModels: PObjectModelsHandle; 
  AObjectModelView: PObjectModelViewHandle); cdecl; external AfterwarpLib;

procedure ObjectModelsClearViews(AObjectModels: PObjectModelsHandle); cdecl; external AfterwarpLib;

function ObjectModelViewGetOwner(
  AObjectModelView: PObjectModelViewHandle): PObjectModelsHandle; cdecl; external AfterwarpLib;

procedure ObjectModelViewGetView(AObjectModelView: PObjectModelViewHandle; 
  AView: PMatrix4f); cdecl; external AfterwarpLib;

procedure ObjectModelViewSetView(AObjectModelView: PObjectModelViewHandle; 
  AView: PMatrix4f); cdecl; external AfterwarpLib;

procedure ObjectModelViewGetProjection(AObjectModelView: PObjectModelViewHandle; AProjection: PMatrix4f; 
  ADepthClipNegative: PLibraryBool); cdecl; external AfterwarpLib;

procedure ObjectModelViewSetProjection(AObjectModelView: PObjectModelViewHandle; AProjection: PMatrix4f; 
  ADepthClipNegative: TLibraryBool); cdecl; external AfterwarpLib;

procedure ObjectModelViewGetViewProjection(AObjectModelView: PObjectModelViewHandle; 
  AViewProjection: PMatrix4f); cdecl; external AfterwarpLib;

function ObjectModelViewGetLayers(
  AObjectModelView: PObjectModelViewHandle): UInt64; cdecl; external AfterwarpLib;

procedure ObjectModelViewSetLayers(AObjectModelView: PObjectModelViewHandle; 
  ALayers: UInt64); cdecl; external AfterwarpLib;

procedure ObjectModelViewUpdateNeeded(
  AObjectModelView: PObjectModelViewHandle); cdecl; external AfterwarpLib;

procedure ObjectModelViewInvalidate(AObjectModelView: PObjectModelViewHandle); cdecl; external AfterwarpLib;

function ObjectModelViewGetObjectCount(
  AObjectModelView: PObjectModelViewHandle): LongInt; cdecl; external AfterwarpLib;

function ObjectModelViewGetObject(AObjectModelView: PObjectModelViewHandle; 
  AIndex: LongInt): PObjectModelHandle; cdecl; external AfterwarpLib;

function ObjectModelViewUpdate(
  AObjectModelView: PObjectModelViewHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure ObjectModelViewSort(AObjectModelView: PObjectModelViewHandle; 
  ACompare: TObjectModelViewCompare); cdecl; external AfterwarpLib;

procedure ObjectModelViewSortWith(AObjectModelView: PObjectModelViewHandle; 
  ACompareFunc: TObjectModelCompareFunc; AUser: Pointer); cdecl; external AfterwarpLib;

function ObjectModelViewSelect(AObjectModelView: PObjectModelViewHandle; AOrigin: PVector3f; 
  ADirection: PVector3f; ADistance: PSingle): PObjectModelHandle; cdecl; external AfterwarpLib;

function ObjectModelViewSelectAny(AObjectModelView: PObjectModelViewHandle; AOrigin: PVector3f; 
  ADirection: PVector3f; ADistance: PSingle): PObjectModelHandle; cdecl; external AfterwarpLib;

function ObjectModelViewGetObjectsNotCulled(
  AObjectModelView: PObjectModelViewHandle): LongInt; cdecl; external AfterwarpLib;

function ObjectModelViewGetIntersectedRays(
  AObjectModelView: PObjectModelViewHandle): LongInt; cdecl; external AfterwarpLib;

function ObjectModelViewGetIntersectedObjects(
  AObjectModelView: PObjectModelViewHandle): LongInt; cdecl; external AfterwarpLib;

function ObjectModelViewAutoDraw(AObjectModelView: PObjectModelViewHandle; AScene: PSceneHandle; 
  AMaterials: PObjectMaterialsHandle; AOptions: LongWord; 
  ADrawCalls: PLongInt): TLibraryBool; cdecl; external AfterwarpLib;

function MeshVoxelCreate: PMeshVoxelHandle; cdecl; external AfterwarpLib;

procedure MeshVoxelDestroy(AMeshVoxel: PMeshVoxelHandle); cdecl; external AfterwarpLib;

procedure MeshVoxelTakeAway(AMeshVoxel: PMeshVoxelHandle; 
  AMeshVoxelAnother: PMeshVoxelHandle); cdecl; external AfterwarpLib;

function MeshVoxelLoadFromFile(AMeshVoxel: PMeshVoxelHandle; AFileName: PAnsiChar; ADimensions: PLongInt; 
  ALevels: PByte; AColors: PLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshVoxelLoadFromFileInMemory(AMeshVoxel: PMeshVoxelHandle; ABuffer: Pointer; 
  ABufferSize: LongWord; ADimensions: PLongInt; ALevels: PByte; 
  AColors: PLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function MeshVoxelSaveToFile(AMeshVoxel: PMeshVoxelHandle; AFileName: PAnsiChar; ADimensions: PLongInt; 
  ALevels: Byte; AColors: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

procedure MeshVoxelExtents(AMeshVoxel: PMeshVoxelHandle; APosition: PVector3f; 
  ASize: PVector3f); cdecl; external AfterwarpLib;

procedure MeshVoxelComputeParameters(AMeshVoxel: PMeshVoxelHandle; ADimensions: PLongInt; ALevels: PByte; 
  AColors: PLibraryBool); cdecl; external AfterwarpLib;

function MeshVoxelVisualize(AMeshVoxel: PMeshVoxelHandle; ALevelMax: Byte; 
  AVisualizeFunc: TMeshVoxelVisualizeFunc; AUser: Pointer): TLibraryBool; cdecl; external AfterwarpLib;

function MeshVoxelIntersect(AMeshVoxel: PMeshVoxelHandle; AOrigin: PVector3f; ADirection: PVector3f; 
  AWorld: PMatrix4f; AView: PMatrix4f; ADistance: PSingle; 
  ATestsCount: PLongInt): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneMeshMaterialGetName(AMaterial: PSceneMeshMaterialHandle; AName: PAnsiChar; 
  ANameLength: PLongInt); cdecl; external AfterwarpLib;

procedure SceneMeshMaterialGetShading(AMaterial: PSceneMeshMaterialHandle; 
  AShading: PSceneMeshMaterialShading); cdecl; external AfterwarpLib;

procedure SceneMeshMaterialSetShading(AMaterial: PSceneMeshMaterialHandle; 
  AShading: PSceneMeshMaterialShading); cdecl; external AfterwarpLib;

function SceneMeshMaterialGetTexture(AMaterial: PSceneMeshMaterialHandle; 
  AType: Byte): PTextureHandle; cdecl; external AfterwarpLib;

function SceneMeshMaterialSetTexture(AMaterial: PSceneMeshMaterialHandle; ATexture: PTextureHandle; 
  AType: Byte): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneMeshMaterialReleaseTextures(
  AMaterial: PSceneMeshMaterialHandle); cdecl; external AfterwarpLib;

function SceneMeshMaterialGetRangeCount(
  AMaterial: PSceneMeshMaterialHandle): LongInt; cdecl; external AfterwarpLib;

function SceneMeshMaterialGetRange(AMaterial: PSceneMeshMaterialHandle; AIndex: LongInt; 
  ARange: PSceneMeshMaterialRange): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshMaterialSetRange(AMaterial: PSceneMeshMaterialHandle; AIndex: LongInt; 
  ARange: PSceneMeshMaterialRange): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshMaterialAddRange(AMaterial: PSceneMeshMaterialHandle; 
  ARange: PSceneMeshMaterialRange): LongInt; cdecl; external AfterwarpLib;

procedure SceneMeshMaterialClearRanges(AMaterial: PSceneMeshMaterialHandle); cdecl; external AfterwarpLib;

function SceneMeshMaterialCommit(AMaterial: PSceneMeshMaterialHandle; ADevice: PDeviceHandle; 
  AAttributes: TTextureAttributes): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshMaterialCopy(AMaterial: PSceneMeshMaterialHandle; 
  ASource: PSceneMeshMaterialHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshMaterialsCreate: PSceneMeshMaterialsHandle; cdecl; external AfterwarpLib;

procedure SceneMeshMaterialsDestroy(AMaterials: PSceneMeshMaterialsHandle); cdecl; external AfterwarpLib;

function SceneMeshMaterialsSetName(AMaterials: PSceneMeshMaterialsHandle; 
  AName: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneMeshMaterialsGetName(AMaterials: PSceneMeshMaterialsHandle; AName: PAnsiChar; 
  ANameLength: PLongInt); cdecl; external AfterwarpLib;

function SceneMeshMaterialsGetCount(
  AMaterials: PSceneMeshMaterialsHandle): LongInt; cdecl; external AfterwarpLib;

function SceneMeshMaterialsGetMaterial(AMaterials: PSceneMeshMaterialsHandle; 
  AIndex: LongInt): PSceneMeshMaterialHandle; cdecl; external AfterwarpLib;

function SceneMeshMaterialsAdd(AMaterials: PSceneMeshMaterialsHandle; 
  AName: PAnsiChar): LongInt; cdecl; external AfterwarpLib;

procedure SceneMeshMaterialsErase(AMaterials: PSceneMeshMaterialsHandle; 
  AIndex: LongInt); cdecl; external AfterwarpLib;

procedure SceneMeshMaterialsClear(AMaterials: PSceneMeshMaterialsHandle); cdecl; external AfterwarpLib;

function SceneMeshMaterialsCommit(AMaterials: PSceneMeshMaterialsHandle; ADevice: PDeviceHandle; 
  AAttributes: TTextureAttributes): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshMaterialsCopy(AMaterials: PSceneMeshMaterialsHandle; 
  AMaterialsAnother: PSceneMeshMaterialsHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneMeshMaterialsTakeAway(AMaterials: PSceneMeshMaterialsHandle; 
  AMaterialsAnother: PSceneMeshMaterialsHandle); cdecl; external AfterwarpLib;

function SceneMeshMaterialsTexturing(
  AMaterials: PSceneMeshMaterialsHandle): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshLatchesCreate: PSceneMeshLatchesHandle; cdecl; external AfterwarpLib;

procedure SceneMeshLatchesDestroy(ALatches: PSceneMeshLatchesHandle); cdecl; external AfterwarpLib;

function SceneMeshLatchesGetCount(ALatches: PSceneMeshLatchesHandle): LongInt; cdecl; external AfterwarpLib;

function SceneMeshLatchesGetLatch(ALatches: PSceneMeshLatchesHandle; AIndex: LongInt; 
  ALatch: PSceneMeshLatch): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshLatchesSetLatch(ALatches: PSceneMeshLatchesHandle; AIndex: LongInt; 
  ALatch: PSceneMeshLatch): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshLatchesGetLatchIndex(ALatches: PSceneMeshLatchesHandle; 
  AName: PAnsiChar): LongInt; cdecl; external AfterwarpLib;

function SceneMeshLatchesAdd(ALatches: PSceneMeshLatchesHandle; AName: PAnsiChar; AType: LongInt; 
  AGroup: LongInt; APosition: PVector3f; AOrientation: PQuaternion): LongInt; cdecl; external AfterwarpLib;

procedure SceneMeshLatchesErase(ALatches: PSceneMeshLatchesHandle; 
  AIndex: LongInt); cdecl; external AfterwarpLib;

procedure SceneMeshLatchesClear(ALatches: PSceneMeshLatchesHandle); cdecl; external AfterwarpLib;

function SceneMeshLatchesCopy(ALatches: PSceneMeshLatchesHandle; 
  ALatchesAnother: PSceneMeshLatchesHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure SceneMeshLatchesTakeAway(ALatches: PSceneMeshLatchesHandle; 
  ALatchesAnother: PSceneMeshLatchesHandle); cdecl; external AfterwarpLib;

function SceneMeshLatchesLoadFromFile(ALatches: PSceneMeshLatchesHandle; 
  AFileName: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshLatchesLoadFromFileInMemory(ALatches: PSceneMeshLatchesHandle; ABuffer: Pointer; 
  ABufferSize: LongWord): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshLatchesSaveToFile(ALatches: PSceneMeshLatchesHandle; 
  AFileName: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshLatchesGetWaypointDistance(ALatches: PSceneMeshLatchesHandle; 
  AGroup: LongInt): Single; cdecl; external AfterwarpLib;

procedure SceneMeshLatchesGetWaypointCouple(ALatches: PSceneMeshLatchesHandle; AGroup: LongInt; 
  ADistance: Single; APosition: PVector3f; AOrientation: PQuaternion); cdecl; external AfterwarpLib;

procedure SceneMeshLatchesInvalidateWaypoints(
  ALatches: PSceneMeshLatchesHandle); cdecl; external AfterwarpLib;

procedure SceneMeshGetName(ASceneMesh: PSceneMeshHandle; AMeshName: PAnsiChar; 
  AMeshNameLength: PLongInt); cdecl; external AfterwarpLib;

function SceneMeshGetPayload(ASceneMesh: PSceneMeshHandle): TObjectPayload; cdecl; external AfterwarpLib;

function SceneMeshGetModel(ASceneMesh: PSceneMeshHandle): PMeshModelHandle; cdecl; external AfterwarpLib;

function SceneMeshGetVoxel(ASceneMesh: PSceneMeshHandle): PMeshVoxelHandle; cdecl; external AfterwarpLib;

function SceneMeshGetMaterials(
  ASceneMesh: PSceneMeshHandle): PSceneMeshMaterialsHandle; cdecl; external AfterwarpLib;

function SceneMeshGetTags(ASceneMesh: PSceneMeshHandle): PMeshMetaTagsHandle; cdecl; external AfterwarpLib;

function SceneMeshGetLatches(
  ASceneMesh: PSceneMeshHandle): PSceneMeshLatchesHandle; cdecl; external AfterwarpLib;

procedure SceneMeshGetBounds(ASceneMesh: PSceneMeshHandle; ABoundsMin: PVector3f; 
  ABoundsMax: PVector3f); cdecl; external AfterwarpLib;

function SceneMeshGetScale(ASceneMesh: PSceneMeshHandle): Single; cdecl; external AfterwarpLib;

procedure SceneMeshGetSize(ASceneMesh: PSceneMeshHandle; ASize: PVector3f); cdecl; external AfterwarpLib;

function SceneMeshGetVertexElementsIndex(ASceneMesh: PSceneMeshHandle): Byte; cdecl; external AfterwarpLib;

procedure SceneMeshSetVertexElementsIndex(ASceneMesh: PSceneMeshHandle; 
  AVertexElementsIndex: Byte); cdecl; external AfterwarpLib;

procedure SceneMeshSetSlice(ASceneMesh: PSceneMeshHandle; AParent: PSceneMeshHandle; 
  AParentTag: PMeshMetaTagHandle); cdecl; external AfterwarpLib;

procedure SceneMeshGetSlice(ASceneMesh: PSceneMeshHandle; AParent: PPSceneMeshHandle; 
  AParentTag: PPMeshMetaTagHandle); cdecl; external AfterwarpLib;

function SceneMeshAutoDraw(ASceneMesh: PSceneMeshHandle; AScene: PSceneHandle; AMaterial: PObjectMaterial; 
  AColor: PFloatColor; ATopology: TPrimitiveTopology; AInstanceCount: LongInt; AElementCount: LongInt; 
  AFirstIndex: LongInt; ABaseVertex: LongInt; AOptions: LongWord; 
  ADrawCalls: PLongInt): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshAutoDrawSliced(ASceneMesh: PSceneMeshHandle; AScene: PSceneHandle; 
  AMaterial: PObjectMaterial; AColor: PFloatColor; ATopology: TPrimitiveTopology; AInstanceCount: LongInt; 
  AOptions: LongWord; ADrawCalls: PLongInt): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshesCreate(ADevice: PDeviceHandle): PSceneMeshesHandle; cdecl; external AfterwarpLib;

procedure SceneMeshesDestroy(ASceneMeshes: PSceneMeshesHandle); cdecl; external AfterwarpLib;

function SceneMeshesAdd(ASceneMeshes: PSceneMeshesHandle; AName: PAnsiChar; APayload: TObjectPayload; 
  ABoundsMin: PVector3f; ABoundsMax: PVector3f; 
  AScale: Single): PSceneMeshHandle; cdecl; external AfterwarpLib;

function SceneMeshesAddFromBuffer(ASceneMeshes: PSceneMeshesHandle; AName: PAnsiChar; 
  AMeshBuffer: PMeshBufferHandle; APayload: TObjectPayload; AVertexElements: PVertexElement; 
  AVertexElementCount: LongInt; ABoundsMin: PVector3f; ABoundsMax: PVector3f; AChannel: LongWord; 
  ASemanticIndex: LongWord; AScale: Single): PSceneMeshHandle; cdecl; external AfterwarpLib;

function SceneMeshesAddFromFile(ASceneMeshes: PSceneMeshesHandle; AName: PAnsiChar; AFileName: PAnsiChar; 
  APayload: TObjectPayload; AVertexElements: PVertexElement; AVertexElementCount: LongInt; 
  AChannel: LongWord; ASemanticIndex: LongWord; AOptions: PLongWord; AScale: Single; 
  AFeedback: TMeshLoadSaveFeedback; AFeedbackUser: Pointer; ADebug: PAnsiChar; 
  ADebugLength: PLongInt): PSceneMeshHandle; cdecl; external AfterwarpLib;

function SceneMeshesSlice(ASceneMeshes: PSceneMeshesHandle; AParent: PSceneMeshHandle; AType: Byte; 
  APrefix: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

function SceneMeshesGetDevice(ASceneMeshes: PSceneMeshesHandle): PDeviceHandle; cdecl; external AfterwarpLib;

function SceneMeshesGetCount(ASceneMeshes: PSceneMeshesHandle): LongInt; cdecl; external AfterwarpLib;

function SceneMeshesGetMeshByIndex(ASceneMeshes: PSceneMeshesHandle; 
  AIndex: LongInt): PSceneMeshHandle; cdecl; external AfterwarpLib;

function SceneMeshesGetMeshByName(ASceneMeshes: PSceneMeshesHandle; 
  AName: PAnsiChar): PSceneMeshHandle; cdecl; external AfterwarpLib;

function SceneMeshesPayload(ASceneMeshes: PSceneMeshesHandle; 
  APayload: TObjectPayload): PSceneMeshHandle; cdecl; external AfterwarpLib;

procedure SceneMeshesErase(ASceneMeshes: PSceneMeshesHandle; 
  ASceneMesh: PSceneMeshHandle); cdecl; external AfterwarpLib;

procedure SceneMeshesClear(ASceneMeshes: PSceneMeshesHandle); cdecl; external AfterwarpLib;

function ApplicationCreate(
  AConfiguration: PApplicationConfiguration): PApplicationHandle; cdecl; external AfterwarpLib;

procedure ApplicationDestroy(AApplication: PApplicationHandle); cdecl; external AfterwarpLib;

procedure ApplicationSetEvents(AApplication: PApplicationHandle; AEvents: PApplicationEvents; 
  AUser: Pointer); cdecl; external AfterwarpLib;

function ApplicationGetWindowHandle(
  AApplication: PApplicationHandle): TUntypedHandle; cdecl; external AfterwarpLib;

function ApplicationSetTitle(AApplication: PApplicationHandle; 
  ATitle: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

procedure ApplicationGetTitle(AApplication: PApplicationHandle; ATitle: PAnsiChar; 
  ATitleLength: PLongInt); cdecl; external AfterwarpLib;

function ApplicationSetIconTitle(AApplication: PApplicationHandle; 
  AIconTitle: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

procedure ApplicationGetIconTitle(AApplication: PApplicationHandle; AIconTitle: PAnsiChar; 
  AIconTitleLength: PLongInt); cdecl; external AfterwarpLib;

procedure ApplicationGetExecutablePath(AApplication: PApplicationHandle; APath: PAnsiChar; 
  APathLength: PLongInt); cdecl; external AfterwarpLib;

procedure ApplicationGetWindowRect(AApplication: PApplicationHandle; 
  ARect: PIntRect); cdecl; external AfterwarpLib;

procedure ApplicationSetWindowRect(AApplication: PApplicationHandle; 
  ARect: PIntRect); cdecl; external AfterwarpLib;

procedure ApplicationGetClientRect(AApplication: PApplicationHandle; 
  ARect: PIntRect); cdecl; external AfterwarpLib;

procedure ApplicationSetClientSize(AApplication: PApplicationHandle; 
  ASize: PPoint2i); cdecl; external AfterwarpLib;

procedure ApplicationGetMinimalSize(AApplication: PApplicationHandle; 
  ASize: PPoint2i); cdecl; external AfterwarpLib;

procedure ApplicationSetMinimalSize(AApplication: PApplicationHandle; 
  ASize: PPoint2i); cdecl; external AfterwarpLib;

function ApplicationGetWindowScale(AApplication: PApplicationHandle): Double; cdecl; external AfterwarpLib;

procedure ApplicationInvalidate(AApplication: PApplicationHandle); cdecl; external AfterwarpLib;

function ApplicationTranslateVirtualKey(AApplication: PApplicationHandle; 
  AVirtualKey: LongInt): TKey; cdecl; external AfterwarpLib;

function ApplicationConvertPortableKey(AApplication: PApplicationHandle; 
  AKey: TKey): LongInt; cdecl; external AfterwarpLib;

function ApplicationExecute(AApplication: PApplicationHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure ApplicationTerminate(AApplication: PApplicationHandle); cdecl; external AfterwarpLib;

function ApplicationGetWindowState(
  AApplication: PApplicationHandle): TApplicationWindowState; cdecl; external AfterwarpLib;

function ApplicationSetWindowState(AApplication: PApplicationHandle; 
  AWindowState: TApplicationWindowState): TLibraryBool; cdecl; external AfterwarpLib;

function ApplicationReadTextFromClipboard(AApplication: PApplicationHandle; AText: PAnsiChar; 
  ATextSize: PLongInt): TLibraryBool; cdecl; external AfterwarpLib;

function ApplicationWriteTextToClipboard(AApplication: PApplicationHandle; 
  AText: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

function ApplicationGetCursor(AApplication: PApplicationHandle): TAppCursor; cdecl; external AfterwarpLib;

function ApplicationSetCursor(AApplication: PApplicationHandle; 
  ACursor: TAppCursor): TLibraryBool; cdecl; external AfterwarpLib;

function ApplicationCaptureMouseInput(
  AApplication: PApplicationHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ApplicationReleaseMouseInput(
  AApplication: PApplicationHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ApplicationMouseInputCaptured(
  AApplication: PApplicationHandle): TLibraryBool; cdecl; external AfterwarpLib;

function ApplicationSetIcons(AApplication: PApplicationHandle; ASurfaces: PPSurfaceHandle; 
  ACount: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function ApplicationSetIconsFromFiles(AApplication: PApplicationHandle; AFileNames: PPAnsiChar; 
  AFileNameCount: LongInt): TLibraryBool; cdecl; external AfterwarpLib;

function ApplicationFileChooserDialog(AApplication: PApplicationHandle; AFilePath: PAnsiChar; 
  AFilePathLength: PLongInt; ADialog: TFileChooserDialog; AFilters: PAnsiChar; ACaption: PAnsiChar; 
  AAccept: PAnsiChar; AReject: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

function ActorCameraCreate(APosition: PVector3f; ARotation: PVector3f; 
  ADistance: Single): PActorCameraHandle; cdecl; external AfterwarpLib;

procedure ActorCameraDestroy(ACamera: PActorCameraHandle); cdecl; external AfterwarpLib;

procedure ActorCameraGetForward(ACamera: PActorCameraHandle; 
  AForward: PVector3f); cdecl; external AfterwarpLib;

procedure ActorCameraGetRight(ACamera: PActorCameraHandle; ARight: PVector3f); cdecl; external AfterwarpLib;

procedure ActorCameraGetCeiling(ACamera: PActorCameraHandle; 
  ACeiling: PVector3f); cdecl; external AfterwarpLib;

procedure ActorCameraGetPosition(ACamera: PActorCameraHandle; 
  APosition: PVector3f); cdecl; external AfterwarpLib;

function ActorCameraSetPosition(ACamera: PActorCameraHandle; 
  APosition: PVector3f): TLibraryBool; cdecl; external AfterwarpLib;

procedure ActorCameraGetRotation(ACamera: PActorCameraHandle; 
  ARotation: PVector4f); cdecl; external AfterwarpLib;

function ActorCameraSetRotation(ACamera: PActorCameraHandle; 
  ARotation: PVector4f): TLibraryBool; cdecl; external AfterwarpLib;

function ActorCameraGetDistance(ACamera: PActorCameraHandle): Single; cdecl; external AfterwarpLib;

procedure ActorCameraSetDistance(ACamera: PActorCameraHandle; 
  ADistance: Single); cdecl; external AfterwarpLib;

procedure ActorCameraGetQuaternion(ACamera: PActorCameraHandle; 
  AQuaternion: PQuaternion); cdecl; external AfterwarpLib;

function ActorCameraSetQuaternion(ACamera: PActorCameraHandle; 
  AQuaternion: PQuaternion): TLibraryBool; cdecl; external AfterwarpLib;

procedure ActorCameraGetView(ACamera: PActorCameraHandle; AView: PMatrix4f); cdecl; external AfterwarpLib;

procedure ActorCameraZoom(ACamera: PActorCameraHandle; APosition: PPoint2f; ASize: PPoint2f; 
  AProjection: PMatrix4f; ADelta: Single); cdecl; external AfterwarpLib;

procedure ActorCameraZoomOrtho(ACamera: PActorCameraHandle; APosition: PPoint2f; ASize: PPoint2f; 
  ADistance: Single; AAdjustedDistance: Single; AProjection: PMatrix4f; 
  AAdjustedProjection: PMatrix4f); cdecl; external AfterwarpLib;

procedure ActorCameraGetConstraints(ACamera: PActorCameraHandle; 
  AConstraints: PCameraConstraints); cdecl; external AfterwarpLib;

procedure ActorCameraSetConstraints(ACamera: PActorCameraHandle; 
  AConstraints: PCameraConstraints); cdecl; external AfterwarpLib;

function ActorCameraCommand(ACamera: PActorCameraHandle; ACommand: TCameraCommand; APosition: PVector3f; 
  ASize: PPoint2f; ASense: PVector3f; AProjection: PMatrix4f): TLibraryBool; cdecl; external AfterwarpLib;

function TimerCreate: PTimerHandle; cdecl; external AfterwarpLib;

procedure TimerDestroy(ATimer: PTimerHandle); cdecl; external AfterwarpLib;

function TimerGetSpeed(ATimer: PTimerHandle): Double; cdecl; external AfterwarpLib;

procedure TimerSetSpeed(ATimer: PTimerHandle; ASpeed: Double); cdecl; external AfterwarpLib;

function TimerNextSlice(ATimer: PTimerHandle): TLibraryBool; cdecl; external AfterwarpLib;

function TimerUpdateNextSlice(ATimer: PTimerHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure TimerUpdate(ATimer: PTimerHandle); cdecl; external AfterwarpLib;

procedure TimerReset(ATimer: PTimerHandle); cdecl; external AfterwarpLib;

function TimerGetFrameRate(ATimer: PTimerHandle): Single; cdecl; external AfterwarpLib;

function TimerGetLatency(ATimer: PTimerHandle): UInt64; cdecl; external AfterwarpLib;

function TimerGetTimeSlice(ATimer: PTimerHandle): Int64; cdecl; external AfterwarpLib;

function TimerGetSkippedTimeSlices(ATimer: PTimerHandle): Int64; cdecl; external AfterwarpLib;

procedure TimerTrimSkippedTimeSlices(ATimer: PTimerHandle; 
  ASlicesToTrim: Int64); cdecl; external AfterwarpLib;

function TimerExtractTokens(ATimer: PTimerHandle): LongInt; cdecl; external AfterwarpLib;

function WidgetCreate(AManager: PWidgetHandle; AClassName: PAnsiChar; AInstanceName: PAnsiChar; 
  APayload: TObjectPayload): PWidgetHandle; cdecl; external AfterwarpLib;

function WidgetManagerCreate(AApplication: PApplicationHandle; ATextRenderer: PTextRendererHandle; 
  AInstanceName: PAnsiChar; APayload: TObjectPayload; AFormat: TPixelFormat; AMultisamples: LongInt; 
  AAttributes: LongWord): PWidgetHandle; cdecl; external AfterwarpLib;

procedure WidgetDestroy(AWidget: PWidgetHandle); cdecl; external AfterwarpLib;

function WidgetGetManager(AWidget: PWidgetHandle): PWidgetHandle; cdecl; external AfterwarpLib;

function WidgetGetPayload(AWidget: PWidgetHandle): TObjectPayload; cdecl; external AfterwarpLib;

function WidgetGetParent(AWidget: PWidgetHandle): PWidgetHandle; cdecl; external AfterwarpLib;

function WidgetSetParent(AWidget: PWidgetHandle; 
  AParent: PWidgetHandle): TLibraryBool; cdecl; external AfterwarpLib;

procedure WidgetLocalToScreen(AWidget: PWidgetHandle; AScreenPos: PPoint2f; 
  ALocalPos: PPoint2f); cdecl; external AfterwarpLib;

procedure WidgetScreenToLocal(AWidget: PWidgetHandle; ALocalPos: PPoint2f; 
  AScreenPos: PPoint2f); cdecl; external AfterwarpLib;

procedure WidgetBringToFront(AWidget: PWidgetHandle); cdecl; external AfterwarpLib;

procedure WidgetSendToBack(AWidget: PWidgetHandle); cdecl; external AfterwarpLib;

procedure WidgetInvalidate(AWidget: PWidgetHandle); cdecl; external AfterwarpLib;

procedure WidgetAccomodate(AWidget: PWidgetHandle); cdecl; external AfterwarpLib;

function WidgetUpdate(AWidget: PWidgetHandle; ALatency: Double): TLibraryBool; cdecl; external AfterwarpLib;

procedure WidgetAcceptMouse(AWidget: PWidgetHandle; AEvent: TMouseEvent; AButton: TMouseButton; 
  APosition: PPoint2f); cdecl; external AfterwarpLib;

procedure WidgetAcceptKey(AWidget: PWidgetHandle; AEvent: TKeyEvent; AKey: TKey; 
  ACharCode: TUnicodeChar); cdecl; external AfterwarpLib;

function WidgetGetChildCount(AWidget: PWidgetHandle): LongInt; cdecl; external AfterwarpLib;

function WidgetGetChildByIndex(AWidget: PWidgetHandle; 
  AIndex: LongInt): PWidgetHandle; cdecl; external AfterwarpLib;

function WidgetGetChildIndex(AWidget: PWidgetHandle; 
  AChild: PWidgetHandle): LongInt; cdecl; external AfterwarpLib;

function WidgetFindAt(AWidget: PWidgetHandle; 
  APosition: PPoint2f): PWidgetHandle; cdecl; external AfterwarpLib;

function WidgetInvokeEvent(AWidget: PWidgetHandle; 
  AEventName: PAnsiChar): TLibraryBool; cdecl; external AfterwarpLib;

procedure WidgetSetExternalEvent(AWidget: PWidgetHandle; AEvent: TWidgetExternalEvent; 
  AUser: Pointer); cdecl; external AfterwarpLib;

procedure WidgetGetExternalEvent(AWidget: PWidgetHandle; AEvent: PWidgetExternalEvent; 
  AUser: Pointer); cdecl; external AfterwarpLib;

function WidgetSetProperty(AWidget: PWidgetHandle; APropertyName: PAnsiChar; 
  AValueType: TWidgetPropertyType; AValue: Pointer; 
  AInvokeChanged: TLibraryBool): TLibraryBool; cdecl; external AfterwarpLib;

function WidgetGetProperty(AWidget: PWidgetHandle; APropertyName: PAnsiChar; 
  AValueType: TWidgetPropertyType; AValue: Pointer): TLibraryBool; cdecl; external AfterwarpLib;

function WidgetGetPropertyAsString(AWidget: PWidgetHandle; APropertyName: PAnsiChar; AValue: PAnsiChar; 
  AValueLength: PLongInt): TLibraryBool; cdecl; external AfterwarpLib;

function WidgetGetPropertyCount(AWidget: PWidgetHandle): LongInt; cdecl; external AfterwarpLib;

function WidgetPropertyIdentify(AWidget: PWidgetHandle; 
  AProperty: PWidgetProperty): TLibraryBool; cdecl; external AfterwarpLib;

function WidgetManagerGetApplication(
  AWidget: PWidgetHandle): PApplicationHandle; cdecl; external AfterwarpLib;

function WidgetManagerGetTextRenderer(
  AWidget: PWidgetHandle): PTextRendererHandle; cdecl; external AfterwarpLib;

function WidgetManagerGetWidgetByName(AWidget: PWidgetHandle; 
  AName: PAnsiChar): PWidgetHandle; cdecl; external AfterwarpLib;

function WidgetManagerGetWidgetByPayload(AWidget: PWidgetHandle; 
  APayload: TObjectPayload): PWidgetHandle; cdecl; external AfterwarpLib;

function WidgetManagerPresent(AWidget: PWidgetHandle): TLibraryBool; cdecl; external AfterwarpLib;

function WidgetManagerGetTexture(AWidget: PWidgetHandle; 
  ATextureType: TWidgetManagerTextureType): PTextureHandle; cdecl; external AfterwarpLib;

function WidgetManagerBatchCount(AWidget: PWidgetHandle): LongInt; cdecl; external AfterwarpLib;

function WidgetManagerGetFormat(AWidget: PWidgetHandle): TPixelFormat; cdecl; external AfterwarpLib;

function WidgetManagerGetMultisamples(AWidget: PWidgetHandle): LongInt; cdecl; external AfterwarpLib;

function WidgetManagerGetAttributes(AWidget: PWidgetHandle): LongWord; cdecl; external AfterwarpLib;

procedure RandomSequenceInit(AState: PUInt64); cdecl; external AfterwarpLib;

procedure RandomSequenceInitBySeed(AState: PUInt64; ASeed: UInt64); cdecl; external AfterwarpLib;

function RandomSequenceGenerate(AState: PUInt64): LongWord; cdecl; external AfterwarpLib;

function RandomSequenceGenerate64(AState: PUInt64): UInt64; cdecl; external AfterwarpLib;

function RandomSequenceGenerateFloat(AState: PUInt64): Single; cdecl; external AfterwarpLib;

function RandomSequenceGenerateDouble(AState: PUInt64): Double; cdecl; external AfterwarpLib;

function RandomSequenceGenerateRanged(AState: PUInt64; 
  ARange: LongInt): LongInt; cdecl; external AfterwarpLib;

function RandomSequenceGenerateGaussian(AState: PUInt64): Single; cdecl; external AfterwarpLib;

procedure RayCreate(AOrigin: PVector3f; ADirection: PVector3f; APosition: PPoint2f; ASurfaceSize: PPoint2f; 
  AViewInverse: PMatrix4f; AProjection: PMatrix4f); cdecl; external AfterwarpLib;

function RayIntersectTriangle(AOrigin: PVector3f; ADirection: PVector3f; AVertex1: PVector3f; 
  AVertex2: PVector3f; AVertex3: PVector3f; ABackFacing: TLibraryBool; AIntersection: PPoint2f; 
  ADistance: PSingle): TLibraryBool; cdecl; external AfterwarpLib;

function RayIntersectCubeVolume(AOrigin: PVector3f; ADirection: PVector3f; AWorld: PMatrix4f; 
  ADistance: PSingle): TLibraryBool; cdecl; external AfterwarpLib;

function RayIntersectPlane(AOrigin: PVector3f; ADirection: PVector3f; APlanePoint: PVector3f; 
  APlaneNormal: PVector3f; AIntersection: PVector3f; 
  ADistance: PSingle): TLibraryBool; cdecl; external AfterwarpLib;

function PixelFormatValid(AFormat: TPixelFormat): TLibraryBool; cdecl; external AfterwarpLib;

function PixelFormatBits(AFormat: TPixelFormat): LongWord; cdecl; external AfterwarpLib;

procedure PixelFormatConvert(ADest: Pointer; ASource: Pointer; ADestFormat: TPixelFormat; 
  ASourceFormat: TPixelFormat); cdecl; external AfterwarpLib;

procedure PixelFormatConvertArray(ADest: Pointer; ASource: Pointer; ADestFormat: TPixelFormat; 
  ASourceFormat: TPixelFormat; ADestPitch: LongWord; ASourcePitch: LongWord; AWidth: LongInt; 
  AHeight: LongInt); cdecl; external AfterwarpLib;

function MakeColor(AColor: TIntColor; AAlpha: LongInt): TIntColor; cdecl; external AfterwarpLib;

function MakeColorF(AColor: TIntColor; AAlpha: Single): TIntColor; cdecl; external AfterwarpLib;

function MakeColorWithGray(AColor: TIntColor; AGray: LongInt; 
  AAlpha: LongInt): TIntColor; cdecl; external AfterwarpLib;

function MakeColorWithGrayF(AColor: TIntColor; AGray: Single; 
  AAlpha: Single): TIntColor; cdecl; external AfterwarpLib;

function MakeColorRGB(ARed: LongInt; AGreen: LongInt; ABlue: LongInt; 
  AAlpha: LongInt): TIntColor; cdecl; external AfterwarpLib;

function MakeColorRGBF(ARed: Single; AGreen: Single; ABlue: Single; 
  AAlpha: Single): TIntColor; cdecl; external AfterwarpLib;

function MakeColorGray(AGray: LongInt; AAlpha: LongInt): TIntColor; cdecl; external AfterwarpLib;

function MakeColorGrayF(AGray: Single; AAlpha: Single): TIntColor; cdecl; external AfterwarpLib;

function MakeColorAlpha(AAlpha: LongInt): TIntColor; cdecl; external AfterwarpLib;

function MakeColorAlphaF(AAlpha: Single): TIntColor; cdecl; external AfterwarpLib;

function GetColorAlpha(AColor: TIntColor): LongInt; cdecl; external AfterwarpLib;

function GetColorAlphaF(AColor: TIntColor): Single; cdecl; external AfterwarpLib;

function PremultiplyAlpha(AColor: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function UnpremultiplyAlpha(AColor: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function DisplaceRB(AColor: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function InvertColor(AColor: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function AddColors(AColor1: TIntColor; AColor2: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function SubtractColors(AColor1: TIntColor; AColor2: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function MultiplyColors(AColor1: TIntColor; AColor2: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function AverageColors(AColor1: TIntColor; AColor2: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function AverageFourColors(AColor1: TIntColor; AColor2: TIntColor; AColor3: TIntColor; 
  AColor4: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function AverageSixColors(AColor1: TIntColor; AColor2: TIntColor; AColor3: TIntColor; AColor4: TIntColor; 
  AColor5: TIntColor; AColor6: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function BlendColors(AColor1: TIntColor; AColor2: TIntColor; 
  AAlpha: LongInt): TIntColor; cdecl; external AfterwarpLib;

function BlendFourColors(ATopLeft: TIntColor; ATopRight: TIntColor; ABottomRight: TIntColor; 
  ABottomLeft: TIntColor; AAlphaX: LongInt; AAlphaY: LongInt; 
  AHorizontal: TLibraryBool): TIntColor; cdecl; external AfterwarpLib;

function ComposeColors(ASource: TIntColor; ADest: TIntColor): TIntColor; cdecl; external AfterwarpLib;

function ColorToGray(AColor: TIntColor): LongInt; cdecl; external AfterwarpLib;

function ColorToGray16(AColor: TIntColor): LongInt; cdecl; external AfterwarpLib;

function ColorToGrayF(AColor: TIntColor): Single; cdecl; external AfterwarpLib;

function Lerp(AValue1: Single; AValue2: Single; ATheta: Single): Single; cdecl; external AfterwarpLib;

function Cubic(APredValue1: Single; AValue1: Single; AValue2: Single; ASuccValue2: Single; 
  ATheta: Single): Single; cdecl; external AfterwarpLib;

function CatmullRom(APredValue1: Single; AValue1: Single; AValue2: Single; ASuccValue2: Single; 
  ATheta: Single): Single; cdecl; external AfterwarpLib;

function Hermite(APredValue1: Single; AValue1: Single; AValue2: Single; ASuccValue2: Single; ATheta: Single; 
  ATension: Single; ABias: Single): Single; cdecl; external AfterwarpLib;

function SmoothStep(AValue1: Single; AValue2: Single; ATheta: Single): Single; cdecl; external AfterwarpLib;

function SmootherStep(AValue1: Single; AValue2: Single; 
  ATheta: Single): Single; cdecl; external AfterwarpLib;

function SineTransform(AValue: Single): Single; cdecl; external AfterwarpLib;

function SineAccelerate(AValue: Single): Single; cdecl; external AfterwarpLib;

function SineDecelerate(AValue: Single): Single; cdecl; external AfterwarpLib;

function SineCycle(AValue: Single): Single; cdecl; external AfterwarpLib;

function SineTwoCycle(AValue: Single): Single; cdecl; external AfterwarpLib;

function BiasTransform(AValue: Single; ABias: Single): Single; cdecl; external AfterwarpLib;

function GainTransform(AValue: Single; AGain: Single): Single; cdecl; external AfterwarpLib;

procedure MeshBoundsToMatrixModel(AModel: PMatrix4f; AMinBounds: PVector3f; AMaxBounds: PVector3f; 
  AAligns: PMeshAligns; AScale: Single); cdecl; external AfterwarpLib;

procedure MeshBoundsToMatrixVolume(AVolume: PMatrix4f; AMinBounds: PVector3f; AMaxBounds: PVector3f; 
  AAligns: PMeshAligns; AScale: Single); cdecl; external AfterwarpLib;

procedure MeshBoundsTagOffset(AMeshMinBounds: PVector3f; AMeshMaxBounds: PVector3f; 
  ATagMinBounds: PVector3f; ATagMaxBounds: PVector3f; AOffset: PVector3f); cdecl; external AfterwarpLib;

procedure MeshBoundsToMatrixVolumeTag(AMeshMinBounds: PVector3f; AMeshMaxBounds: PVector3f; 
  ATagMinBounds: PVector3f; ATagMaxBounds: PVector3f; AVolume: PMatrix4f; 
  ASizeBias: Single); cdecl; external AfterwarpLib;

procedure VolumeCalculateNearFarPlanes(AWorldView: PMatrix4f; ANearPlane: PSingle; 
  AFarPlane: PSingle); cdecl; external AfterwarpLib;

procedure VolumeCalculateVisibleFrame(AWorldViewProjection: PMatrix4f; ASurfaceSize: PPoint2f; 
  AVisibleFrame: PFloatRect); cdecl; external AfterwarpLib;

function VertexElementsEstimatePitch(AChannel: LongWord; AVertexElements: PVertexElement; 
  AVertexElementCount: LongInt): LongWord; cdecl; external AfterwarpLib;

function GetSystemTicks: UInt64; cdecl; external AfterwarpLib;

implementation

end.