1380 lines
39 KiB
C#
Executable File
1380 lines
39 KiB
C#
Executable File
//
|
|
// Copyright 2017-2023 Valve Corporation.
|
|
//
|
|
// 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.
|
|
//
|
|
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
using UnityEngine;
|
|
|
|
namespace SteamAudio
|
|
{
|
|
// CONSTANTS
|
|
|
|
public static class Constants
|
|
{
|
|
public const uint kVersionMajor = 4;
|
|
public const uint kVersionMinor = 6;
|
|
public const uint kVersionPatch = 0;
|
|
public const uint kVersion = (kVersionMajor << 16) | (kVersionMinor << 8) | kVersionPatch;
|
|
}
|
|
|
|
// ENUMERATIONS
|
|
|
|
public enum Bool
|
|
{
|
|
False,
|
|
True
|
|
}
|
|
|
|
public enum Error
|
|
{
|
|
Success,
|
|
Failure,
|
|
OutOfMemory,
|
|
Initialization
|
|
}
|
|
|
|
public enum LogLevel
|
|
{
|
|
Info,
|
|
Warning,
|
|
Error,
|
|
Debug
|
|
}
|
|
|
|
public enum SIMDLevel
|
|
{
|
|
SSE2,
|
|
SSE4,
|
|
AVX,
|
|
AVX2,
|
|
AVX512,
|
|
NEON = SSE2
|
|
}
|
|
|
|
[Flags]
|
|
public enum ContextFlags
|
|
{
|
|
Validation = 1 << 0,
|
|
Force32Bit = 0x7fffffff
|
|
}
|
|
|
|
public enum OpenCLDeviceType
|
|
{
|
|
Any,
|
|
CPU,
|
|
GPU
|
|
}
|
|
|
|
public enum SceneType
|
|
{
|
|
Default,
|
|
Embree,
|
|
RadeonRays,
|
|
#if UNITY_2019_2_OR_NEWER
|
|
[InspectorName("Unity")]
|
|
#endif
|
|
Custom
|
|
}
|
|
|
|
public enum HRTFType
|
|
{
|
|
Default,
|
|
SOFA
|
|
}
|
|
|
|
public enum HRTFNormType
|
|
{
|
|
None,
|
|
RMS
|
|
}
|
|
|
|
public enum ProbeGenerationType
|
|
{
|
|
Centroid,
|
|
UniformFloor
|
|
}
|
|
|
|
public enum BakedDataVariation
|
|
{
|
|
Reverb,
|
|
StaticSource,
|
|
StaticListener,
|
|
Dynamic
|
|
}
|
|
|
|
public enum BakedDataType
|
|
{
|
|
Reflections,
|
|
Pathing
|
|
}
|
|
|
|
[Flags]
|
|
public enum SimulationFlags
|
|
{
|
|
Direct = 1 << 0,
|
|
Reflections = 1 << 1,
|
|
Pathing = 1 << 2
|
|
}
|
|
|
|
[Flags]
|
|
public enum DirectSimulationFlags
|
|
{
|
|
DistanceAttenuation = 1 << 0,
|
|
AirAbsorption = 1 << 1,
|
|
Directivity = 1 << 2,
|
|
Occlusion = 1 << 3,
|
|
Transmission = 1 << 4
|
|
}
|
|
|
|
public enum HRTFInterpolation
|
|
{
|
|
Nearest,
|
|
Bilinear
|
|
}
|
|
|
|
public enum DistanceAttenuationModelType
|
|
{
|
|
Default,
|
|
InverseDistance,
|
|
Callback
|
|
}
|
|
|
|
public enum AirAbsorptionModelType
|
|
{
|
|
Default,
|
|
Exponential,
|
|
Callback
|
|
}
|
|
|
|
public enum OcclusionType
|
|
{
|
|
Raycast,
|
|
Volumetric
|
|
}
|
|
|
|
[Flags]
|
|
public enum DirectEffectFlags
|
|
{
|
|
ApplyDistanceAttenuation = 1 << 0,
|
|
ApplyAirAbsorption = 1 << 1,
|
|
ApplyDirectivity = 1 << 2,
|
|
ApplyOcclusion = 1 << 3,
|
|
ApplyTransmission = 1 << 4
|
|
}
|
|
|
|
public enum TransmissionType
|
|
{
|
|
FrequencyIndependent,
|
|
FrequencyDependent
|
|
}
|
|
|
|
public enum ReflectionEffectType
|
|
{
|
|
Convolution,
|
|
Parametric,
|
|
Hybrid,
|
|
#if UNITY_2019_2_OR_NEWER
|
|
[InspectorName("TrueAudio Next")]
|
|
#endif
|
|
TrueAudioNext
|
|
}
|
|
|
|
[Flags]
|
|
public enum ReflectionsBakeFlags
|
|
{
|
|
BakeConvolution = 1 << 0,
|
|
BakeParametric = 1 << 1
|
|
}
|
|
|
|
// CALLBACKS
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate void ProgressCallback(float progress, IntPtr userData);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate void LogCallback(LogLevel level, string message);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate IntPtr AllocateCallback(UIntPtr size, UIntPtr alignment);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate void FreeCallback(IntPtr memoryBlock);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate void ClosestHitCallback(ref Ray ray, float minDistance, float maxDistance, out Hit hit, IntPtr userData);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate void AnyHitCallback(ref Ray ray, float minDistance, float maxDistance, out byte occluded, IntPtr userData);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate void BatchedClosestHitCallback(int numRays, Ray[] rays, float[] minDistances, float[] maxDistances, [Out] Hit[] hits, IntPtr userData);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate void BatchedAnyHitCallback(int numRays, Ray[] rays, float[] minDistances, float[] maxDistances, [Out] byte[] occluded, IntPtr userData);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate float DistanceAttenuationCallback(float distance, IntPtr userData);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate float AirAbsorptionCallback(float distance, int band, IntPtr userData);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate float DirectivityCallback(Vector3 direction, IntPtr userData);
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
|
|
public delegate void PathingVisualizationCallback(Vector3 from, Vector3 to, Bool occluded, IntPtr userData);
|
|
|
|
// STRUCTURES
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct ContextSettings
|
|
{
|
|
public uint version;
|
|
public LogCallback logCallback;
|
|
public AllocateCallback allocateCallback;
|
|
public FreeCallback freeCallback;
|
|
public SIMDLevel simdLevel;
|
|
public ContextFlags flags;
|
|
}
|
|
|
|
[Serializable]
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct Vector3
|
|
{
|
|
public float x;
|
|
public float y;
|
|
public float z;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct Matrix4x4
|
|
{
|
|
public float m00;
|
|
public float m01;
|
|
public float m02;
|
|
public float m03;
|
|
public float m10;
|
|
public float m11;
|
|
public float m12;
|
|
public float m13;
|
|
public float m20;
|
|
public float m21;
|
|
public float m22;
|
|
public float m23;
|
|
public float m30;
|
|
public float m31;
|
|
public float m32;
|
|
public float m33;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct Box
|
|
{
|
|
public Vector3 minCoordinates;
|
|
public Vector3 maxCoordinates;
|
|
}
|
|
|
|
[Serializable]
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct Sphere
|
|
{
|
|
public Vector3 center;
|
|
public float radius;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct CoordinateSpace3
|
|
{
|
|
public Vector3 right;
|
|
public Vector3 up;
|
|
public Vector3 ahead;
|
|
public Vector3 origin;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct SerializedObjectSettings
|
|
{
|
|
public IntPtr data;
|
|
public UIntPtr size;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct EmbreeDeviceSettings { }
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct OpenCLDeviceSettings
|
|
{
|
|
public OpenCLDeviceType type;
|
|
public int numCUsToReserve;
|
|
public float fractionCUsForIRUpdate;
|
|
public Bool requiresTAN;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct OpenCLDeviceDesc
|
|
{
|
|
public IntPtr platform;
|
|
public string platformName;
|
|
public string platformVendor;
|
|
public string platformVersion;
|
|
public IntPtr device;
|
|
public string deviceName;
|
|
public string deviceVendor;
|
|
public string deviceVersion;
|
|
public OpenCLDeviceType type;
|
|
public int numConvolutionCUs;
|
|
public int numIRUpdateCUs;
|
|
public int granularity;
|
|
public float perfScore;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct RadeonRaysDeviceSettings { }
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct TrueAudioNextDeviceSettings
|
|
{
|
|
public int frameSize;
|
|
public int irSize;
|
|
public int order;
|
|
public int maxSources;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct Triangle
|
|
{
|
|
public int index0;
|
|
public int index1;
|
|
public int index2;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct Material
|
|
{
|
|
public float absorptionLow;
|
|
public float absorptionMid;
|
|
public float absorptionHigh;
|
|
public float scattering;
|
|
public float transmissionLow;
|
|
public float transmissionMid;
|
|
public float transmissionHigh;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct Ray
|
|
{
|
|
public Vector3 origin;
|
|
public Vector3 direction;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct Hit
|
|
{
|
|
public float distance;
|
|
public int triangleIndex;
|
|
public int objectIndex;
|
|
public int materialIndex;
|
|
public Vector3 normal;
|
|
public IntPtr material;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct SceneSettings
|
|
{
|
|
public SceneType type;
|
|
public ClosestHitCallback closestHitCallback;
|
|
public AnyHitCallback anyHitCallback;
|
|
public BatchedClosestHitCallback batchedClosestHitCallback;
|
|
public BatchedAnyHitCallback batchedAnyHitCallback;
|
|
public IntPtr userData;
|
|
public IntPtr embreeDevice;
|
|
public IntPtr radeonRaysDevice;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct StaticMeshSettings
|
|
{
|
|
public int numVertices;
|
|
public int numTriangles;
|
|
public int numMaterials;
|
|
public IntPtr vertices;
|
|
public IntPtr triangles;
|
|
public IntPtr materialIndices;
|
|
public IntPtr materials;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct InstancedMeshSettings
|
|
{
|
|
public IntPtr subScene;
|
|
public Matrix4x4 transform;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct AudioSettings
|
|
{
|
|
public int samplingRate;
|
|
public int frameSize;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct HRTFSettings
|
|
{
|
|
public HRTFType type;
|
|
public string sofaFileName;
|
|
public IntPtr sofaFileData;
|
|
public int sofaFileDataSize;
|
|
public float volume;
|
|
public HRTFNormType normType;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct ProbeGenerationParams
|
|
{
|
|
public ProbeGenerationType type;
|
|
public float spacing;
|
|
public float height;
|
|
public Matrix4x4 transform;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
[Serializable]
|
|
public struct BakedDataIdentifier
|
|
{
|
|
public BakedDataType type;
|
|
public BakedDataVariation variation;
|
|
public Sphere endpointInfluence;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct ReflectionsBakeParams
|
|
{
|
|
public IntPtr scene;
|
|
public IntPtr probeBatch;
|
|
public SceneType sceneType;
|
|
public BakedDataIdentifier identifier;
|
|
public ReflectionsBakeFlags flags;
|
|
public int numRays;
|
|
public int numDiffuseSamples;
|
|
public int numBounces;
|
|
public float simulatedDuration;
|
|
public float savedDuration;
|
|
public int order;
|
|
public int numThreads;
|
|
public int rayBatchSize;
|
|
public float irradianceMinDistance;
|
|
public int bakeBatchSize;
|
|
public IntPtr openCLDevice;
|
|
public IntPtr radeonRaysDevice;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct PathBakeParams
|
|
{
|
|
public IntPtr scene;
|
|
public IntPtr probeBatch;
|
|
public BakedDataIdentifier identifier;
|
|
public int numSamples;
|
|
public float radius;
|
|
public float threshold;
|
|
public float visRange;
|
|
public float pathRange;
|
|
public int numThreads;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct DistanceAttenuationModel
|
|
{
|
|
public DistanceAttenuationModelType type;
|
|
public float minDistance;
|
|
public DistanceAttenuationCallback callback;
|
|
public IntPtr userData;
|
|
public Bool dirty;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct AirAbsorptionModel
|
|
{
|
|
public AirAbsorptionModelType type;
|
|
public float coefficientsLow;
|
|
public float coefficientsMid;
|
|
public float coefficientsHigh;
|
|
public AirAbsorptionCallback callback;
|
|
public IntPtr userData;
|
|
public Bool dirty;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct Directivity
|
|
{
|
|
public float dipoleWeight;
|
|
public float dipolePower;
|
|
public DirectivityCallback callback;
|
|
public IntPtr userData;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct SimulationSettings
|
|
{
|
|
public SimulationFlags flags;
|
|
public SceneType sceneType;
|
|
public ReflectionEffectType reflectionType;
|
|
public int maxNumOcclusionSamples;
|
|
public int maxNumRays;
|
|
public int numDiffuseSamples;
|
|
public float maxDuration;
|
|
public int maxOrder;
|
|
public int maxNumSources;
|
|
public int numThreads;
|
|
public int rayBatchSize;
|
|
public int numVisSamples;
|
|
public int samplingRate;
|
|
public int frameSize;
|
|
public IntPtr openCLDevice;
|
|
public IntPtr radeonRaysDevice;
|
|
public IntPtr tanDevice;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct SourceSettings
|
|
{
|
|
public SimulationFlags flags;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct SimulationInputs
|
|
{
|
|
public SimulationFlags flags;
|
|
public DirectSimulationFlags directFlags;
|
|
public CoordinateSpace3 source;
|
|
public DistanceAttenuationModel distanceAttenuationModel;
|
|
public AirAbsorptionModel airAbsorptionModel;
|
|
public Directivity directivity;
|
|
public OcclusionType occlusionType;
|
|
public float occlusionRadius;
|
|
public int numOcclusionSamples;
|
|
public float reverbScaleLow;
|
|
public float reverbScaleMid;
|
|
public float reverbScaleHigh;
|
|
public float hybridReverbTransitionTime;
|
|
public float hybridReverbOverlapPercent;
|
|
public Bool baked;
|
|
public BakedDataIdentifier bakedDataIdentifier;
|
|
public IntPtr pathingProbes;
|
|
public float visRadius;
|
|
public float visThreshold;
|
|
public float visRange;
|
|
public int pathingOrder;
|
|
public Bool enableValidation;
|
|
public Bool findAlternatePaths;
|
|
public int numTransmissionRays;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct SimulationSharedInputs
|
|
{
|
|
public CoordinateSpace3 listener;
|
|
public int numRays;
|
|
public int numBounces;
|
|
public float duration;
|
|
public int order;
|
|
public float irradianceMinDistance;
|
|
public PathingVisualizationCallback pathingVisualizationCallback;
|
|
public IntPtr pathingUserData;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct DirectEffectParams
|
|
{
|
|
public DirectEffectFlags flags;
|
|
public TransmissionType transmissionType;
|
|
public float distanceAttenuation;
|
|
public float airAbsorptionLow;
|
|
public float airAbsorptionMid;
|
|
public float airAbsorptionHigh;
|
|
public float directivity;
|
|
public float occlusion;
|
|
public float transmissionLow;
|
|
public float transmissionMid;
|
|
public float transmissionHigh;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct ReflectionEffectParams
|
|
{
|
|
public ReflectionEffectType type;
|
|
public IntPtr ir;
|
|
public float reverbTimesLow;
|
|
public float reverbTimesMid;
|
|
public float reverbTimesHigh;
|
|
public float eqLow;
|
|
public float eqMid;
|
|
public float eqHigh;
|
|
public int delay;
|
|
public int numChannels;
|
|
public int irSize;
|
|
public IntPtr tanDevice;
|
|
public int tanSlot;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct PathEffectParams
|
|
{
|
|
public float eqCoeffsLow;
|
|
public float eqCoeffsMid;
|
|
public float eqCoeffsHigh;
|
|
public IntPtr shCoeffs;
|
|
public int order;
|
|
public Bool binaural;
|
|
public IntPtr hrtf;
|
|
public CoordinateSpace3 listener;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct SimulationOutputs
|
|
{
|
|
public DirectEffectParams direct;
|
|
public ReflectionEffectParams reflections;
|
|
public PathEffectParams pathing;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct PerspectiveCorrection
|
|
{
|
|
public Bool enabled;
|
|
public float xfactor;
|
|
public float yfactor;
|
|
public Matrix4x4 transform;
|
|
}
|
|
|
|
// FUNCTIONS
|
|
|
|
public static class API
|
|
{
|
|
// Context
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplContextCreate(ref ContextSettings settings, out IntPtr context);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplContextRetain(IntPtr context);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplContextRelease(ref IntPtr context);
|
|
|
|
// Geometry
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Vector3 iplCalculateRelativeDirection(IntPtr context, Vector3 sourcePosition, Vector3 listenerPosition, Vector3 listenerAhead, Vector3 listenerUp);
|
|
|
|
// Serialization
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplSerializedObjectCreate(IntPtr context, ref SerializedObjectSettings settings, out IntPtr serializedObject);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplSerializedObjectRetain(IntPtr serializedObject);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSerializedObjectRelease(ref IntPtr serializedObject);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern UIntPtr iplSerializedObjectGetSize(IntPtr serializedObject);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplSerializedObjectGetData(IntPtr serializedObject);
|
|
|
|
// Embree
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplEmbreeDeviceCreate(IntPtr context, ref EmbreeDeviceSettings settings, out IntPtr device);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplEmbreeDeviceRetain(IntPtr device);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplEmbreeDeviceRelease(ref IntPtr device);
|
|
|
|
// OpenCL
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplOpenCLDeviceListCreate(IntPtr context, ref OpenCLDeviceSettings settings, out IntPtr deviceList);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplOpenCLDeviceListRetain(IntPtr deviceList);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplOpenCLDeviceListRelease(ref IntPtr deviceList);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern int iplOpenCLDeviceListGetNumDevices(IntPtr deviceList);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplOpenCLDeviceListGetDeviceDesc(IntPtr deviceList, int index, out OpenCLDeviceDesc deviceDesc);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplOpenCLDeviceCreate(IntPtr context, IntPtr deviceList, int index, out IntPtr device);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplOpenCLDeviceRetain(IntPtr device);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplOpenCLDeviceRelease(ref IntPtr device);
|
|
|
|
// Radeon Rays
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplRadeonRaysDeviceCreate(IntPtr openCLDevice, ref RadeonRaysDeviceSettings settings, out IntPtr rrDevice);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplRadeonRaysDeviceRetain(IntPtr device);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplRadeonRaysDeviceRelease(ref IntPtr device);
|
|
|
|
// TrueAudio Next
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplTrueAudioNextDeviceCreate(IntPtr openCLDevice, ref TrueAudioNextDeviceSettings settings, out IntPtr tanDevice);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplTrueAudioNextDeviceRetain(IntPtr device);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplTrueAudioNextDeviceRelease(ref IntPtr device);
|
|
|
|
// Scene
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplSceneCreate(IntPtr context, ref SceneSettings settings, out IntPtr scene);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplSceneRetain(IntPtr scene);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSceneRelease(ref IntPtr scene);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplSceneLoad(IntPtr context, ref SceneSettings settings, IntPtr serializedObject, ProgressCallback progressCallback, IntPtr progressCallbackUserData, out IntPtr scene);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSceneSave(IntPtr scene, IntPtr serializedObject);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSceneSaveOBJ(IntPtr scene, string fileBaseName);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSceneCommit(IntPtr scene);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplStaticMeshCreate(IntPtr scene, ref StaticMeshSettings settings, out IntPtr staticMesh);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplStaticMeshRetain(IntPtr staticMesh);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplStaticMeshRelease(ref IntPtr staticMesh);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplStaticMeshLoad(IntPtr scene, IntPtr serializedObject, ProgressCallback progressCallback, IntPtr progressCallbackUserData, out IntPtr staticMesh);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplStaticMeshSave(IntPtr staticMesh, IntPtr serializedObject);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplStaticMeshAdd(IntPtr staticMesh, IntPtr scene);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplStaticMeshRemove(IntPtr staticMesh, IntPtr scene);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplInstancedMeshCreate(IntPtr scene, ref InstancedMeshSettings settings, out IntPtr instancedMesh);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplInstancedMeshRetain(IntPtr instancedMesh);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplInstancedMeshRelease(ref IntPtr instancedMesh);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplInstancedMeshAdd(IntPtr instancedMesh, IntPtr scene);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplInstancedMeshRemove(IntPtr instancedMesh, IntPtr scene);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplInstancedMeshUpdateTransform(IntPtr instancedMesh, IntPtr scene, Matrix4x4 transform);
|
|
|
|
// HRTF
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplHRTFCreate(IntPtr context, ref AudioSettings audioSettings, ref HRTFSettings hrtfSettings, out IntPtr hrtf);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplHRTFRetain(IntPtr hrtf);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplHRTFRelease(ref IntPtr hrtf);
|
|
|
|
// Probes
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplProbeArrayCreate(IntPtr context, out IntPtr probeArray);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplProbeArrayRetain(IntPtr probeArray);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplProbeArrayRelease(ref IntPtr probeArray);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplProbeArrayGenerateProbes(IntPtr probeArray, IntPtr scene, ref ProbeGenerationParams generationParams);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern int iplProbeArrayGetNumProbes(IntPtr probeArray);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Sphere iplProbeArrayGetProbe(IntPtr probeArray, int index);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplProbeBatchCreate(IntPtr context, out IntPtr probeBatch);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplProbeBatchRetain(IntPtr probeBatch);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplProbeBatchRelease(ref IntPtr probeBatch);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplProbeBatchLoad(IntPtr context, IntPtr serializedObject, out IntPtr probeBatch);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplProbeBatchSave(IntPtr probeBatch, IntPtr serializedObject);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern int iplProbeBatchGetNumProbes(IntPtr probeBatch);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplProbeBatchAddProbe(IntPtr probeBatch, Sphere probe);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplProbeBatchAddProbeArray(IntPtr probeBatch, IntPtr probeArray);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplProbeBatchRemoveProbe(IntPtr probeBatch, int index);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplProbeBatchCommit(IntPtr probeBatch);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplProbeBatchRemoveData(IntPtr probeBatch, ref BakedDataIdentifier identifier);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern UIntPtr iplProbeBatchGetDataSize(IntPtr probeBatch, ref BakedDataIdentifier identifier);
|
|
|
|
// Baking
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplReflectionsBakerBake(IntPtr context, ref ReflectionsBakeParams bakeParams, ProgressCallback progressCallback, IntPtr userData);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplReflectionsBakerCancelBake(IntPtr context);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplPathBakerBake(IntPtr context, ref PathBakeParams bakeParams, ProgressCallback progressCallback, IntPtr userData);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplPathBakerCancelBake(IntPtr context);
|
|
|
|
// Run-Time Simulation
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplSimulatorCreate(IntPtr context, ref SimulationSettings settings, out IntPtr simulator);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplSimulatorRetain(IntPtr simulator);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSimulatorRelease(ref IntPtr simulator);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSimulatorSetScene(IntPtr simulator, IntPtr scene);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSimulatorAddProbeBatch(IntPtr simulator, IntPtr probeBatch);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSimulatorRemoveProbeBatch(IntPtr simulator, IntPtr probeBatch);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSimulatorSetSharedInputs(IntPtr simulator, SimulationFlags flags, ref SimulationSharedInputs sharedInputs);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSimulatorCommit(IntPtr simulator);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSimulatorRunDirect(IntPtr simulator);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSimulatorRunReflections(IntPtr simulator);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSimulatorRunPathing(IntPtr simulator);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern Error iplSourceCreate(IntPtr simulator, ref SourceSettings settings, out IntPtr source);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern IntPtr iplSourceRetain(IntPtr source);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSourceRelease(ref IntPtr source);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSourceAdd(IntPtr source, IntPtr simulator);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSourceRemove(IntPtr source, IntPtr simulator);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSourceSetInputs(IntPtr source, SimulationFlags flags, ref SimulationInputs inputs);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("phonon")]
|
|
#endif
|
|
public static extern void iplSourceGetOutputs(IntPtr source, SimulationFlags flags, ref SimulationOutputs outputs);
|
|
|
|
// UNITY PLUGIN
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("audioplugin_phonon")]
|
|
#endif
|
|
public static extern void iplUnityInitialize(IntPtr context);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("audioplugin_phonon")]
|
|
#endif
|
|
public static extern void iplUnitySetPerspectiveCorrection(PerspectiveCorrection correction);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("audioplugin_phonon")]
|
|
#endif
|
|
public static extern void iplUnitySetHRTF(IntPtr hrtf);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("audioplugin_phonon")]
|
|
#endif
|
|
public static extern void iplUnitySetSimulationSettings(SimulationSettings simulationSettings);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("audioplugin_phonon")]
|
|
#endif
|
|
public static extern void iplUnitySetReverbSource(IntPtr reverbSource);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("audioplugin_phonon")]
|
|
#endif
|
|
public static extern int iplUnityAddSource(IntPtr source);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("audioplugin_phonon")]
|
|
#endif
|
|
public static extern void iplUnityRemoveSource(int handle);
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("audioplugin_phonon")]
|
|
#endif
|
|
public static extern void iplUnityTerminate();
|
|
|
|
#if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
|
|
[DllImport("__Internal")]
|
|
#else
|
|
[DllImport("audioplugin_phonon")]
|
|
#endif
|
|
public static extern void iplUnitySetHRTFDisabled(bool disabled);
|
|
}
|
|
}
|